Alltägliche Begegnungen mit NP-vollständigen Problemen


34

Mark Dominus sammelte einige Beispiele für die Reduzierung der Polynomzeit von verschiedenen NP-harten Problemen bis hin zum Matching mit „regulären Ausdrücken“ . Es ist kein enormer Sprung, sich Polynom-Zeit-Überprüfungen vorzustellen.

Wie veranschaulichen Sie die Klasse NP-complete für Studenten oder Freunde in anderen Bereichen, die die jüngste Aufregung um Deolalikars Artikel verstehen wollten?

Antworten:


24

Mein Lieblingsbeispiel für Nicht-CS-Freunde ist dieses:

Abraham, A. Blum, Sandholm. Clearing-Algorithmen für Tauschbörsenmärkte: Ermöglichen des landesweiten Nierenaustauschs. EC07.

Nierenaustauschmärkte sind im Wesentlichen eine eingeschränkte Form der Fahrradabdeckung. Ich mag dieses Beispiel, weil a) es einfach ist, das Wesentliche zu erklären (wenn Sie einige der technischeren Details weglassen) und b) es eines der wenigen Beispiele ist, von denen ich weiß, wo bessere Algorithmen buchstäblich Leben retten können!

Mein zweites Lieblingsbeispiel ist das Problem mit Krankenhäusern und Bewohnern (auch bekannt als College-Zulassungsproblem). In jedem Krankenhaus sind alle Bewohner (Medizinstudenten) und die Bewohner die Krankenhäuser. Jedes Krankenhaus hat eine bestimmte Anzahl von Slots. Von dort ist es ein stabiles Matching-Problem und kann in Polynomialzeit gelöst werden.

In Wirklichkeit können Paare gemeinsam in das System eintreten (ja, es gibt tatsächlich ein System ), so dass das System beispielsweise verheiratete Paare, die sich beide um einen Wohnsitz bewerben, nicht aufteilt. Das Hinzufügen von Paaren macht das Problem NP-vollständig. Dies ist nicht nur einfach zu erklären, sondern zeigt auch auf anschauliche Weise, wie die Einführung von Langstreckenverbindungen zur NP-Vollständigkeit führen kann.


1
Tolles Beispiel! David Manlove hat ausgiebig an solchen Problemen gearbeitet (sowohl Austausch als auch Matching). Die Systeme werden in Großbritannien und Ungarn eingesetzt. dcs.gla.ac.uk/~davidm/publications.html Soweit ich weiß, schlagen diese Ansätze die NRMP Algorithmen und Eric McDermid des 3/2-Approximationsalgorithmus ist die bekannteste. dx.doi.org/10.1007/978-3-642-02927-1_57
András Salamon

13

Einige "alltägliche" Probleme, die NP-hart sind, angemessen formuliert:

  • Zuweisen von Universitätsklassen zu Zeitfenstern, um Zeitplankonflikte zu minimieren.

  • Zuweisen von Hochzeitsgästen zu Sitzplätzen, sodass Freunde am selben Tisch sitzen, Feinde jedoch nicht.

  • Planen Sie einen Roadtrip, um alle Sehenswürdigkeiten auf einer Liste zu besuchen, um das Fahren zu minimieren.


12

Das Problem der Handlungsreisenden ist anscheinend zugänglich ... zumindest scheint dies, wo ich bin, das mit Abstand beliebteste CS-Problem unter Nicht-CS-Leuten zu sein. Ich fand auch die folgende Abbildung von Vertex Cover sehr ansprechend, wie sie von meinem Algorithmus-Instruktor vorgestellt wurde:

Sie haben ein Straßennetz und möchten sicherstellen, dass sich an mindestens einem Ende der Straße eine Tankstelle befindet, wenn in einem Auto kein Kraftstoff mehr vorhanden ist.

Als Stadtplaner möchten Sie die Kosten minimieren, indem Sie möglichst wenige Tankstellen bauen. Dies ist im Wesentlichen das Vertex-Cover-Problem, und es ist mir gelungen, darauf hinzuweisen, dass Sie, obwohl Sie nicht damit rechnen, in der Polynomzeit die optimale Vertex-Cover-Funktion zu finden, in der Polynomzeit nur einen Faktor zwei finden können. indem Sie einfach beide Endpunkte einer maximalen Übereinstimmung auswählen (nun, dieses letzte Detail kann weggelassen werden, je nachdem, wie interessiert Ihre Zielgruppe ist - zumal der MM-Algorithmus nicht gerade ein Zwei-Zeilen-Algorithmus ist).

Als Beispiel für einen "Sprung in der Komplexität" mit einer kleinen Änderung in der Art des Problems halte ich den Unterschied zwischen der Überprüfung der Zweifarbigkeit und der Dreifarbigkeit für ein gutes Beispiel. Bei aller Publizität, die das Vierfarbensatz umgibt, könnte man auch darauf hinweisen, dass es schwierig ist, zu überprüfen, ob eine Karte mit nur drei statt vier Farben richtig eingefärbt werden kann, obwohl wir wissen, dass sie immer mit vier Farben eingefärbt werden kann. Eine ganze Reihe von Menschen findet das ziemlich verblüffend.

Eine andere ziemlich natürliche Situation ist das Deadlock-Wiederherstellungsproblem in Betriebssystemen. Dies wird durch das NP-vollständige Problem der Rückkopplungsscheitelpunktmenge modelliert - die kleinste Anzahl von Scheitelpunkten, deren Entfernung den Graphen azyklisch macht - und ich finde, dass dies auch ein bemerkenswertes Beispiel ist (und in diesem Wikipedia-Artikel weiter erläutert wird).


3
Eine maximale Übereinstimmung reicht für eine Zwei-Näherung aus, die viel einfacher zu berechnen und zu erklären ist.
Warren Schudy

1
@Warren: Danke, dass du darauf hingewiesen hast, natürlich hast du recht!
Neeldhara

8

Ich denke, paralleles Parken ist NP-hart.

Tatsächlich ist das allgemeinere Problem, den kürzesten Weg mit begrenzter Krümmung zu finden, der ein polygonales Objekt von seiner Anfangsposition zu seiner Endposition in einer polygonalen Umgebung führt, NP-schwer. Der Beweis kann hier gefunden werden - http://portal.acm.org/citation.cfm?id=298976


7

Knapsack ist ziemlich leicht zu verstehen, besonders für alle, die sich mit einem kleinen Koffer befassen mussten. Ein schönes Beispiel, wenn sie sich mit dynamischer Programmierung auskennen.

Ein weiterer Spaß (praktisch identisch) ist die Teilmengen-Summe, da sie auch eine schöne physikalische Interpretation hat: Stellen Sie sich die Zahlen als die Abstände gleicher Punktmassen auf einem idealen (massenlosen) Lineal vor, wobei der Drehpunkt am Ursprung liegt. Teilmenge-Summe sagt: Gibt es eine nicht leere Teilmenge, so dass das Lineal ausgeglichen bleibt? (dh so, dass der Schwerpunkt der Stützpunkt für das Lineal ist?)

In beiden Fällen scheint es intuitiv zu sein, dass naive Strategien die Überprüfung aller Teilmengen erzwingen können.

Wenn sie mehr Hintergrundwissen haben, ist es schön, Probleme zu vergrößern, indem Sie Einschränkungen aufheben. Beginnen Sie beispielsweise mit einem Max-Flow-Problem, wandeln Sie es in ein lineares Programm um und machen Sie es zu einem ganzzahligen Programm. (Eine großartige ist natürlich MAX-CUT, da Sie für Leute mit mehr Hintergrund auch UGC aufrufen können. Einige davon spreche ich in einer MO-Antwort an: https://mathoverflow.net/questions/33036/is-quadratic-programming -still-np-hard-if-you-have-bounds-and-a-feasible-point / 33048 # 33048. ) Auch gibt es nette Dinge wie scheinbar ähnliche Probleme, deren Komplexität sehr unterschiedlich ist (Euler (Rand) Pfad ist linear Zeit ist der Hamilton-Pfad (Vertex-Pfad) NP-vollständig.


7
Ich mag die folgende Version von Subset Sum: Sie erhalten £ 10, um Snacks in einem Geschäft zu kaufen. Finden Sie genau die richtige Kombination von Einkäufen, damit kein Geld übrig bleibt?
András Salamon

6

Die Kreuzworträtselkonstruktion ist NP-vollständig: Wenn Sie eine Reihe von Antworten gegeben haben, versuchen Sie, sie in ein Raster einzufügen.


5

Ich habe die Website Tagxedo, http://www.tagxedo.com, erstellt , einen Wortwolkengenerator, der Wörter (Größe nach Häufigkeit) in Form bringt . Die Ergebnisse sind sehr hübsch, aber das Problem ist leicht als NP-hart zu beweisen (Verpackungsproblem).

Interessanterweise haben viele NP-harte Probleme "einfache" Näherungen. Tagxedo scheint in vielen Fällen einen nahezu perfekten Job zu machen. Dies führt zu einer interessanten Diskussion über die praktische Implikation von P vs NP und das Thema der Approximation.


4

Einer meiner Freunde verbrachte ein Sabbatjahr damit, sich ein Baseballspiel in jedem wichtigen Ligastadion Nordamerikas anzuschauen. Ohne zu fliegen. (Es gelang ihm nicht ganz ; in diesem Jahr waren drei Stadien im Bau.)


ja, aber versuchte er seinen Gasverbrauch zu minimieren? :)
Suresh Venkat

Sogar einen realisierbaren Zeitplan zu finden, war nicht einfach, da die Stadien nicht jeden Tag geöffnet sind (Hamilton-Zyklus mit Zeitfenstern).
Jeffs

4

Aufgrund des Erfolgs von Unternehmen wie Uber und Lyft haben viele Menschen eine sehr leicht zugängliche direkte Erfahrung mit NP-vollständigen Problemen.

Was ist die effizienteste Zuordnung von Fahrgästen zu Fahrern angesichts einer Sammlung von Fahrern und einer Liste von Personen, die zu verschiedenen Zeiten abgeholt werden möchten?

Dieses Problem (wenn passend umformuliert) ist NPC und ich stelle mir vor, dass sich die Leute irgendwann gefragt haben, wie Uber sich entscheidet, Fahrer und Passagiere zu paaren.


3

Ich benutze normalerweise SAT als Beispiel. Ich sage so etwas wie "Alle möglichen Probleme, die ständig auftauchen, können so umgeschrieben werden, dass nach einer echten Zuordnung zu einer großen Logikformel gesucht wird. Die Frage von P vs NP ist, ob es einen grundlegend einfacheren Weg gibt, diese Logikformel zu lösen als nur alle Möglichkeiten ausprobiert. Bisher hat niemand einen Weg finden oder beweisen können, dass es keinen einfachen Ausweg gibt ".


2
Ich bin mir nicht sicher, wie vielen Menschen das jeden Tag begegnet.
Dave Clarke

3

Ein Np-vollständiges Problem wie Sudoku (auf nxn sqaure) ist wie ein universelles Tool, mit dem wir alle Probleme effizient lösen können, die effizient überprüfbare Lösungen haben. Die einzige Voraussetzung ist eine effiziente Methode, um Sudoku zu lösen.


2

NP

npjmNPpjkNP-vollständig in dieser Situation. Beachten Sie, dass dies keine Blöcke sein müssen, vorausgesetzt, sie können nicht umkippen. Es könnten Stapel von Papieren, Kisten oder Tellern sein.

Hoffe das hilft!


2

Ein wunderlich zugängliches Beispiel ist eine kurze Präsentation von Mark Dominus (siehe dazugehörigen Blog-Beitrag ) mit dem Titel „My Favourite NP-Complete Problem“. Das folgende Bild ist die Pointe einer Übersicht über die exakte Deckung durch 3 Sätze .

Zu den Titeln in der Videoserie gehören

  • Tanzen, Musik & Bücher
  • Hände, Ohren und Füße
  • Wach auf mit Elmo (über das Schlafen, Anziehen und Zähneputzen)
  • Menschen in Ihrer Nachbarschaft (über Feuerwehrleute, Rettungsschwimmer und Krankenschwestern)

Die klare Absicht war, dass jedes Video drei Folgen zu einem gemeinsamen Thema enthält, die aus einem Pool von Themen stammen, die für kleine Kinder von Interesse sind.

Die eine oder andere Ente in der Serie war ein Video über "Blumen, Bananen und ... Haare".

Blumen, Bananen und ... Haare.


0

Besonders wenn man sich später das Knapsack-Problem anschaut, könnte dieses NP-vollständige Problem eine gute Lösung sein:

Zahlenraten, bei dem Sie nur einzelne Zahlen raten können, bis Sie es richtig verstanden haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.