Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 3

Algorytm węgierski

Do zagadnienia przydziału, mamy określone środki i określone zadania, które musimy wzajemnie
przydzielić
Oznaczenia:
· i – środki
· j – zadania
· n – liczba środków = liczba zadań → przydział jeden-jeden
· aij – koszt przydziału zadania j do środka i
· xij – zmienna decyzyjna, = 0 - jeśli nie przydzielono tego i do j, = 1 – jeśli przydzielono; ∑xij dla i =
1, ∑xij dla j = 1
· ∑aij*xij → minimalizacja
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
Metoda rozwiązywania
· Przekształcić macierz C do macierzy kosztów utraconych możliwości wg twierdzenia 1
· znaleźć najmniejszy element w każdym wierszu i odjąć go od każdego elementu w tym wierszu
· w nowej macierzy znaleźć minimalny element w każdym wierszu i odjąć go od każdego elementu
w kolumnie
· Wyznaczyć zera niezależne
· tylko jedno 0 w każdej liniii, zacząć od najmniejszej liczby zer w wierszach lub kolumnach, mogą
być różne kombinacje
· jeśli liczba zer = n → do kroku 5
· jeśli liczba zer > n → do kroku 3
· Zwiększyć liczbę zer niezależnych
· wykreślić linie z zerami niezależnymi (żeby pokrywały wszystkie zera w macierzy)
· jeśli liczba tych linii = n, to przejść do kroku 5
· znaleźć najmniejszy element nieprzykryty liniami
· odjąć ten element od wszystkich elementów nieprzykrytych linii i dodać do elementów
przykrytych dwiema liniami
· Wyznaczyć ponownie zera niezależne
· jeśli nadal się nie da, trzeba zredukować macierz jak w kroku 1
· Rozwiązanie
· tworzymy zero-jedynkową macierz przydziału → 1 w miejsce zer niezależnych, 0 w pozostałych
· zestawiamy macierz zero-jedynkową z macierzą kosztów i obliczamy wartość funkcji celu
Przykład 1

← macierz kosztów przydziału C


Krok 1. Przekształcić macierz C (najmniejszy elementy wierszy i kolumn)

Krok 2. Wyznaczyć zera niezależne


- liczba zer = 3 → a musi być równa rozmiarowi macierzy

Krok 3. Zwiększyć liczbę zer niezależnych


- znaleźć najmniejszy element nieprzykryty liniami i odjąć ten element od wszystkich elementów
nieprzykrytych linii i dodać do elementów przykrytych dwiema liniami
Krok 4. Wyznaczyć zera niezależne
- jeśli nadal się nie da, trzeba zredukować macierz jak w kroku 1

Krok 5. Rozwiązanie
- mamy 4 zera niezależne – warunek stopu
- tworzymy zero-jedynkową macierz przydziału i obliczamy wartość funkcji celu

Q = 20 + 40 + 5 + 10 = 75

You might also like