praca magisterska - 0121115038

advertisement
WSTĘPAlgorytm węgierski stosowany jest do rozwi±zywania zagadnienia przydziału
(AP - assigment problem), mamy okre¶lone ¶rodki i okre¶lone zadania, które musimy
wzajemnie przydzielić. Na tej stronie opisany jest algorytm w swej podstawowej
wersji oraz podstawowe twierdzenia, na których się opiera.POJĘCIA Przez j = 1, 2,
... n oznaczmy zadania, natomiast przez i = 1, 2, ... n ¶rodki do ich wykonania.
Przydział jeden-jeden oznacza tyle samo zadań co ¶rodków. Koszty przydziału
zadania j do ¶rodka i, możemy zatem łatwo zapisać przy pomocy macierzy
kwadratowej. WŁASNO¦CI PROBLEMU NA PRZYKŁADZIE Twierdzenie 1 Zmienne
decyzyjne nie ulegaj± zmianie, jeżeli odejmiemy/dodamy od/do wierszy/kolumn t±
sam± warto¶ć stał±.Twierdzenie 2 Zera niezależne - tablica (macierz), posiada 0
niezależne, jeżeli spełniaj± one warunek: ŻADNE DWA ZERA NIE LEŻˇ NA TEJ
SAMEJ LINII POZIOMEJ LUB PIONOWEJ. ALGORYTMKrok 1: Przygotowawczy (z
twierdzenia 1). Krok 2: Sprawdzenie liczby zer niezależnych (z twierdzenia
2).Wykre¶l linie pionowe i poziome przechodz±ce przez zera tablicy kosztów, tak aby
liczba linii była minimalna, jeżeli liczba linii = n STOP.Krok 3: Powiększenie liczby zer
niezależnych (zgodnie z twierdzeniem 1). (1/6) W tym przykładzie rozwi±żemy
zagadnienie przydziału. Zastosujemy w tym celu algorytm węgierski. Zakładamy, że
mamy tyle samo zadań i ¶rodków (przydział jeden-jeden). Koszty przydziału
zapisane s± w postaci macierzy. D±żymy do minimalizacji funckji celu. Przy czym
warto¶ć a - oznacza koszt przydziału zadania j do ¶rodka i, natomiast x oznacza
zmienn± decyzyjn±. Nasza dana macierz: Przekształcamy nasz± macierz zgodnie z
krokiem 1 algorytmu, bazuj±c na twierdzeniu 1 (zobacz w teorii)Znajdujemy
minimalny element w każdym wierszu (yi minimalne). Odejmujemy od danego
wiersza tenże element: W otrzymanej macierzy zaznaczamy z kolei minimalny
element w każdej kolumnie(zj minimalne). Również w tym przypadku odejmujemy ten
element, ale od danej kolumny : Po przekształceniach macierzy, możemy okre¶lić
liczbę zer niezależnych . Wyznaczanie zer niezależnych.Zera niezależne
wyznaczamy pamietaj±c, że w każdej kolumnie i wierszu możemy zaznaczyć tylko
jedno takie zero. Podchodz±c do wyznaczania zdroworozs±dkowo, zaczynamy tam,
gdzie leży najmniej zer w wierszu, czy w kolumnie. Można zauważyć, że zbiór zer
niezależnych, możemy wyznaczyć na kilka sposobów.Rysunki poniżej, przedstawiaj±
macierz kosztów po przekształceniach z kroku 1 i macierz z zaznaczonym zbiorem
zer niezależnych. Zgodnie z twierdzeniem 2 (zobacz teorię) możemy zaznaczyć zera
niezależne, pamiętaj±c, że na danej linii pionowej lub poziomej może się znajdować
tylko jedno, możemy tworzyć różne permutacje (warianty) zbioru zer niezależnych :
Aby można było przydzielić zadanie do każdego ¶rodka musimy powiększyć liczbę
zer niezależnych (potrzebujemy ich w liczbie 4, a możemy wyodrębnić tylko 3 LICZBA ZER NIEZALEZNYCH MUSI BYĆ RÓWNA ROZMIAROWI MACIERZY).
Powiększanie liczby zer niezależnych realizujemy na podstawie kroku 3 algorytmu
(zobacz teorię) : Aby można było przydzielić zadanie do każdego ¶rodka musimy
powiększyć liczbę zer niezależnych (potrzebujemy ich w liczbie 4, a możemy
wyodrębnić tylko 3 - LICZBA ZER NIEZALEZNYCH MUSI BYĆ RÓWNA
ROZMIAROWI MACIERZY). Powiększanie liczby zer niezależnych realizujemy na
podstawie kroku 3 algorytmu (zobacz teorię) : W kazdym wierszu i w kazdej
kolumnie mamy co najmniej 1 zero. W przeciwnym wypadku, mogliby¶my
zredukować macierz (powtórnie odj±ć minimalny element w wierszach lub/i
kolumnach).Przystępujemy ponownie do wyznaczenia zbioru zer niezależnych:
Mamy 4 zera niezależne, zatem spełniony jest warunek stopu. Tworzymy zerojedynkow± macierz przydziału - jedynki wstawiamy w miejsca zer niezależnych,
pozostałe miejsca zapełniamy zerami. Na podstawie powyższej macierzy, możemy
opisać strukturę przydziałów w naszym przykładzie: ZADANIE 1 --- ¦RODEK
1ZADANIE 2 --- ¦RODEK 3ZADANIE 3 --- ¦RODEK 4ZADANIE 4 --- ¦RODEK
2Zestawimy teraz utworzon± poprzednio macierz zero-jedynkow± z macierz±
kosztów, która dana była dla nas od pocz±tku. Zaznaczmy w danej macierzy
kosztów komórki odpowiadaj±ce jedynkom w macierzy zero-jedynkowej. Zsumujemy
zaznaczone warto¶ci: Q = 20 + 40 + 5 + 10 = 75 warto¶ć funkcji celu x60
Download