Angenommen, wir haben eine Reihe von Elementen E
und eine Reihe von Sets S
.Zuweisungen mit minimalen Brüche
Wir brauchen Elemente setzt, so dass zuzuweisen:
- Alle in etwa die gleiche Anzahl von Elementen (Mindest Unterschied in Satzgröße zwischen dem kleinsten und dem größten Satz)
- Die Anzahl der Elemente enthalten Sätze pro Satz sollte so klein wie möglich sein.
- Jedes Element muss mindestens ein Minimum% der Sätze der Gesamtmenge zugewiesen werden. Diese% für jedes Element angegeben wird (diese bedeutet, dass Elemente sind natürlich entsprechend mehrere Sätze zugeordnet werden)
Beachten Sie, dass (1) und (2) sind Problem Ziele, und in einigen Fällen gibt es ein Nachteil ist, zwischen ihnen. Ich suche effektiv nach einer mathematischen Formulierung/Lösung, die diesen Kompromiss parameterisiert. Unterdessen (3) ist nur eine Problemeinschränkung.
Wie finden wir eine optimale Zuordnung? Hat dieses Problem einen Namen in der Literatur? Falls es darauf ankommt, suche ich speziell nach einer Lösung in Python.
Als Beispiel, sagen wir 3 Sätze und 10 Elemente haben, wobei jede von ihnen die min angibt. Fraktion von Sets wie folgt:
0 97.844356
1 48.006223
2 99.772135
3 16.899074
4 0.111023
5 1.028894
6 5.315590
7 100.000000
8 99.838698
9 93.323315
Wenn es nur 3 Sätze gibt, zB 'S = 3', ist die Angabe von min Bruch als' 0.111023' oder '1.028894' nicht sinnvoll, da es genau 33 entspricht. –
Dank @DmitriChubarov, deshalb sind sie Mindest. Brüche, aber ich verstehe Ihren Standpunkt. –
Die Ziele 1 (minimaler Unterschied) und 3 (minimale Anzahl von Elementen) sind widersprüchlich: Angenommen, wir haben eine machbare Lösung, die die Bedingung 2 (minimale% der Mengen) erfüllt, die # (set1) = # (set2)> # (Satz3). Sollten wir set3 ein Element hinzufügen, um Ziel 1 zu verbessern oder es zu verlassen, um Ziel 3 beizubehalten? –