[PYTHON] [Teil 1] Was ist Optimierung? - Lernmaterialien zum Erlernen der mathematischen Optimierung

: hetero_ruler: Einführung

Dies ist das erste Lernmaterial zum erstmaligen Erlernen der mathematischen Optimierung. Lassen Sie uns von nun an in jeder Sitzung die mathematische Optimierung lernen.

** Mathematische Optimierung **

Es hört sich so an, als wäre es schwierig, es zum ersten Mal zu hören, aber es reicht nicht aus, es zu halten. "Nun, diese Art zu denken, löse es so ~" Lass es uns lernen. Wenn Sie als Ingenieur neues Wissen erlernen, können Sie es in anderen Bereichen anwenden, und es muss Verdienste geben. Übrigens, wenn es ein Job damit wird, frage ich mich, ob es ein Bissen sein wird !?

: hetero_ruler: Unterrichtsmaterialien

In diesem Artikel werden wir uns die Übungen im Referenztext "Problemlösungsserien mit Python: Erstellen eines Optimierungsmodells mithilfe einer Datenanalysebibliothek" für mathematische Optimierungsmodelle ansehen. Die Details des Textes sind unten.

■ Referenztext "Problemlösungsserie von Python: So erstellen Sie ein Optimierungsmodell mithilfe einer Datenanalysebibliothek" Tsutomu Saito [Autor] / Modern Science Company [Verlag]

001.jpg

: hetero_ruler: Was ist mathematische Optimierung?

Ich werde aus dem Referenztext zitieren. Optimierung ist ein Mittel, um die folgenden Probleme zu lösen.

: one: Ich möchte den kürzesten Weg kennen, um vom nächsten Bahnhof zu Hause zum Büro zu gelangen. : two: Ich möchte den Gesamtwert der Produkte maximieren, die ich in meinen Rucksack stecke. : drei: Ich möchte die Kosten für den Transport von Rohstoffen vom Lager zur Fabrik minimieren.

Darüber hinaus gibt es die folgenden Unterschiede zwischen Optimierung und maschinellem Lernen.

** Maschinelles Lernen ** Kennen Sie die Zukunft, indem Sie auf die Vergangenheit zeigen Optimierung Bestimmen Sie die Zukunft, indem Sie auf das Modell zeigen

Was ist ein Modell? Danach werde ich das Modell erklären.

: hetero_ruler: Optimiertes Modell

Ein Modell ist eine Form, in der ein reales Problem durch eine mathematische Formel ersetzt werden kann, um eine Lösung zu berechnen. Berücksichtigen Sie bei der Suche nach der kürzesten Route eine mathematische Formel, die die Suchroute ausdrückt, und verwenden Sie sie als Modell. Darüber hinaus wird das Problem der Rucksackfüllung nach einer mathematischen Formel modelliert, die den Füllzustand ausdrückt.

Nach dem Erstellen des Modells besteht die nächste Aufgabe darin, die Antwort mithilfe der Software des Computers namens Solver zu erhalten.

Es gibt bezahlte und freie Löser. Hier verwenden wir das kostenlose ** CBC ** (Coin Or Branch and Cut) als Löser. Wir verwenden auch ** OR-Tools ** von Google, eine dedizierte Bibliothek zur Lösung der Kombinationsoptimierung.

Diese OR-Tools sind in Python geschrieben. Informationen zu OR-Tools finden Sie im Folgenden.

■ Googles kostenloses Tool "OR-Tools" https://developers.google.com/optimization

: hetero_ruler: Modellkomponenten und Einschränkungen

Das Erstellen eines Modells besteht aus drei Komponenten:

① ** Variable ** Ein numerischer Container, der verschiedene Werte für das Modell annehmen kann. Das Objekt, auf das die Formel angewendet wird. ② ** Zielfunktion ** Ein Index, um eine gute Lösung zu finden. Die Lösung wird erhalten, indem sie als Funktion unter Verwendung einer mathematischen Formel unter Verwendung von Variablen ausgedrückt und so berechnet wird, dass die Funktion das Maximum oder das Minimum ist. ③ ** Einschränkungen ** Zu beobachtende Bedingungen als Kombination von Variablen und Formeln.

Einschränkungen werden auf eine der folgenden Arten geschrieben. Sie können mehrere Bedingungen angeben, die jedoch alle eingehalten werden müssen. Formel ≧ Formel Formel = Formel Formel ≤ Formel

Das Modell wird als mathematisches Modell bezeichnet, da es mit mathematischen Formeln ausgedrückt wird. Außerdem soll der Ausdruck eines Modells ausschließlich mit mathematischen Formeln formuliert werden.

: hetero_ruler: Art der Optimierung

Es gibt drei Arten von Optimierungsproblemen:

001.jpg

: one: Lineares Optimierungsproblem  (LP:Linear programming Problem) Es können nur kontinuierliche Variablen verwendet werden. Die Zielfunktion und die Einschränkungen müssen lineare Ausdrücke sein. Das Problem ist leicht zu lösen. Sogar Probleme mit Tausenden von Einschränkungen wurden gelöst. : two: Optimiertes Problem bei der Optimierung ganzer Zahlen  (MIP:Mixed Integer programming Problem) Kontinuierliche und diskrete Variablen können verwendet werden. Die Zielfunktion und die Einschränkungen müssen lineare Ausdrücke sein. Grundsätzlich ist es nicht einfach zu lösen. Es ist leicht zu lösen, wenn die Anzahl der Variablen und Einschränkungen gering ist. : drei: Allgemeines Optimierungsproblem Es gibt keine Einschränkungen für Variablen, Zielfunktionen oder Einschränkungen. In der Forschung wird es als Klassifikation behandelt, die als nichtlineares Programmierproblem (NLP) bezeichnet wird. Es kann in einigen Fällen gelöst werden, ist aber grundsätzlich schwierig.

: hetero_ruler: Am Ende

Nächstes Mal werde ich über das zweite typische Problem sprechen. Ich hoffe du kannst es lesen.

Für diesen Artikel ist der Autor auch ein Anfänger in der Optimierung. Ich denke, es gibt überall Missverständnisse und Druckfehler. Bitte senden Sie uns Ihre Meinungen und Vorschläge.

Recommended Posts

[Teil 1] Was ist Optimierung? - Lernmaterialien zum Erlernen der mathematischen Optimierung
[Teil 2] Lernen Sie typische Probleme - Lernmaterialien zum Erlernen der mathematischen Optimierung
Was ist Ensemble-Lernen?
Was ist maschinelles Lernen?
Maschinelles Lernen und mathematische Optimierung
Was ist die Schnittstelle für ...
Was ist Schaben? [Zusammenfassung für Anfänger]
Wofür ist der Python-Unterstrich (_)?
Was ist xg boost (1) (für Anfänger)
Warum Python für maschinelles Lernen ausgewählt wird
[Statistik für Programmierer] Was ist ein Ereignis?
[Maschinelles Lernen] Was ist LP-Norm?
[Für Anfänger] Was ist in Deep Learning von Grund auf neu geschrieben?