Zaawansowane algorytmy i struktury danych/Ćwiczenia 5: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Sank (dyskusja | edycje)
Sank (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
== Zadanie 1 ==
{{kotwica|zadanie 1|}}
{{kotwica|zadanie 1|}}
Zaproponuj efektywny algorytm obliczania najkrótszych ścieżek z jednego
wierzchołka w [[dag|DAGu]] o dowolnych wagach krawędzi.
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> '''Wskazówka'''  <div class="mw-collapsible-content" style="display:none"> Po pierwsze w DAGu nie
ma cykli a więc także nie ma cykli o ujemnej wadze. Zauważmy, że
wszystkie ścieżki w DAGu idą zgodnie z porządkiem topologicznym, a
więc także te najkrótsze. Odległości DAGu można więc policzyć
wykonując [[#relaksacja|relaksację]] krawędzi w porządku
topologicznym.
</div>
</div>
== Zadanie 2 ==
{{kotwica|zadanie 2|}}
'''Układ ograniczeń różnicowych''' zadany jest poprzez zbiór zmiennych
<math>X=\{x_0, \ldots, x_n\}</math> oraz zbiór nierówności liniowych
<math>O=\{x_{i_0} - x_{j_0} \le b_0, ldots, \{x_{i_m} - x_{j_m} \le
b_m\} </math>, gdzie <math>i_k, j_k \in X</math>, <math>b_k\in
\mathcal{R}</math> dla <math>k = 0,\ldots, m</math>. Rozwiązaniem
układu ograniczeń różnicowych jest  wartościowanie zmiennych
<math>X</math> dla którego spełnione są wszystkie nierówności z
<math>O</math>. Zaproponuj efektywny algorytm znajdujący
rozwiązanie układu ograniczeń liniowych.
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> '''Wskazówka'''  <div class="mw-collapsible-content" style="display:none">
Problem ten można rozwiązać poprzez sprowadzenie do problemu
najkrótszych ścieżek z jednym źródłem i wykorzystanie algorytmu
Bellmana-Forda. Mając dane zbiory <math>X</math> i <math>O</math>
konstruujemy na ich podstawie graf <math>G=(X,E)</math> oraz
funkcję wagową <math>w:E \to \mathcal{R}</math> w następujący
sposób:
<center><math>
E = \{(x_i, x_j) : x_{i} - x_{j} \le b \in O\},
</math></center>
<center><math>
w(x_i,x_j) = \min\{b : x_{i} - x_{j} \le b \in O\}.
</math></center>
Łatwo teraz pokazać, że  w grafie <math>G</math> nie ma cyklu
ujemnej długości jeżeli układ ograniczeń różnicowych ma rozwiązanie,
oraz odległości w grafie <math>G</math> zadają rozwiązanie tego
układu.
</div> </div>
== Zadanie 3 ==
{{kotwica|zadanie 2|}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> '''Wskazówka'''  <div class="mw-collapsible-content" style="display:none">
</div> </div>

Wersja z 20:45, 20 lip 2006

Zadanie 1

Zaproponuj efektywny algorytm obliczania najkrótszych ścieżek z jednego wierzchołka w DAGu o dowolnych wagach krawędzi.

Wskazówka

Zadanie 2

Układ ograniczeń różnicowych zadany jest poprzez zbiór zmiennych X={x0,,xn} oraz zbiór nierówności liniowych O={xi0xj0b0,ldots,{ximxjmbm}, gdzie ik,jkX, bk dla k=0,,m. Rozwiązaniem układu ograniczeń różnicowych jest wartościowanie zmiennych X dla którego spełnione są wszystkie nierówności z O. Zaproponuj efektywny algorytm znajdujący rozwiązanie układu ograniczeń liniowych.

Wskazówka


Zadanie 3

Wskazówka