Problem najtańszego pokrycia ABCDEFI 1 1 1 II 1 1 III 1 1 IV 1 1 V 1
Transkrypt
Problem najtańszego pokrycia ABCDEFI 1 1 1 II 1 1 III 1 1 IV 1 1 V 1
Problem najtańszego pokrycia A 1 I II III IV V VI B 1 1 1 D E F 6 1 1 1 8 1 3 C D E F 1 1 1 1 1 7 1 1 1 1 4 1 3 1 1 1 1 4 lokalizacja S1 S2 S3 S4 S5 I II III IV V VI C 1 5 Koszt 4 7 11 6 10 A 1 1 1 1 Okręgi obsługiwane L1,l3,l5,l7,l8,l10,l12,l14 L2,l4,l11 L1,l6,l8,l9,l13,l14,l15 L1,l2,l4,l8,l10,l11,l14 L3,l5,l6,l7,l9,l12,l13,l15 B 1 1 1 4 7 5 1 1 1 6 Algorytm heurystyczny: liczymy stosunek liczby 1 w macierzy/koszt, wybieramy kolumnę, gdzie ten iloraz jest najwyższy kolumnę i aktualizujemy macierz, liczymy nowe ilorazy liczby 1 w macierzy/koszt itd. Algorytm dokładny: zastosowanie w dowolnej kolejności, dopóki się da, jednej z reguł, potem pełen przegląd. 1. Jeśli w danym wierszu jest dokładnie jedna jedynka, wybierz odpowiednią kolumnę, zaktualizuj macierz 2. Jeśli dany wiersz jest „Większy lub równy” niż inny, wyeliminuj go 3. Jeśli dana kolumna jest „mniejsza lub równa” i nietańsza niż inna, wyeliminuj ją 4. Jeśli w danej kolumnie są same 0, wyeliminuj ją 5. Jeśli w danym wierszu są same 0, nie ma rozwiązania – KONIEC Sformułowanie jako zadanie programowania liniowego: zmienne decyzyjne – 0-1 – dla każdej kolumny (wybrana – niewybrana), f. celu – koszty.