← Alle Projekte

Fertigungsoptimierung

Werkzeug zur Materialoptimierung auf Basis des linearen Programms eines Kollegen in PuLP, weiterentwickelt mit Modellerweiterungen, einer Oberfläche in Streamlit und Flask und einer CI-Pipeline, die vor jedem Release Referenzfälle prüft.

  • Python
  • PuLP
  • Streamlit
  • Flask
  • pandas
  • NumPy
  • Plotly
  • Altair
  • PyInstaller
  • pytest

Überblick

Bei der Materialoptimierung brauchte es einen einheitlichen Weg, Alternativen unter Nebenbedingungen zu bewerten, statt sich auf Urteile von Fall zu Fall zu verlassen. Ein Kollege hat die erste Version mit ihrem linearen Programm gebaut. Ich habe das Werkzeug übernommen und weiterentwickelt. Vor meinem Wechsel hat eine Beta-Gruppe ausgewählter Nutzer produktiv damit gearbeitet und mir Probleme zurückgemeldet.

Vorgehen

Optimierungskern

Das Problem ist ein lineares Programm, gelöst mit PuLP. Das Modell bildet die verfügbaren Eingaben ab, die geforderten Ergebnisse und die Nebenbedingungen, die manche Kombinationen unzulässig machen. Der Solver optimiert eine explizite Zielfunktion und liefert einen deterministischen Plan, sodass dieselben Eingaben immer zur selben Empfehlung führen. Das Modell meines Kollegen habe ich erweitert.

Oberfläche und Auslieferung

Eine Streamlit-Anwendung, später ergänzt um eine Flask-Oberfläche, machte das Werkzeug ohne Python-Kenntnisse nutzbar: der Plan mit seinen Kennzahlen und eine Übersicht nach Materialgruppen, dazu eine Kennzahlenhistorie zur Auswertung. Ausgeliefert wird es als Desktop-Anwendung; die Optimierungslogik ist durch pytest-Tests abgedeckt.

Freigabe vor dem Release

Eine CI-Pipeline rechnet Referenzfälle mit bekannten Soll-Ergebnissen nach, und die Desktop-Anwendung wird nur gebaut, wenn alle bestehen. Eine Änderung am Modell erreicht die Nutzer erst, wenn sie nachweislich weiter die richtigen Antworten liefert.

Was ich daraus mitnehme

Erfahrung darin, das Modell eines anderen zu übernehmen und bis zur Produktionsreife weiterzuentwickeln: erweitern, gegen bekannte Antworten testen und für die Menschen gestalten, die damit arbeiten.

Grenzen

Das Modell setzt deterministische Eingaben voraus. Stochastische Nachfrage oder Schwankungen bei Lieferanten würden eine Neuformulierung erfordern.