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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Sank (dyskusja | edycje)
Nie podano opisu zmian
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 10 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
== Zadanie 1 ==
== Zadanie 1 ==
{{kotwica 1|zadanie 1|}}
{{kotwica|zadanie 1|}}


Pokaż, że [[..\wyklad 6\iloczyn_odległości|iloczyn odległości]] jest przemienny względem dodawania, tzn, że dla macierzy <math>C</math>, <math>D</math>
Pokaż, że [[../Wykład 6#iloczyn_odległości|iloczyn odległości]] jest przemienny względem dodawania, tzn. że dla macierzy <math>C</math>, <math>D</math>
i <math>E</math> rozmiaru <math>n\times n</math>zachodzi:
i <math>E</math> rozmiaru <math>n\times n</math>zachodzi:




<center><math> C \times_{\min} \left(D  + E \right)= C \times_{\min}
<center><math>C \times_{\min} \left(D  + E \right)= C \times_{\min}
D +  C  \times_{min} E, </math></center>
D +  C  \times_{min} E</math></center>




Linia 17: Linia 17:
</math></center>
</math></center>


<div class="mw-collapsible mw-made=collapsible mw-collapsed"> '''Wskazówka'''   
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka'''   
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Te dwie równości wynikają ponownie z definicji iloczynu odległości [[#wzór_1|wzoru (1)]] oraz przemienności operacji <math>\min</math>
Te dwie równości wynikają ponownie z definicji iloczynu odległości - [[../Wykład 6#wzór_1|wzoru (1)]] oraz przemienności operacji <math>\min</math> względem dodawania.  
względem dodawania.  


</div>
</div>
Linia 29: Linia 28:




Zaproponuj jak wykorzystać algorytm Bellmana-Forda do sprawdzenia, czy w grafie <math>G=(V,E)</math> i wagach krawędzi opisanych funkcją <math>w:E \to \mathcal{R}</math> istnieje cykl o ujemnej wadze.
Zaproponuj, jak wykorzystać algorytm Bellmana-Forda do sprawdzenia, czy w grafie <math>G=(V,E)</math> i wagach krawędzi opisanych funkcją <math>w:E \to \mathcal{R}</math> istnieje cykl o ujemnej wadze.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Dodaj nowy wierzchołek <math>s</math> i skonstruuj graf <math>G'=(V',E')</math> i
Dodaj nowy wierzchołek <math>s</math> i skonstruuj graf <math>G'=(V',E')</math> oraz
funkcję wagową <math>w'</math> taką, że:
funkcję wagową <math>w'</math> taką, że:
{{wzor2|
{{wzor2|
Linia 54: Linia 53:
{{kotwica|zadanie 3|}}
{{kotwica|zadanie 3|}}


Mając dane graf <math>G=(V,E)</math>, funkcję wagową <math>w:E \to \mathcal{R}</math>, odległości <math>d(v)</math> z wybranego wierzchołka <math>s</math> do <math>v</math> w grafie <math>G</math>, zaproponuj algorytm obliczania [[Wykład 5#drzewo_najkrótszych_ścieżek|drzewa najkrótszych ścieżek]] w czasie <math>O(|E|).</math>
Mając dane graf <math>G=(V,E)</math>, funkcję wagową <math>w:E \to \mathcal{R}</math>, odległości <math>d(v)</math> z wybranego wierzchołka <math>s</math> do <math>v</math> w grafie <math>G</math>, zaproponuj algorytm obliczania [[../Wykład 5#drzewo_najkrótszych_ścieżek|drzewa najkrótszych ścieżek]] w czasie <math>O(|E|)</math>




<div class="mw-collapsible mw-made=collapsible mw-collapsed"> '''Wskazówka'''   
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka'''   
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">


Linia 63: Linia 62:




<center><math> E_{d} = \{(u,v): (u,v)\in E \mbox{ i } d(u) + w(u,v) = d(v). \} </math></center>
<center><math>E_{d} = \{(u,v): (u,v)\in E \mbox{ i } d(u) + w(u,v) = d(v). \}</math></center>





Aktualna wersja na dzień 22:13, 11 wrz 2023

Zadanie 1

Pokaż, że iloczyn odległości jest przemienny względem dodawania, tzn. że dla macierzy C, D i E rozmiaru n×nzachodzi:


C×min(D+E)=C×minD+C×minE


oraz


(D+E)×minC=D×minC+E×minC.
Wskazówka

Zadanie 2


Zaproponuj, jak wykorzystać algorytm Bellmana-Forda do sprawdzenia, czy w grafie G=(V,E) i wagach krawędzi opisanych funkcją w:E istnieje cykl o ujemnej wadze.

Rozwiązanie


Zadanie 3

Mając dane graf G=(V,E), funkcję wagową w:E, odległości d(v) z wybranego wierzchołka s do v w grafie G, zaproponuj algorytm obliczania drzewa najkrótszych ścieżek w czasie O(|E|)


Wskazówka