Strona 1 z 1
problem najkrótszej drogi
: 4 wrz 2014, o 12:46
autor: Cosinusoida89sonia
Polski dyplomata ma objechać 15 stolic państw z Unii Europejskiej i przedstawić stanowisko rządu RP. Wyjeżdża z Warszawy i do Warszawy trafia. Jakie stolice ma odwiedzić i jaką trasą ma jechać aby stosunek sumy liczby mieszkańców państw, które odwiedzi, dzielony przez całkowitą przebytą drogę mierzoną w kilometrach był jak największy?-- 4 wrz 2014, o 11:53 --Rozumiem że wybranie z 27 stolic (bo Warszawa juz odpada) 15 najludniejszych i znalezienie najkrótszej drogi z Warszawy przez te 15 miast i znów do Warszawy nie wchodzi w grę.
problem najkrótszej drogi
: 5 wrz 2014, o 15:37
autor: kropka+
Piszesz to samo zadanie już drugi raz. Podpowiedziałam, że można sprawdzić np. algorytm zachłanny. Robiłaś coś z tym zadaniem?
Najpierw wybierasz stolice:
Tworzysz
\(\displaystyle{ O _{27 \times 27}}\) - macierz odległości pomiędzy wszystkimi parami stolic
\(\displaystyle{ W _{27}}\) - wektor odległości wszystkich stolic od Warszawy
\(\displaystyle{ L _{27}}\) - wektor liczby ludności państw odpowiadających stolicom
\(\displaystyle{ R _{27}}\) - wektor roboczy
Krok 1. Wypełniasz wektor \(\displaystyle{ R}\) wartościami
\(\displaystyle{ r _{i}= \frac{l _{i} }{2w _{i} }}\)
Pierwsza stolica to taka, dla której \(\displaystyle{ r _{i}}\) jest maksymalne
W miejsce wybranej stolicy wpisujesz do wektora \(\displaystyle{ R}\) \(\displaystyle{ r _{i}=-1}\)
Krok 2. Wypełniasz na nowo wektor \(\displaystyle{ R}\) w taki sposób: wartości \(\displaystyle{ -1}\) pozostawiasz bez zmian, a dla pozostałych elementów liczysz
\(\displaystyle{ r _{i}= \frac{suma \ ludnosci \ l \ panstw \ dla \ wybranych \ wczesniej \ stolic+l _{i} }{w _{stolicy \ z \ kroku \ 1}+suma \ odległosci \ o \ \ miedzy \ stolicami \ z \ poprzednich \ krokow+ o_{i,ostatnia \ wybrana \ stolica} + w _{i} }}\)
Kolejna stolica jest taka, dla której \(\displaystyle{ r _{i}}\) jest maksymalne
W miejsce wybranej stolicy wpisujesz do wektora \(\displaystyle{ R}\) \(\displaystyle{ r _{i}=-1}\)
Wykonujesz 14 razy Krok 2.
Masz już \(\displaystyle{ 15}\) stolic, więc liczysz najkrótszą trasę jakimś algorytmem dla problemu komiwojażera.
Jakieś tam przybliżenie rozwiązania optymalnego z tego dostaniesz.
problem najkrótszej drogi
: 7 wrz 2014, o 17:51
autor: Cosinusoida89sonia
czy dobrze zrozumiałam że najpierw szukam 15-stu stolic takich że stosunek liczby ich miszkańcow do drogi z Warszawy do danej stolicy i z powrotem jest największy?
problem najkrótszej drogi
: 7 wrz 2014, o 21:06
autor: kropka+
Tak, tylko tam ma być ludność państwa a nie jego stolicy.
problem najkrótszej drogi
: 8 wrz 2014, o 00:15
autor: Cosinusoida89sonia
Tak.faktycznie.
Mam jeszcze pytanie. Czy do tego zadania da się zapisać funkcje celu? Bo juz wiem jak algorytm ma dzieląc ale jak optymalizuje się cos to wlasne ustala się funkcje celu czyli ta wartość która chcemy w naszym przypadku zmaksymalizować tzn suma ludzi przez calkowita droga.
problem najkrótszej drogi
: 8 wrz 2014, o 00:45
autor: kropka+
Wybór 15 stolic:
\(\displaystyle{ \frac{ \sum _{i=1} ^{15}l_{i} } {w _{1}+w _{15}+ \sum _{i=1} ^{14}o_{i \ i+1} } \rightarrow max}\)
Minimalizacja długości trasy:
\(\displaystyle{ w _{1}+w _{15}+ \sum _{i=1} ^{14}o_{i \ i+1} \rightarrow min}\)
W kroku 2 był błąd w formule (nie zauważyłam).Formuła \(\displaystyle{ \frac{ \sum _{k=1} ^{i}l_{k} }{w _{1}+w _{i} + \sum _{k=1} ^{i-1}o_{k \ k+1} }}\)
problem najkrótszej drogi
: 8 wrz 2014, o 08:07
autor: Cosinusoida89sonia
a czy wybór 15-stu stolic nie powinien wyglądać tak:
\(\displaystyle{ \frac{ \sum_{1}^{15} l_{i} }{ \sum_{1}^{15} w_{i} } \rightarrow max}\)
bo chyba w pierwszym kroku interesują tylko odległości poszczególnych stolic od Warszawy a odległości między nimi dopiero w drugim kroku będą nam potrzebne przy minimalizacji trasy.
chociaż też zastanawiam sie czy nie powinno się jakoś inaczej indeksować tych \(\displaystyle{ l_{i}}\) bo jak mamy \(\displaystyle{ l_{1}+ l_{2}+...+l _{15}}\) to nie wiem czy to nie wygląda tak że bierzemy 15-cie pierwszych wartości z wektora \(\displaystyle{ L _{27}}\)... ?
problem najkrótszej drogi
: 8 wrz 2014, o 20:59
autor: kropka+
Funkcja celu musi być taka, jak w treści zadania. Poza tym uwzględnienie odległości między miastami zmniejsza rozrzut stolic. Np. niech trzy stolice i Warszawa leżą na jednej prostej. Od zachodu: A,B,Warszawa,C. Powiedzmy, że z tych trzech stolic mamy wybrać dwie.
Niech
\(\displaystyle{ l _{A}=100, \ w _{A}=1000 \\
l _{B}=40, \ w _{B}=500 \\
l _{C}=90, \ w _{C}=1000 \\
AB=500}\)
Wtedy, wg. Twojego kryterium byłoby \(\displaystyle{ \frac{l _{A} }{w _{A}}= 0,1; \ \frac{l _{B} }{w _{B} }=0,08; \ \frac{l _{C} }{w _{C} }=0,09}\), więc wybierzesz A i C.
Wtedy szukany stosunek to \(\displaystyle{ \frac{190}{1000+2000+1000}=0,0475}\)
Natomiast wg. mojego kryterium będzie AB i dostanę \(\displaystyle{ \frac{140}{1000+500+500}= 0,07}\).
Co do indeksacji masz rację. Trzebaby stworzyć dodatkowy wektor binarny \(\displaystyle{ X _{27 } .}\) Na początku wypełnić go zerami, a potem przy każdym wyborze kolejnej stolicy zamieniać odpowiednie 0 na 1. Wtedy w funkcji celu byłoby w liczniku \(\displaystyle{ \sum _{i=1} ^{27}l_{i}x _{i}}\). Mianownik też należałoby podobnie zmienić, tworząc dodatkową binarną macierz odległości \(\displaystyle{ Y _{27 \times 27}}\).