Temat B
This commit is contained in:
parent
93066b3398
commit
a59be95770
13
README.md
13
README.md
@ -3,3 +3,16 @@ Zadania z ćwiczeń.
|
|||||||
|
|
||||||
## Temat A
|
## Temat A
|
||||||
Zadania rozwiązane.
|
Zadania rozwiązane.
|
||||||
|
|
||||||
|
## Temat B
|
||||||
|
Zadania rozwiązane.
|
||||||
|
|
||||||
|
|
||||||
|
### TODO
|
||||||
|
- Zadanie 11
|
||||||
|
- Zadanie 19 **ok**
|
||||||
|
- Zadanie 21 **ok**
|
||||||
|
- Zadanie 30 **ok**
|
||||||
|
- Zadanie 31 **ok**
|
||||||
|
|
||||||
|
Liczba punktów: 8p
|
1008
TEMAT_B/Temat-B.txt
Normal file
1008
TEMAT_B/Temat-B.txt
Normal file
File diff suppressed because it is too large
Load Diff
57
TEMAT_B/zad11.tcl
Normal file
57
TEMAT_B/zad11.tcl
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
load ./q3.so
|
||||||
|
source symul_lib.tcl
|
||||||
|
|
||||||
|
|
||||||
|
# tworzenie kraty k x k
|
||||||
|
set k 3
|
||||||
|
set liczbaWierz [expr $k*$k]
|
||||||
|
|
||||||
|
iterate i $liczbaWierz {
|
||||||
|
set sasiedzi($i) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
set k1 [expr $k-1]
|
||||||
|
proc nr {x y} {global k; expr $x*$k+$y}
|
||||||
|
|
||||||
|
iterate x $k1 {
|
||||||
|
iterate y $k1 {
|
||||||
|
set i [nr $x $y]; DodajKraw $i [expr {$i+1}]; DodajKraw $i [expr {$i+$k}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
iterate x $k1 {
|
||||||
|
set i [nr $x $k1]; DodajKraw $i [expr $i+$k]
|
||||||
|
}
|
||||||
|
|
||||||
|
iterate y $k1 {
|
||||||
|
set i [nr $k1 $y]; DodajKraw $i [expr $i+1]
|
||||||
|
}
|
||||||
|
|
||||||
|
# efekt
|
||||||
|
array get sasiedzi
|
||||||
|
|
||||||
|
|
||||||
|
# definicja wierzchołka
|
||||||
|
fiber create $liczbaWierz {
|
||||||
|
set list $id
|
||||||
|
while {$run} {
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
if {$kom($i)!=""} {
|
||||||
|
set list "$list$kom($i)"
|
||||||
|
while {[regsub -all {(.)(.*)\1+} $list {\1\2} list]} {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
wyslij $i $list
|
||||||
|
}
|
||||||
|
fiber yield
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Inicjalizacja;
|
||||||
|
|
||||||
|
proc wizualizacja {} {
|
||||||
|
fiber_iterate {_puts "id: $id, lista: $list"}
|
||||||
|
}
|
||||||
|
|
||||||
|
fiber yield; runda; wizualizacja
|
81
TEMAT_B/zad19.tcl
Normal file
81
TEMAT_B/zad19.tcl
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
load ./q3.so
|
||||||
|
source symul_lib.tcl
|
||||||
|
|
||||||
|
# tworzę wierzchołki
|
||||||
|
set liczbaWierz 5
|
||||||
|
iterate i $liczbaWierz {
|
||||||
|
let ipierwsze $i-1;
|
||||||
|
if {$ipierwsze==-1} {let ipierwsze $liczbaWierz-1}
|
||||||
|
|
||||||
|
let idrugie $i+1;
|
||||||
|
if {$idrugie==$liczbaWierz} {let idrugie 0}
|
||||||
|
set sasiedzi($i) "$ipierwsze $idrugie"
|
||||||
|
}
|
||||||
|
|
||||||
|
# definiuję wierzchołki
|
||||||
|
fiber create $liczbaWierz {
|
||||||
|
|
||||||
|
# te zmienne są wymagane do wizualizacji
|
||||||
|
set lider {};
|
||||||
|
set minimalneId {};
|
||||||
|
|
||||||
|
fiber yield;
|
||||||
|
|
||||||
|
# Cykl zorientowany - wysyłam połączeniem 0, odbieram połączeniem 1
|
||||||
|
dostarcz 0 "LE $id";
|
||||||
|
|
||||||
|
while {$run} {
|
||||||
|
set msg [lindex [czytaj 1] 1];
|
||||||
|
|
||||||
|
if {$msg!=""} {
|
||||||
|
if {$msg<$id} {
|
||||||
|
dostarcz 0 "LE $msg";
|
||||||
|
set minimalneId $msg;
|
||||||
|
|
||||||
|
} elseif {$msg==$id} {
|
||||||
|
set lider 1;
|
||||||
|
set minimalneId $msg;
|
||||||
|
dostarcz 0 "LE false";
|
||||||
|
|
||||||
|
} elseif {$msg=="false" && $lider=={}} {
|
||||||
|
set lider 0;
|
||||||
|
dostarcz 0 "LE false";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#koniec wykonywania procedury danego wierzchołka
|
||||||
|
fiber switchto main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
InicjalizacjaAsynch
|
||||||
|
|
||||||
|
|
||||||
|
#procedura wizualizacji
|
||||||
|
proc wizualizacja {} {
|
||||||
|
fiber_iterate {_puts "id: $id, lider: $lider, minimalneId: $minimalneId, kom0: $kom0, kom1: $kom1"}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#licznik
|
||||||
|
set licz 0;
|
||||||
|
|
||||||
|
proc egzekucja {liczbaWierz licz args} {
|
||||||
|
|
||||||
|
#losowanie
|
||||||
|
set random [expr {int(rand()*[expr $liczbaWierz+1])}];
|
||||||
|
|
||||||
|
for {set i 0} {$i < $liczbaWierz} {incr i} {
|
||||||
|
if {$i!=$random && $licz!=0} {
|
||||||
|
_puts "Działa wierzchołek: $i"
|
||||||
|
fiber switchto $i;
|
||||||
|
|
||||||
|
} elseif {$licz==0} {
|
||||||
|
_puts "Działa wierzchołek: $i"
|
||||||
|
fiber switchto $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set licz [expr $licz + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
#wykonanie
|
||||||
|
egzekucja $liczbaWierz $licz; set licz 1; wizualizacja;
|
81
TEMAT_B/zad30.tcl
Normal file
81
TEMAT_B/zad30.tcl
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
load ./q3.so
|
||||||
|
source symul_lib.tcl
|
||||||
|
|
||||||
|
|
||||||
|
# inicjalizacja wierzchołków
|
||||||
|
set liczbaWierz 20
|
||||||
|
iterate i $liczbaWierz {
|
||||||
|
let ipierwsze $i-1;
|
||||||
|
if {$ipierwsze==-1} {let ipierwsze $liczbaWierz-1}
|
||||||
|
|
||||||
|
let idrugie $i+1;
|
||||||
|
if {$idrugie==$liczbaWierz} {let idrugie 0}
|
||||||
|
|
||||||
|
set sasiedzi($i) "$ipierwsze $idrugie"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# definiuję wierzchołki
|
||||||
|
fiber create $liczbaWierz {
|
||||||
|
while {$run} {
|
||||||
|
set bezpieczny 0;
|
||||||
|
|
||||||
|
# do wszystkich sąsiadów wysyłam ID
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
dostarcz $i $id;
|
||||||
|
}
|
||||||
|
|
||||||
|
# koniec wykonania
|
||||||
|
fiber switchto main;
|
||||||
|
|
||||||
|
# potwierdzenie otrzymania komunikatu
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
czytaj $i;
|
||||||
|
}
|
||||||
|
|
||||||
|
# jeśli odebrałem komunikat to wysyłam safe
|
||||||
|
for {set j 0} {$j < $stopien} {incr j} {
|
||||||
|
dostarcz $j "SAFE";
|
||||||
|
}
|
||||||
|
|
||||||
|
#koniec wykonania
|
||||||
|
fiber switchto main;
|
||||||
|
|
||||||
|
while {$bezpieczny == 0} {
|
||||||
|
set licz 0;
|
||||||
|
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
|
||||||
|
# zwiększam licz jeśli pierwszy to safe
|
||||||
|
if {[lindex $kom($i) 0]=="SAFE"} {
|
||||||
|
incr licz;
|
||||||
|
}
|
||||||
|
|
||||||
|
# otrzymałem safe od każdego sąsiada
|
||||||
|
if {$licz == $stopien} {
|
||||||
|
set bezpieczny 1;
|
||||||
|
|
||||||
|
# usuwam safe z listy
|
||||||
|
for {set j 0} {$j < $stopien} {incr j} {
|
||||||
|
czytaj $j;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set bezpieczny 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fiber switchto main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
InicjalizacjaAsynch
|
||||||
|
|
||||||
|
# pokaż komunikaty
|
||||||
|
fiber switchto 0; pokazKom
|
||||||
|
fiber switchto 1; pokazKom
|
||||||
|
fiber switchto 2; pokazKom
|
||||||
|
fiber switchto 3; pokazKom
|
||||||
|
fiber switchto 4; pokazKom
|
||||||
|
fiber switchto 5; pokazKom
|
||||||
|
fiber switchto 6; pokazKom
|
||||||
|
fiber switchto 7; pokazKom
|
105
TEMAT_B/zad31.tcl
Normal file
105
TEMAT_B/zad31.tcl
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
load ./q3.so
|
||||||
|
source symul_lib.tcl
|
||||||
|
|
||||||
|
# inicjalizuję wierzchołki
|
||||||
|
set sasiedzi(0) {1 2 3}
|
||||||
|
set sasiedzi(1) {0 4 5}
|
||||||
|
set sasiedzi(2) {0 6}
|
||||||
|
set sasiedzi(3) {0 7 8}
|
||||||
|
set sasiedzi(4) {1}
|
||||||
|
set sasiedzi(5) {1}
|
||||||
|
set sasiedzi(6) {2}
|
||||||
|
set sasiedzi(7) {3}
|
||||||
|
set sasiedzi(8) {3}
|
||||||
|
|
||||||
|
set liczbaWierz 9;
|
||||||
|
|
||||||
|
|
||||||
|
# definiuję wierzchołki
|
||||||
|
fiber create $liczbaWierz {
|
||||||
|
|
||||||
|
#zmienne
|
||||||
|
set safe 0;
|
||||||
|
set korzen 0;
|
||||||
|
set bezpieczneW 0;
|
||||||
|
|
||||||
|
while {$run} {
|
||||||
|
if {$korzen==0 && $stopien==1 && $safe==0} {
|
||||||
|
set safe 1;
|
||||||
|
dostarcz 0 "SAFE";
|
||||||
|
}
|
||||||
|
|
||||||
|
#koniec wykonania
|
||||||
|
fiber switchto main;
|
||||||
|
|
||||||
|
while {$safe==0} {
|
||||||
|
set licz 0;
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
if {[lindex $kom($i) 0]=="SAFE"} {
|
||||||
|
incr licz;
|
||||||
|
}
|
||||||
|
if {$licz == [expr $stopien - 1]} {
|
||||||
|
set safe 1;
|
||||||
|
|
||||||
|
for {set j 0} {$j < $stopien} {incr j} {
|
||||||
|
czytaj $j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fiber switchto main;
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$korzen==0 && $safe==1 && $bezpieczneW==0 && $stopien>1} {
|
||||||
|
dostarcz 0 "SAFE";
|
||||||
|
set bezpieczneW 1;
|
||||||
|
|
||||||
|
} elseif {$korzen==1 && $safe==1} {
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
dostarcz $i "PULSE";
|
||||||
|
set safe 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fiber switchto main;
|
||||||
|
|
||||||
|
if {[lindex $kom(0) 0]=="PULSE"} {
|
||||||
|
if {$korzen==0 && $stopien>1} {
|
||||||
|
czytaj 0;
|
||||||
|
for {set j 1} {$j < $stopien} {incr j} {
|
||||||
|
dostarcz $j "PULSE";
|
||||||
|
set bezpieczneW 0;
|
||||||
|
set safe 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
czytaj 0;
|
||||||
|
set bezpieczneW 0;
|
||||||
|
set safe 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fiber switchto main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
InicjalizacjaAsynch
|
||||||
|
|
||||||
|
|
||||||
|
proc wizualizacja {} {
|
||||||
|
fiber_iterate {_puts "Wierzchołek $id, safe: $safe, korzen: $korzen"}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wizualizacja
|
||||||
|
|
||||||
|
# ustawiamy korzeń po pierwszej egzekucji
|
||||||
|
fiber_eval 0 {set korzen 1}
|
||||||
|
|
||||||
|
fiber switchto 0;
|
||||||
|
fiber switchto 1;
|
||||||
|
fiber switchto 2;
|
||||||
|
fiber switchto 3;
|
||||||
|
fiber switchto 4;
|
||||||
|
fiber switchto 5;
|
||||||
|
fiber switchto 6;
|
||||||
|
fiber switchto 7;
|
||||||
|
fiber switchto 8;
|
154
dodatkowe/21.tcl
Normal file
154
dodatkowe/21.tcl
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
source symul_lib.tcl
|
||||||
|
|
||||||
|
# 8 wierzchołków
|
||||||
|
set liczbaWierz 8
|
||||||
|
|
||||||
|
#tworzę graf pełny
|
||||||
|
iterate i $liczbaWierz {
|
||||||
|
set check 0
|
||||||
|
|
||||||
|
# przechodzę przez wszystkie wierzchołki
|
||||||
|
# {start} {test} {next}
|
||||||
|
for {set j 0} {$j < $liczbaWierz} {incr j} {
|
||||||
|
|
||||||
|
# jeśli dany wierzchołek nie jest równy sprawdzanemu
|
||||||
|
if {$i!=$j} {
|
||||||
|
|
||||||
|
# jeśli check = 0
|
||||||
|
if {$check==0} {
|
||||||
|
set s "$j"
|
||||||
|
set check 1
|
||||||
|
|
||||||
|
# jeśli nie
|
||||||
|
} else {
|
||||||
|
set x1 $s
|
||||||
|
set x2 $j
|
||||||
|
set s "$x1 $x2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
set sasiedzi($i) "$s"
|
||||||
|
}
|
||||||
|
|
||||||
|
#definicja wierzchołka
|
||||||
|
fiber create $liczbaWierz {
|
||||||
|
set king 1;
|
||||||
|
set K $id_los;
|
||||||
|
set KS 1;
|
||||||
|
set waiting "";
|
||||||
|
dostarcz 0 "Collect $id_los";
|
||||||
|
|
||||||
|
|
||||||
|
while {$run} {
|
||||||
|
for {set i 0} {$i < $stopien} {incr i} {
|
||||||
|
|
||||||
|
#lindex pobiera indeks z listy
|
||||||
|
set x [lindex $kom($i) 0]
|
||||||
|
|
||||||
|
#jeśli x[0] == Collect
|
||||||
|
if {[lindex $x 0]=="Collect"} {
|
||||||
|
if {$K==""} {
|
||||||
|
set K $i
|
||||||
|
set KS 1
|
||||||
|
set king 0
|
||||||
|
dostarcz $i "Join";
|
||||||
|
czytaj $i
|
||||||
|
} elseif {$king==1} {
|
||||||
|
if {$K<[lindex $x 1]} {
|
||||||
|
set king 0
|
||||||
|
set K $i
|
||||||
|
set KS 1
|
||||||
|
dostarcz $i "Join";
|
||||||
|
}
|
||||||
|
czytaj $i
|
||||||
|
} elseif {$waiting==""} {
|
||||||
|
if {$id_los < [lindex $x 1]} {
|
||||||
|
set waiting $i
|
||||||
|
dostarcz $K "Check [lindex $x 1]"
|
||||||
|
}
|
||||||
|
czytaj $i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#jeśli x[0] = Check
|
||||||
|
if {[lindex $x 0]=="Check"} {
|
||||||
|
if {$K < [lindex $x 1]} {
|
||||||
|
set K ""
|
||||||
|
set KS 1
|
||||||
|
dostarcz $i "Ack"
|
||||||
|
} else {
|
||||||
|
dostarcz $i "Ref"
|
||||||
|
}
|
||||||
|
czytaj $i
|
||||||
|
}
|
||||||
|
|
||||||
|
# jeśli x[0] = Ack
|
||||||
|
if {[lindex $x 0]=="Ack"} {
|
||||||
|
set KS 1
|
||||||
|
dostarcz $waiting "Join";
|
||||||
|
set waiting ""
|
||||||
|
czytaj $i
|
||||||
|
}
|
||||||
|
|
||||||
|
#jeśli x[0] = Ref
|
||||||
|
if {[lindex $x 0]=="Ref"} {
|
||||||
|
set waiting ""
|
||||||
|
czytaj $i
|
||||||
|
}
|
||||||
|
|
||||||
|
#jeśli x[0] = Join
|
||||||
|
if {[lindex $x 0]=="Join"} {
|
||||||
|
if {$king==1} {
|
||||||
|
if {$KS < $stopien} {
|
||||||
|
dostarcz $KS "Collect $id_los";
|
||||||
|
} else {
|
||||||
|
_puts "wybrano lidera: $id_los"
|
||||||
|
}
|
||||||
|
incr KS
|
||||||
|
}
|
||||||
|
czytaj $i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fiber switchto main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
InicjalizacjaAsynch
|
||||||
|
|
||||||
|
#procedura wizalizacji
|
||||||
|
proc wizualizacja {} {
|
||||||
|
fiber_iterate {_puts "$id,$id_los, $KS, $kom0, $kom1, $kom2, $kom3, $kom4, $kom5, $kom6"}
|
||||||
|
}
|
||||||
|
|
||||||
|
#główna egzekucja
|
||||||
|
set check 0;
|
||||||
|
proc egzekucja {liczbaWierz check} {
|
||||||
|
set s ""
|
||||||
|
#expr - wylicz wartość wyrazenia
|
||||||
|
set rand [expr {int(rand()*[expr $liczbaWierz+1])}];
|
||||||
|
for {set i 0} {$i < $liczbaWierz} {incr i} {
|
||||||
|
if {$check==0} {
|
||||||
|
set x1 $s
|
||||||
|
set x2 $i
|
||||||
|
set s "$x1 $x2"
|
||||||
|
fiber switchto $i;
|
||||||
|
} elseif {$i!=$rand} {
|
||||||
|
set x1 $s
|
||||||
|
set x2 $i
|
||||||
|
set s "$x1 $x2"
|
||||||
|
fiber switchto $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_puts "Wierzchołki: {$s }"
|
||||||
|
}
|
||||||
|
|
||||||
|
egzekucja $liczbaWierz $check;set check 1;wizualizacja;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#5. symulacja modelu asynchronicznego:
|
||||||
|
# + generujemy "zdarzenie obliczeniowe" z konsoli przy pomocy
|
||||||
|
# fiber switchto $id
|
||||||
|
# a zdarzenie to kończy się w kodzie algorytmu przez
|
||||||
|
# fiber switchto main
|
||||||
|
# + istnieje procedura "dostarcz" działająca tak jak "wyslij"
|
||||||
|
# z tą różnicą, że komunikaty są od razu dostarczane
|
BIN
dodatkowe/Graf_pelny.png
Normal file
BIN
dodatkowe/Graf_pelny.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 120 KiB |
52
dodatkowe/README.md
Normal file
52
dodatkowe/README.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Zadanie 21
|
||||||
|
Opis dzialania
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Wstep
|
||||||
|
Tworze graf pelny o 8 wierzcholkach.
|
||||||
|
|
||||||
|
Glowna idea - kazdy wierzcholek probuje dodac do swojego zbioru jak najwieksza ilosc innych wierzcholkow.
|
||||||
|
|
||||||
|
Wierzcholek probujacy dodac inny porownuje najpierw czy jego zbior jest wiekszy niz wierzcholka ktorego probuje przejac. Tylko w takim wypadu moze to zrobic. Liderem zostaje ten o najwiekszym zbiorze.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Wysylane komunikaty
|
||||||
|
- Collect - dolacz sie do mnie
|
||||||
|
|
||||||
|
- Join - dolaczam sie do ciebie
|
||||||
|
|
||||||
|
- Ack - moj zbior jest wiekszy od twojego
|
||||||
|
|
||||||
|
- Ref - moj zbior jest mniejszy od twojego
|
||||||
|
|
||||||
|
- Check - sprawdź ten zbior czy jest wiekszy od twojego
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Dzialanie wierzcholka
|
||||||
|
Na poczatku wysylam sygnal collect do dowolnego sasiada.
|
||||||
|
System odbioru komunikatow:
|
||||||
|
|
||||||
|
- Jesli dostane collect i moj zbior jest pusty lub mniejszy od wierzcholka wysylajacego to wysylam do niego komunikat join, w przeciwnym wypadku wyslij check do "posiadacza zbioru"
|
||||||
|
|
||||||
|
- Jesli dostane check i moj zbior jest wiekszy niz wierzcholka wysylajacego to wysylam do niego ack, w przeciwnym wypadku wysylam ref
|
||||||
|
|
||||||
|
- Jesli dostane ack to wysylam join do wierzcholka wysylajacego.
|
||||||
|
|
||||||
|
- Jesli dostane ref to nie robie nic.
|
||||||
|
|
||||||
|
- Jesli dostane join to powiekszam swoj zbior i wysylam collect do innego losowego wierzcholka.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Program
|
||||||
|
Kroki:
|
||||||
|
1. Startuje od check = 0.
|
||||||
|
2. Wykonuje procedure egzekucja.
|
||||||
|
3. Wierzcholek 0 uruchomi swoje dzialanie jako pierwszy.
|
||||||
|
4. Ustawiam check = 1. Uruchamiam wizualizacje.
|
||||||
|
5. Wykonuje procedure egzekucja.
|
||||||
|
6. Uruchomi sie dzialanie losowo wybranego wierzcholka.
|
||||||
|
7. Wracam do kroku 4. Program dziala az nie znajde lidera.
|
100
dodatkowe/konsola.txt
Normal file
100
dodatkowe/konsola.txt
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
Wierzchołki: { 0 1 2 3 4 5 6 7 }
|
||||||
|
0,507, 1, {Collect 210} Join, {Collect 36}, {Collect 272}, {Collect 756}, {Collect 442}, {Collect 696}, {Collect 664}
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 1, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 3 4 5 7 }
|
||||||
|
0,507, 1, Join, , , , , , {Collect 664}
|
||||||
|
1,210, 1, , , , {Collect 756}, , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 2, {Check 696}, , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 1 2 3 4 5 6 7 }
|
||||||
|
0,507, 1, Join {Check 756}, , , Ref, , , {Collect 664}
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 2, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 4 5 6 7 }
|
||||||
|
0,507, 1, {Check 756}, , , Ref, , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 2, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 3 4 5 6 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , {Collect 756}, , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 3, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 3 4 5 6 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , {Collect 756}, , ,
|
||||||
|
4,756, 4, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 3 4 5 6 7 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 5, , , , , Join, ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 3 4 5 6 7 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 6, , , , , , Join,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 3 4 5 7 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 7, , , , , , , Join
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
||||||
|
wybrano lidera: 756
|
||||||
|
|
||||||
|
Wierzchołki: { 0 1 2 4 5 6 7 }
|
||||||
|
0,507, 1, , , , , , ,
|
||||||
|
1,210, 1, , , , , , ,
|
||||||
|
2,36, 1, , , , , , ,
|
||||||
|
3,272, 1, , , , , , ,
|
||||||
|
4,756, 8, , , , , , ,
|
||||||
|
5,442, 1, , , , , , ,
|
||||||
|
6,696, 1, , , , , , ,
|
||||||
|
7,664, 1, , , , , , ,
|
BIN
dodatkowe/krok1.png
Normal file
BIN
dodatkowe/krok1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
dodatkowe/krok2.png
Normal file
BIN
dodatkowe/krok2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
dodatkowe/krok3.png
Normal file
BIN
dodatkowe/krok3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
dodatkowe/krok4.png
Normal file
BIN
dodatkowe/krok4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
dodatkowe/krok5.png
Normal file
BIN
dodatkowe/krok5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
Loading…
Reference in New Issue
Block a user