Czy każdy zachłanny algorytm ma strukturę matroidu?


13

Jest dobrze znane, że dla każdego matroid M żadna funkcja ciężaru w , nie wychodzi algorytm GreedyBasis(M,w) , która zwraca na podstawę maksymalny ciężar M . Czy zatem odwrotny kierunek jest również prawdą? Oznacza to, że jeśli istnieje jakiś chciwy algorytm, musi również istnieć pewna struktura matroidu.


Algorytm Dijkstry jest często uważany za algorytm zachłanny (np. Patrz rozdział 4.4 „Projektowanie algorytmu” autorstwa Kleinberga i Tardosa). Nie znam matematycznej interpretacji najkrótszych ścieżek z jednego źródła.
Neal Young,

Podział zestawu rzeczywistych interwałów na minimalną liczbę rozłącznych parami ma naturalny algorytm zachłanny (wylicz interwały według czasu rozpoczęcia, dla każdego dodaj go do istniejącego podzbioru, jeśli to możliwe, w przeciwnym razie uruchom nowy podzbiór; patrz rozdział 4 Kleinberga i Tardos). Czy ten problem można rozumieć jako matroid?
Neal Young,

Odpowiedzi:


12

W rzeczywistości pełny i ogólny opis problemu, który można rozwiązać za pomocą chciwego algorytmu, polega na osadzeniu matroidu , który uogólnia zarówno pojęcie matroidu, jak i greedoidy . Odpowiedź brzmi: nie - problem rozwiązany przez zachłanny algorytm nie musi mieć struktury matroidu, ale będzie miał strukturę osadzania matroidu (co jest, niestety, znacznie bardziej skomplikowane).

Model mentalny niektórych z nich może polegać na znajdowaniu drzew o minimalnej rozpiętości. Struktura używana przez algorytm Kruskala jest matroidem, ale taka, której używa algorytm Prim (wymagający węzła początkowego), nie jest. (Jest to jednak chciwość - i osadzanie matroidów).

(S,C)SCS f:2SRS

Algorytm zachłanności, zdefiniowany w kategoriach tego formalizmu, jest dość prosty: zaczynasz od pustego zestawu i sukcesywnie dodajesz pojedynczy element, aż dojdziesz do podstawy, zawsze upewniając się, że (i) twój zestaw jest wykonalny na każdym kroku, i ( ii) dodawany element maksymalizuje funkcję celu wynikowego wyniku, wrt. wszystkie alternatywne elementy, które mogłeś dodać. (Oznacza to, że pod względem koncepcyjnym próbujesz dodać wszystkie możliwe alternatywy i wybrać tę, która daje najwyższą wartość celu.)

Można, być może, twierdzą, że mogą istnieć inne formy algorytm zachłanny, ale istnieje kilka podręczniki algorytmów i optymalizacji kombinatorycznej, które opisują ten set-systemowi algorytmu opartego jak na algorytm zachłanny. To nie powstrzymuje cię przed opisaniem czegoś, co nie pasuje, ale przypuszczam, że nadal można je nazwać chciwym. (Mimo to robi okładkę niczego, co mogłoby potencjalnie mieć matroid strukturę, na przykład, choć jest o wiele bardziej ogólne.)

What Helman i in. robią to, że opisują, kiedy ten algorytm zadziała. Dokładniej:

  1. Pokazują, że dla liniowych funkcji celu (gdzie wartość celu jest sumą wag elementów), zachłanny algorytm będzie działał dokładnie na strukturze, którą definiują jako osadzenie matroidu;

  2. Podają podobną charakterystykę dla tak zwanych celów wąskiego gardła (gdzie wartość obiektywna zestawu jest równa minimum w stosunku do wag poszczególnych elementów); i

  3. Podają dokładną charakterystykę, które funkcje celu (poza liniowe) są zoptymalizowane przez chciwy algorytm osadzania matroidów.


3
Czy możesz wyjaśnić, jaka jest ich definicja chciwego algorytmu?
Kaveh

1
Rozszerzyłem moją odpowiedź, aby wyjaśnić, na czym polega ich formalizm.
Magnus Lie Hetland

11

Chciwy algorytm nie jest formalnie zdefiniowanym pojęciem. Istnieją różne modele próbujące uchwycić to intuicyjne pojęcie, ale nie ma zgody co do tego, co jest chciwym algorytmem. O ile nie określisz formalnej definicji tego, co rozumiesz przez chciwy algorytm, na pytanie nie można odpowiedzieć jako tak lub nie.

Istnieje uogólnienie matroidów zwanych greedoid, które jest inspirowane przez zachłanne algorytmy, na które możesz spojrzeć.


Formalna definicja nie jest wymagana, jeśli uzgodnimy pewną właściwość klasy chciwych algorytmów. Jeśli na przykład ustaliliśmy, że każdy zachłanny algorytm ma (formalnie zdefiniowaną) właściwość P, i pokazaliśmy, że każdy algorytm, który spełnia P, można zdefiniować na matroidie, co dałoby pozytywną odpowiedź na pytanie PO. Podobnie, jeśli zgodzimy się, że określony algorytm jest zachłanny, i pokażemy, że nie może być chciwym algorytmem matroidu, dałoby to odpowiedź negatywną.
Odłączony Laconian

2

Rozważ następujące problemy: EURO ŁAŃCUCH MONET: Biorąc pod uwagę nieskończoną ilość banknotów 1,2,5,10 euro, zapłać X euro, używając jak najmniejszej liczby banknotów. Można to rozwiązać za pomocą chciwego algorytmu, który przyjmuje największą możliwą uwagę. Ale w tym problemie nie ma struktury matroidu.

ZAKRES OTWORÓW: W otworach znajdują się otwory x_1, x_2, ..., x_n. Masz naszywkę o długości 10 cm. Popraw dziury, używając jak najmniej łatek. Znów można to rozwiązać w zachłanny sposób (po prostu umieść łatkę tak dobrze, jak to możliwe), ale nie ma struktury matroidu.


dzięki, miałem swoje podejrzenia, ale nie byłem pewien. W końcu musimy szukać chciwego algorytmu, nawet jeśli struktura matroidów nie istnieje.

1
@ user3373748 Zwykle szukam tylko programu dynamicznego. Chciwy jest zdegenerowanym DP.

1
(Nie być wybrednym, ale nie ma banknotów 1 lub 2 euro; możesz chcieć zmienić swój zestaw wartości na {5, 10, 20, 50, 100, 200} lub
sformułowanie

Zauważ, że opisany algorytm wymiany monet działa dla {1,2,5,10}, ale może nie obliczyć optymalnych wyników dla innych wartości. Przykład: dla {1,3,4} optymalnym rozwiązaniem dla 6 byłoby [3,3], ale algorytm zwróciłby [4,1,1].
Socowi

1
Istnieje struktura matroidów dla problemu wymiany monet - gauss.ececs.uc.edu/Courses/C671/html/Homework/hw5_sol.html
Tushant Mittal
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.