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