[PYTHON] Kombinationsoptimierung - typisches Problem-Set-Split-Problem

Typisches Problem und Ausführungsmethode

Teilungsproblem einstellen

$ N $ Teilmenge der Menge $ M = \ {1, \ dots, m \} $ S_j (\ subseteq M), j \ in N = \ {1, \ dots, n \} Angenommen, $ kostet $ c_j $. Finden Sie die Division $ X (\ subseteq N) $ von $ M $, die die Summe der Kosten minimiert. Die Aufteilung darf nicht dieselben Elemente in der Teilmenge enthalten.

Ausführungsmethode

usage


Signature: set_partition(n, cand)
Docstring:
Teilungsproblem einstellen
Eingang
    n:Elementanzahl
    cand: (Gewicht,Teilmenge)Kandidatenliste
Ausgabe
Nummernliste der ausgewählten Kandidatenliste

python


#CSV-Daten
import pandas as pd
from ortoolpy import set_partition
ss = pd.read_csv('data/subset.csv')
g = ss.groupby('id')
set_partition(len(g), [(r.weight.iloc[0], r.element.tolist()) for _, r in g])

Ergebnis


[2, 3]

set.gif

python


# pandas.DataFrame
from ortoolpy.optimization import SetPartition
SetPartition('data/subset.csv')
id weight element
4 2 1.0 a
5 2 NaN d
6 3 3.0 b
7 3 NaN c

python


#Beispieldaten
from ortoolpy import set_partition
set_partition(4, [(1, ('a', 'b')), (1, ('a', 'c')), (1, ('a', 'd')), (3, ('b', 'c'))])

Ergebnis


[2, 3]

Daten

Recommended Posts

Kombinationsoptimierung - typisches Problem-Set-Split-Problem
Ein sehr einfaches Beispiel für ein Optimierungsproblem mit ortoolpy
[At Coder] Lösen Sie typische Probleme der Tiefenprioritätssuche (DFS).
Kombinationsoptimierungstypisches Problem-Maximum-Stabil-Set-Problem
Die Leistungsfähigkeit von Kombinationsoptimierungslösern
Versuchsplanungsmethode und Kombinationsoptimierung
Kombinationsoptimierung - Typisches Problem - Problem mit der Transportroute (Lieferoptimierung)
Versuchen Sie, ein festgelegtes Problem der High-School-Mathematik mit Python zu lösen
Eine Menge von ganzen Zahlen, die ax + by = 1 erfüllen.
Die Hand von "Millijan" durch Kombinationsoptimierung finden
Lösen des N Queen-Problems mit kontinuierlicher / kombinierter Optimierung
Lösen des N Queen-Problems mit Kombinationsoptimierung
Minimieren Sie die Anzahl der Polierungen, indem Sie die Kombination optimieren
Beurteilung des Endes von Mahjong durch Kombinationsoptimierung
Verwenden Sie die Kombinationsoptimierung
(Python) Behandeln Sie ganzzahlige Werte als eine Reihe von Flags
[GoLang] Setzen Sie am Anfang des Kommentars ein Leerzeichen
[Bei Coder] Lösen eines typischen BFS-Problems [A - Dunkler und Dunkler]
Zip 4 Gbyte Problem ist eine Geschichte der Vergangenheit