Professional Documents
Culture Documents
1. Inicijalni protok je 0
2. Pronađi najkraći povećavajući lanac od izvora do ponora, ako ne postoji
maksimalni protok je jednak trenutnoj vrijednosti protoka – kraj algoritma.
3. Pronađi granu u povećavajućem lancu kroz koju može proći najmanji protok
4. Uvećaj protok za ovaj iznos: smanji kapacitet svih grana lanca za isti iznos ako
protok ide u smjeru grane (smanji rezerve) i povećaj kapacitet ako protok ide u
suprotnom smjeru od smjera grane (smanji protok kroz granu).
5. Vrati se na korak 2.
Zadatak 1.
3 1
4
x2 x6
8 3 2 1
x1 x8
x4
1
3 2 9
x5 6 x7
x3
3/0 1/0
4/0
x2 x6
8/0 3/0 2/0 1/0
x1 x8
x4
1/0
3/0 2/0 9/0
x5 6/0 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/0 3/0 2/0 1/0
x1 x8
1 x4 3 3 4
1/0
3/0 2/0 9/0
2 3
x5 6/0 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/0 3/0 2/0 1/0
x1 x8
1 x4 3 3 4
1/0
3/0 2/0 9/0
2 3
x5 6/0 x7
x3
3/0 1/0
4/0
x2 x6
8/1 3/0 2/0 1/1
x1 x8
x4
1/0
3/1 2/1 9/0
x5 6/0 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/1 3/0 2/0 1/1
x1 x8
1 x4 3 3 4
1/0
3/1 2/1 9/0
2 3
x5 6/0 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/1 3/0 2/0 1/1
x1 x8
1 x4 3 3 4
1/0
3/1 2/1 9/0
2 3
x5 6/0 x7
x3
3/0 1/0
4/0
x2 x6
8/3 3/0 2/0 1/1
x1 x8
x4
1/0
3/3 2/1 9/2
x5 6/2 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/3 3/0 2/0 1/1
x1 x8
1 x4 3 4 6
1/0
3/3 2/1 9/2
4 5
x5 6/2 x7
x3
2
3/0 1/0
4/0
0 x2 x6
8/3 3/0 2/0 1/1
x1 x8
1 x4 3 3 6
1/0
3/3 2/1 9/2
4 5
x5 6/2 x7
x3
3/1 1/0
4/1
x2 x6
8/4 3/0 2/0 1/1
x1 x8
x4
1/1
3/3 2/1 9/3
x5 6/3 x7
x3
2
3/1 1/0
4/1
0 x2 x6
8/4 3/0 2/0 1/1
x1 x8
1 x4 3 4 7
1/1
3/3 2/1 9/3
5 6
x5 6/3 x7
x3
2
3/1 1/0
4/1
0 x2 x6
8/4 3/0 2/0 1/1
x1 x8
1 x4 3 4 7
1/1
3/3 2/1 9/3
5 6
x5 6/3 x7
x3
3/2 1/0
4/2
x2 x6
8/5 3/0 2/1 1/1
x1 x8
x4
1/1
3/3 2/0 9/4
x5 6/4 x7
x3
2
3/2 1/0
4/2
0 x2 x6
8/5 3/0 2/1 1/1
x1 x8
1 x4 3 4
1/1
3/3 2/0 9/4
x5 6/4 x7
x3
3/2 1/0
4/2
x2 x6
8/5 3/0 2/1 1/1
x1 x8
x4
1/1
3/3 2/0 9/4
x5 6/4 x7
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 0 0 0 0 2 6 0
x6 0 0 1 0 0 0 0 1
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 0 0 0 0 2 6 0
x6 0 0 1 0 0 0 0 1
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0
x5 0 0 0 0 0 2 6 0 ← x2/2
x6 0 0 1 0 0 0 0 1
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 0 0 0 0 2 6 0 ← x2/2
x6 0 0 1 0 0 0 0 1 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 0 0 0 0 2 6 0 ← x2/2
x6 0 0 1 0 0 0 0 1 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 0 0 0 ← x6/4
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 8 0 0 0 0 0 0 ← − /0
x2 0 0 3 0 3 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 0 0 0 0 2 6 0 ← x2/2
x6 0 0 1 0 0 0 0 1 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 0 0 0 ← x6/4
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 1 0 0 0 1 6 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 1 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 1 0 0 0 1 6 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 1 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0
x5 0 1 0 0 0 1 6 0 ← x2/2
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 0 0 0 9
x8 0 0 0 0 0 1 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 1 0 0 0 1 6 0 ← x2/2
x6 0 0 1 0 1 0 0 0 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 1 0 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 1 0 0 0 1 6 0 ← x2/2
x6 0 0 1 0 1 0 0 0 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 1 0 0 ← x7/4
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 7 0 0 0 0 0 0 ← − /0
x2 1 0 3 0 2 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 1 0 0 0 1 6 0 ← x2/2
x6 0 0 1 0 1 0 0 0 ← x5/3
x7 0 0 0 0 0 0 0 9 ← x5/3
x8 0 0 0 0 0 1 0 0 ← x7/4
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 3 0 0 0 1 4 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 2 0 0 7
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0
x4 0 3 0 0 1 2 0 0
x5 0 3 0 0 0 1 4 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 2 0 0 7
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0
x5 0 3 0 0 0 1 4 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 2 0 0 7
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 3 0 0 0 1 4 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 2 0 0 7
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 3 0 0 0 1 4 0 ← x4/4
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 2 0 0 7
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 3 0 0 0 1 4 0 ← x4/4
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 2 0 0 7 ← x5/5
x8 0 0 0 0 0 1 2 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 3 0 0 0 1 4 0 ← x4/4
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 2 0 0 7 ← x5/5
x8 0 0 0 0 0 1 2 0 ← x7/6
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 5 0 0 0 0 0 0 ← − /0
x2 3 0 3 0 0 0 0 0 ← x1/1
x3 0 0 0 4 0 0 0 0 ← x2/2
x4 0 3 0 0 1 2 0 0 ← x3/3
x5 0 3 0 0 0 1 4 0 ← x4/4
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 2 0 0 7 ← x5/5
x8 0 0 0 0 0 1 2 0 ← x7/6
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0
x3 0 1 0 3 0 0 0 0
x4 0 3 1 0 0 2 0 0
x5 0 3 0 1 0 1 3 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0
x4 0 3 1 0 0 2 0 0
x5 0 3 0 1 0 1 3 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0
x5 0 3 0 1 0 1 3 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0
x6 0 0 1 0 1 0 0 0
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0 ← x6/5
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 3 0 0 6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0 ← x6/5
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 3 0 0 6 ← x5/6
x8 0 0 0 0 0 1 3 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0 ← x6/5
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 3 0 0 6 ← x5/6
x8 0 0 0 0 0 1 3 0 ← x7/7
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 4 0 0 0 0 0 0 ← − /0
x2 4 0 2 0 0 0 0 0 ← x1/1
x3 0 1 0 3 0 0 0 0 ← x2/2
x4 0 3 1 0 0 2 0 0 ← x3/3
x5 0 3 0 1 0 1 3 0 ← x6/5
x6 0 0 1 0 1 0 0 0 ← x4/4
x7 0 0 0 0 3 0 0 6 ← x5/6
x8 0 0 0 0 0 1 3 0 ← x7/7
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0
x3 0 2 0 2 0 0 0 0
x4 0 3 2 0 0 1 0 0
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0 ← x1/1
x3 0 2 0 2 0 0 0 0
x4 0 3 2 0 0 1 0 0
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0 ← x1/1
x3 0 2 0 2 0 0 0 0 ← x2/2
x4 0 3 2 0 0 1 0 0
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0 ← x1/1
x3 0 2 0 2 0 0 0 0 ← x2/2
x4 0 3 2 0 0 1 0 0 ← x3/3
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0 ← x1/1
x3 0 2 0 2 0 0 0 0 ← x2/2
x4 0 3 2 0 0 1 0 0 ← x3/3
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0 ← x4/4
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
x1 x2 x3 x4 x5 x6 x7 x8
x1 0 3 0 0 0 0 0 0 ← − /0
x2 5 0 1 0 0 0 0 0 ← x1/1
x3 0 2 0 2 0 0 0 0 ← x2/2
x4 0 3 2 0 0 1 0 0 ← x3/3
x5 0 3 0 1 0 2 2 0
x6 0 0 1 1 0 0 0 0 ← x4/4
x7 0 0 0 0 4 0 0 5
x8 0 0 0 0 0 1 4 0
0 ≤ x12 ≤5
0 ≤ x13 ≤2
0 ≤ x24 ≤3
0 ≤ x25 ≤2
0 ≤ x32 ≤1
0 ≤ x35 ≤3
0 ≤ x46 ≤2
0 ≤ x54 ≤1
0 ≤ x56 ≤5
Najkraći put
Najkraći put (najmanje težine) između čvorova grafa
062000
003300
050010
004003
010002
000000
Ograničenja se formiraju kako slijedi (grane koje izlaze iz čvorova idu sa znakom minus,
a koje ulaze u čvorove sa znakom plus):
U ostale grane ili ne ulazi i iz njih ne izlazi niti jedna grana ili u njih ulazi i iz njih izlazi
tačno jedna grana:
x12 + x32 + x52 – x23 – x24 = 0
x13 + x23 + x43 – x32 – x35 = 0
x24 – x43 – x46 = 0
x35 - x52 – x56 = 0
x12, x13, x23, x24, x32, x35, x43, x46, x52, x56 ≥ 0
Rješavanjem ovog LP problema dobije se najkraći put: x13 - x35 - x56, dužine 5.
Bellmanov - Algoritam
60
Renumeracija čvorova
61
Renumeracija - Primjer
U prethodnom grafu:
Uklonili smo granu 3-2 3
Promjenili orjentaciju grane 2-5 2 4
6 4 3
3
1 1
6
2 2
3 1 5
Rang čvora 1 je 0
Rang čvora 2 je max{rang(1)+1} = max{0+1} = 1
Rang čvora 3 je max{rang(1)+1,rang(2)+1,rang(4)+1} = 2
Rang čvora 4 je max{rang(2)+1} = 2
Rang čvora 5 je max{rang(2)+1,rang(3)+1} = 3
Rang čvora 6 je max{rang(4)+1,rang(5)+1} = 4
62
Iteracija I
Rang čvora 1 je 0
Rang čvora 2 je max{rang(1)+1} = max{0+1} = 1
Rang čvora 3 je max{rang(1)+1,rang(2)+1,rang(4)+1} = 2
Rang čvora 4 je max{rang(2)+1} = 2 3
2 4
Rang čvora 5 je max{rang(2)+1,rang(3)+1} = 3
Rang čvora 6 je max{rang(4)+1,rang(5)+1} = 4 6 4 3
3
II iteracija 1 1
6
Rang čvora 1 je 0
2
Rang čvora 2 je max{rang(1)+1} = 1 2
3 1 5
Rang čvora 3 je max{rang(1)+1,rang(2)+1,rang(4)+1} = 3
Rang čvora 4 je max{rang(2)+1} = 2
Rang čvora 5 je max{rang(2)+1,rang(3)+1} = 4
Rang čvora 6 je max{rang(4)+1,rang(5)+1} = 5
III iteracija
Rang čvora 1 je 0
Rang čvora 2 je max{rang(1)+1} = 1
Rang čvora 3 je max{rang(1)+1,rang(2)+1,rang(4)+1} = 3
Rang čvora 4 je max{rang(2)+1} = 2
Rang čvora 5 je max{rang(2)+1,rang(3)+1} = 4
Rang čvora 6 je max{rang(4)+1,rang(5)+1} = 5
U posljednjoj iteraciji nije bilo promjena => kraj
3
2 3
6 4 3
3
1
1 6
2 2
4 1 5
64
Bellmanov algoritam (unazad)
fi=minj>i{xij+fj}
gdje je: j=n-1, n-2, ... ,1
xij – dužina veze i i j (ako je nema 0)
65
Bellman - Primjer
3
2 3
6 4 3
3
1
1 6
2 2
4 1 5
f6 = 0
f5 = min{x56+f6} = min{2 + 0} = 2
f4 = min{x45+f5} = min{1 + 2} = 3
3
2 3
6 4 3
3
1
1 6
2 2
4 1 5
67
Dijkstra - algoritam
Najkraći putevi iz jednog čvora do ostalih
68
Dijkstra – Primjer
oo oo
3
2 4
6 4 3
0 3 5
1
1 6 oo
2 2
3 1 5
oo oo
69
6 oo
3
2 4
6 4 3
0 3 5
1
1 6 oo
2 2
3 1 5
2 oo
70
6 oo
3
2 4
6 4 3
0 3 5
1
1 6 oo
2 2
3 1 5
2 3
71
4 oo
3
2 4
6 4 3
0 3 5
1
1 6 5
2 2
3 1 5
2 3
72
4 7
3
2 4
6 4 3
0 3 5
1
1 6 5
2 2
3 1 5
2 3
73
4 7
3
2 4
6 4 3
0 3 5
1
1 6 5
2 2
3 1 5
2 3
74
4 7
3
2 4
6 4 3
0 3 5
1
1 6 5
2 2
3 1 5
2 3
75
4 7
3
2 4
6 4 3
0 3 5
1
1 6 5
2 2
3 1 5
2 3
76
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1 2 3 4 5 6
Stepen 0
Preth. - - - - - -
77
3
2 4
6 4 3
3 5
1 1 6
2 2
3 1 5
Čvor 1* 2 3 4 5 6
Stepen 0 6 2
Preth. - 1 1 - - -
78
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1* 2 3* 4 5 6
Stepen 0 6 2 3
Preth. - 1 1 - 3 -
79
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1* 2 3* 4 5* 6
Stepen 0 4 2 3 5
Preth. - 5 1 - 3 5
80
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1* 2* 3* 4 5* 6
Stepen 0 4 2 7 3 5
Preth. - 5 1 2 3 5
81
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1* 2* 3* 4 5* 6*
Stepen 0 4 2 7 3 5
Preth. - 5 1 2 3 5
82
3
2 4
6 4 3
3 5
1
1 6
2 2
3 1 5
Čvor 1* 2* 3* 4* 5* 6*
Stepen 0 4 2 7 3 5
Preth. - 5 1 2 3 5
83
Minimalno povezujuće stablo
Minimum spanning tree (MST)
Algoritmi rješavanja
Prim
Kruskal
Primov algoritam
1. Izaberi proizvoljan početni čvor
85
Prim – naivni algoritam
5 čvorova, 9 grana
2
3 6
7 3
1
5 8
3
2 10
5 4 4
86
Izaberimo 1 kao početni čvor
Najbliži mu je čvor 5 (udaljenost 2)
2
3 6
7 3
1
5 8
3
2 10
5 4 4
87
Najbliži čvorovi podgrafu su 2 i 4, udaljeni po 3 (i svejedno koji izaberemo)
Uzmimo 2
2
3 6
7 3
1
5 8
3
2 10
5 4 4
88
Najbliži čvor podgrafu je 4 (udaljen 3)
2
3 6
7 3
1
5 8
3
2 10
5 4 4
89
Preostali čvor je 3 i najbliže ga je povezati sa čvorom 2 (udaljenost 6)
2
3 6
7 3
1
5 8
3
2 10
5 4 4
90
Svi čvorovi su povezani dobili smo drvo i to najkraće
Dužina je 2 + 3 +3 +6 = 14
2
3 6
7 3
1
5 8
3
2 10
5 4 4
91
Prim – matrica
0 3 7 3 2
3 0 6 8 5
A= 7 6 0 10 oo
3 8 10 0 4
2 5 oo 4 0
0 3 7 3 2
3 0 6 8 5
7 6 0 10 oo
3 8 10 0 4
2 5 oo 4 0
Prim – Poboljšana verzija
0
1
8
oo 13
6 oo
2 10
6 7
17
11
16
3 5
oo oo
14 4 5
oo
94
0
1
8
oo 13
6 8
2 10
6 7
17
11
16
3 5
13 16
14 4 5
oo
95
0
1
8
10 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
17
96
0
1
8
10 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
97
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
98
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
99
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
100
0
1
8
oo 13
6 oo
2 10
6 7
17
11
16
3 5
oo oo
14 4 5
oo
Čvor 1 2 3 4 5 6
Stepen 0
Preth. - - - - - -
101
0
1
8
oo 13
6 8
2 10
6 7
17
11
16
3 5
13 16
14 4 5
oo
Čvor 1* 2 3 4 5 6
Stepen 0 13 16 8
Preth. - - 1 - 1 1
102
0
1
8
10 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
17
Čvor 1* 2 3 4 5 6*
Stepen 0 10 11 17 7 8
Preth. - 6 6 6 6 1
103
0
1
8
10 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
5
Čvor 1* 2 3 4 5* 6*
Stepen 0 10 11 5 7 8
Preth. - 6 6 5 6 1
104
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
5
Čvor 1* 2 3 4* 5* 6*
Stepen 0 6 11 5 7 8
Preth. - 4 6 5 6 1
105
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
5
Čvor 1* 2* 3 4* 5* 6*
Stepen 0 6 11 5 7 8
Preth. - 4 6 5 6 1
106
0
1
8
6 13
6 8
2 10
6 7
17
11
16
3 5
11 7
14 4 5
5
Čvor 1* 2* 3* 4* 5* 6*
Stepen 0 6 11 5 7 8
Preth. - 4 6 5 6 1
107
Kruskalov algoritam
108
Kruskal – primjer
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
10
2 4
5 20
1 20 6
5
10
30 15
3 5
15
1
1 0 5 30 oo oo oo
1
2 0 20 10 oo oo
1
3 0 10 15 oo
2 1
4 0 5 20
2 1
5 0 15
6 0
1 2 3 4 5 6
10
2 4
5 20
1 20 6
5
10
30 15
3 5
Grana Uzeti 1 2 3 4 5 6
(1, 2) da 1 1 0 0 0 0
(4, 5) da 1 1 0 2 2 0
(2, 4) da 2 2 0 2 2 0 Grana Uzeti 1 2 3 4 5 6
(3, 4) da 2 2 2 2 2 0 (1, 2) da 0 (2) 1 (1) 0 (1) 0 (1) 0 (1) 0 (1)
(3, 5) ne 2 2 2 2 2 0 (4, 5) da 0 (2) 1 (1) 0 (1) 0 (2) 4 (1) 0 (1)
(5, 6) da 2 2 2 2 2 2
(2, 4) da 0 (4) 1 (1) 0 (1) 1 (2) 4 (1) 0 (1)
(2, 3) ne 2 2 2 2 2 2
(4, 6) ne 2 2 2 2 2 2 (3, 4) da 0 (5) 1 (1) 4 (1) 1 (2) 4 (1) 0 (1)
(1, 3) ne 2 2 2 2 2 2 (3, 5) ne 0 (5) 1 (1) 4 (1) 1 (2) 4 (1) 0 (1)
(5, 6) da 0 (6) 1 (1) 4 (1) 1 (2) 4 (1) 5 (1)
(2, 3) ne 0 (6) 1 (1) 4 (1) 1 (2) 4 (1) 5 (1)
(4, 6) ne 0 (6) 1 (1) 4 (1) 1 (2) 4 (1) 5 (1)
(1, 3) ne 0 (6) 1 (1) 4 (1) 1 (2) 4 (1) 5 (1)
Mrežno planiranje
Vođenje projekata
Projekat – skup aktivnosti
• Trajanje
• Međuzavisnost
• Troškovi
• Resursi
Analiza strukture
Analiza vremena
Analiza troškova
Raspodjela resursa
Analiza strukture
Mrežni dijagram
Čvorovi
Grane
Grane – aktivnosti
118
Mrežno planiranje – Primjer 1
Mrežni dijagram –
Aktivnost Zavisi od
prestavljanje aktivnosti u grafu
A -
B A I
C A M
D A D H
K
E B
A C G
F C J L
G C F
B
H D
E
I D
J G,H
K G,H
L E,F,J
M I
119
Numerisanje mrežnog dijagrama
4. Ponavljaj 2 i 3 do kraja
120
7
I
3 M
D H
K
A C G
1 2 4 6 J
8
L
9
F
B
E
5
Analiza vremena - CPM
Procedura na primjeru
122
CPM Primjer
123
CPM – mrežni dijagram
7
I 22
42 M5
3
20
D 10 K 10
H 14
C6
1
A 10
2 4 G3 6 J4
8 L8
9
0 10 16 34 38 47
B6 F 20
E4
5
16
124
7
I 22
42 42 M5
3
20 20
D 10 K 10
H 14
C6
1
A 10
2 4 G3 6 J4
8 L8
9
0 0 10 10 16 19 34 35 38 39 47 47
B6 F 20
E4
5
16 35
125
7
I 22
42 42 M5
3
20 20
D 10 K 10
H 14
C6
1
A 10
2 4 G3 6 J4
8 L8
9
0 0 10 10 16 19 34 35 38 39 47 47
B6 F 20
E4
5
16 35
126
Najranije vrijeme početka i završetka aktivnosti
Aktivn Zavisi Vrijeme Nr. Početak Nr. Kraj Nk. početak Nk. Kraj
ost od trajanja
A - 10 0 10 0 10
B A 6 10 16 29 35
C A 6 10 16 13 19
D A 10 10 20 10 20
E B 4 16 20 35 39
F C 20 16 36 19 39
G C 3 16 19 32 35
H D 14 20 34 21 35
I D 22 20 42 20 42
J G,H 4 34 38 35 39
K G,H 10 34 44 37 47
L E,F,J 8 38 46 39 47
M I 5 42 47 42 47
Nk. Kraj – Nr. Početak – Vrijeme trajanja = Rezerva (ukupna)
Aktiv Zavisi Vrijeme Nr. Početak Nr. Kraj Nk. početak Nk. Kraj Rezerva
nost od trajanja
A - 10 0 10 0 10 0
B A 6 10 16 29 35 19
C A 6 10 16 13 19 3
D A 10 10 20 10 20 0
E B 4 16 20 35 39 19
F C 20 16 36 19 39 3
G C 3 16 19 32 35 16
H D 14 20 34 21 35 1
I D 22 20 42 20 42 0
J G,H 4 34 38 35 39 1
K G,H 10 34 44 37 47 3
L E,F,J 8 38 46 39 47 1
M I 5 42 47 42 47 0
Kritični put – Niz aktivnosti bez rezerve
A–D–I–M
7
I
3 M
D H
K
A C G
1 2 4 6 J
8
L
9
F
B
E
5
Analiza vremena - PERT
Stohastički model
131
PERT - Primjer
132
E
H
A F
B G I
C D
133
Numerisanje mrežnog dijagrama
E 5
2
H
A F
B G I
1 4 6 7
C D
3
134
Različita trajanja
135
Očekivano vrijeme te = (Opt. + 4*Vjer. + Pes.) / 6
Varijansa (odstupanje) δ2= ((Pes. – Opt.) / 6)2
136
Rezervu (kritični put) računamo koristeći te
Br. Pret. Oče. Nr.poč Nr. kraj Nk.poč Nk. kraj S (Slack)
A 6,17 0 6,17 0 6,17 0
B 3 0 3 1,67 4,67 1,67
C 2 0 2 0,67 2,67 0,67
D C 2 2 4 2,67 4,67 0,67
E A 5,5 6,17 11,67 6,17 11,67 0
F A 1,17 6,17 7,34 7,67 8,84 1,5
G B; D 4,17 4 8,17 4,67 8,84 0,67
H E 1,17 11,67 12,84 11,67 12,84 0
I F; G 4 8,17 12,17 8,84 12,84 0,67
137
Kritični put: A – E – H
E 5
2
H
A F
B G I
1 4 6 7
C D
3
138
Hvala na pažnji!