Ich habe über ein Problem nachgedacht, das durch das Treffen mit einem Fremdsprachenprofessor für Anfänger am Goethe-Institut inspiriert wurde, der die fünf häufigsten Sprachen gelernt hat, die von Studenten gesprochen werden, um mit so vielen Studenten wie möglich zu kommunizieren.
Stellen Sie sich eine begrenzte Anzahl von Menschen vor, von denen jeder eine beliebige Anzahl von Sprachen spricht. Für die Zwecke des Problems werden wir einige der Dinge ignorieren, die Sprachen im wirklichen Leben komplex machen (zum Beispiel, dass Menschen mehrere Sprachen sprechen, aber auf verschiedenen Ebenen, dass Menschen, die eine Sprache verstehen, möglicherweise in der Lage sind, eng verwandte Sprachen zu verstehen Sprachen usw.).
Also zum Beispiel:
- P 1 spricht
{English, German}
. - P 2 spricht
{Spanish, Italian, French}
. - P 3 spricht
{Mandarin, English}
. - P 10000 spricht
{Afrikaans, Swahili, English}
und so weiter.
Ich schreibe ein Dokument, das ich übersetzt haben möchte, damit es von möglichst vielen Menschen verstanden wird. Leider ist mein Budget begrenzt und ich kann mir nur eine Übersetzung in N verschiedene Sprachen leisten.
Wie berechne ich für einen bestimmten Wert von N den optimalen Satz von N Sprachen, um die größte Anzahl von Personen aus der beabsichtigten Bevölkerung zu erreichen?
Das Problem klingt so, als könnte es leicht als Problem der Mengenlehre / Kombinatorik verallgemeinert werden, und ich bin mir sicher, dass jemand zuvor an so etwas gearbeitet hat. Ich würde gerne einen Blick auf die vorhandene Literatur werfen, weiß aber nicht, wie ich sie finden soll.
Gibt es einen Namen für diese Art von Problem? Wenn nicht, könnte es auf ein anderes bekanntes Problem reduziert werden?
quelle
Antworten:
Ich glaube, Ihr Problem ist eine direkte Instanz des NP-harten Problems der maximalen Abdeckung, das mit Set Cover zusammenhängt.
Aus Wikipedia, Maximum Coverage Problem :
In Ihrem Fall gibt es also für jede Sprache einen Satz mit einer Kardinalität, die der Anzahl der Schüler entspricht, die diese Sprache sprechen. Die Eingabe ist die Anzahl N der maximalen Anzahl von Übersetzungen.
quelle
Wenn wir die Anzahl der Muttersprachler im Moment ignorieren, ist Ihr Problem Set Cover - Sie fragen, ob es möglich ist, alle Sprachen mit höchstens Übersetzern abzudecken .k
Das Hinzufügen von Gewichten - die Anzahl der Muttersprachler jeder Sprache - fügt einen Optimierungsmodus hinzu. Wir decken möglicherweise nur einige Sprachen ab, möchten jedoch ein maximales Gesamtgewicht. Das ist sicherlich nicht einfacher; Die Reduzierung von Set Cover selbst ist trivial.
Ihr Problem ist also NP-schwer.
Da es auch einfach ist, es mit ganzzahliger Programmierung auszudrücken, können wir daraus schließen, dass es NP-vollständig ist.
Bezüglich der Namen kenne ich keinen. "Weighted Set Cover" wird bereits für die Variante verwendet, bei der Sets Kosten verursachen, aber ich würde etwas in dieser Richtung erfinden. Vielleicht "Maximum-Weight Set Cover".
quelle