EN DE

OnlyOffice NLP Solver

Ein Plugin zur nichtlinearen Optimierung (NLP) für OnlyOffice Spreadsheet. Definieren Sie eine Zielzelle, legen Sie Nebenbedingungen fest und geben Sie Parameterzellen mit optionalen Grenzen an – dann findet der Solver optimale Werte, um Ihre Zielfunktion zu minimieren.

Als OnlyOffice-Nutzer habe ich festgestellt, dass es kein Solver-Plugin gab – also habe ich eines entwickelt.

Demonstration des NLP Solvers in Aktion

Dieses Plugin schließt diese Lücke mit einer angepassten und verbesserten Nelder-Mead-Implementierung (Simplex-Downhill), die bei nichtlinearen Optimierungsproblemen hervorragend funktioniert. Die Werte und Formeln werden gesammelt und an ein WebAssembly-Modul gesendet, das in Go geschrieben ist und Berechnungen parallel ausführt, um maximale Leistung zu erzielen.

Was mich am meisten überrascht hat: Der Solver ist selbst in diesem frühen Stadium bereits sehr leistungsfähig. Er bewältigt nichtlineare Probleme mit nichtlinearen Nebenbedingungen problemlos – und macht damit das fehlende Feature von OnlyOffice zu einem echten Pluspunkt.

Ich habe viele Ideen für zukünftige Verbesserungen und plane, den Solver systematisch anhand realer Anwendungsfälle weiterzuentwickeln.

Diese Anleitung führt Sie durch die Installation und Nutzung des NLP Solver Plugins. Mit nur wenigen Klicks können Sie komplexe Optimierungsprobleme direkt in Ihrer Tabelle lösen.

Installation

Der Einstieg ist unkompliziert. Laden Sie das Plugin-Paket herunter und installieren Sie es manuell in OnlyOffice. Eine Einreichung im Plugin Store ist in Bearbeitung.

  1. Laden Sie das Plugin über den Button oben herunter
  2. Öffnen Sie OnlyOffice Spreadsheet
  3. Navigieren Sie zu Plugins → Plugin Manager → Aus Datei installieren
  4. Wählen Sie das heruntergeladene Plugin-Paket aus
  5. Der NLP Solver erscheint nun in Ihrem Plugins-Menü

Anleitung

Schritt 1: Zielzelle auswählen

Wählen Sie die Zelle aus, die die Formel enthält, die Sie minimieren möchten. Dies ist Ihre Zielfunktion – der Wert, den der Solver so klein wie möglich machen wird.

Auswahl der Zielzelle im NLP Solver

Wählen Sie Ihre Zielzelle aus – die zu minimierende Formel

Schritt 2: Parameter definieren

Wählen Sie Ihre Parameterzellen aus – dies sind die Werte, die der Solver anpasst, um das Optimum zu finden.

Hinweis: Der Solver verwendet nicht die aktuellen Werte in Ihren Parameterzellen. Die Werte, die beim Drücken von Start vorhanden sind, werden ignoriert.

Sie können Grenzen für jeden Parameter festlegen, die der Solver zur Bildung des Start-Simplex verwendet. So helfen Sie dem Solver, das richtige Minimum zu finden. Ohne Angabe gelten Standardgrenzen von -1,0 bis 1,0, ohne bindend zu sein. Der Simplex kann sich also über diese hinaus bewegen.

Konfiguration der Parameter mit Grenzen

Konfigurieren Sie Parameter mit optionalen Min/Max-Grenzen.

StrictMin / StrictMax

Wenn aktiviert, wird der Parameter diese Grenzen niemals überschreiten. Aktivieren Sie beispielsweise StrictMin und setzen Sie es auf 0, um nur positive Werte zu erhalten.

Schritt 3: Nebenbedingungen hinzufügen (Optional)

Benötigen Sie Einschränkungen? Fügen Sie Nebenbedingungen hinzu, um Ihren Lösungsraum einzuschränken. Jede Bedingung hat Min- und Max-Werte mit entsprechenden Checkboxen.

Festlegen von Nebenbedingungen im NLP Solver

Definieren Sie Ihre Nebenbedingungen, um den Lösungsraum einzuschränken.

DefineMin / DefineMax

Wenn aktiviert, wird der Mindest- oder Höchstwert der Bedingung erzwungen. Lassen Sie es deaktiviert, wenn Ihre Bedingung auf dieser Seite keine Grenze benötigt. Zum Beispiel benötigen Sie vielleicht ein Minimum, aber es ist Ihnen egal, ob der Wert höher ist. Intern werden undefinierte Grenzen auf ±MaxFloat64 gesetzt.

Beide Optionen sind der Einfachheit halber standardmäßig aktiviert.

Schritt 4: Iterationen festlegen & Starten

Wählen Sie die Anzahl der Iterationen. Mehr Iterationen können bei komplexen, stark nichtlinearen Problemen bessere Ergebnisse liefern – dauern aber auch länger. Klicken Sie auf Start, um die Optimierung zu starten.

Iterationen und Start

Helfen Sie, dieses Plugin zu verbessern

Ich entwickle diesen Solver aktiv weiter, und Ihr Feedback ist von unschätzbarem Wert. So können Sie beitragen:

  • Etwas unklar? Fragen Sie gerne nach!
  • Einen Fehler gefunden? Senden Sie mir Ihre Tabellendatei, damit ich das Problem reproduzieren und beheben kann.
  • Ein kniffliges Optimierungsproblem? Teilen Sie es mir mit – ich suche immer nach Grenzfällen zum Testen.
  • Vergleich mit Excel oder LibreOffice gemacht? Ich würde mich über Ihr Feedback freuen.