ForHosting KIT · Mathematik

Eckpunkt-Rechner

Geben Sie die Koeffizienten der Zielfunktion und die Eckpunkte des zulässigen Bereichs ein und sehen Sie, welcher den höchsten Wert liefert: Für 3x + 5y über (0, 0), (0, 4), (3, 3) und (5, 0) gewinnt (3, 3) mit 24. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Ziel
3, 5
Erhalten Sie
Optimaler Eckpunkt
3, 3
Zielwert
24
Index
2
Ausgewertete Eckpunkte
4

Der Eckpunkt-Rechner beantwortet den letzten Schritt jeder Aufgabe zur linearen Optimierung: Welcher Punkt maximiert bei gegebenen Zielfunktionskoeffizienten und Eckpunkten des zulässigen Bereichs die Zielfunktion, und welchen Wert erreicht sie? Eine lineare Zielfunktion über einem konvexen Polytop erreicht ihr Optimum stets in einem Eckpunkt; die Auswertung an jedem Eckpunkt ist daher keine Näherung, sondern die exakte Lösung. Sie senden den Koeffizientenvektor und die Punktliste; der Endpunkt wertet das Skalarprodukt an jedem Punkt aus, wendet eine deterministische Regel bei Gleichstand an und liefert den Gewinnerpunkt, seinen Zielwert und seine Position in Ihrer Liste. Er läuft in Millisekunden, speichert nichts, und derselbe Code läuft kostenlos in Ihrem Browser auf dieser Seite.

Warum das Optimum stets ein Eckpunkt ist

Der Hauptsatz der linearen Optimierung besagt: Hat ein lineares Programm eine optimale Lösung und besitzt sein zulässiger Bereich mindestens einen Eckpunkt, dann ist ein Eckpunkt optimal. Eine lineare Zielfunktion verschiebt sich in parallelen Niveaumengen; schiebt man diese in Richtung der Verbesserung, werden sie schließlich gegen einen Extrempunkt des zulässigen Polytops gedrückt. Deshalb arbeiten die klassischen Methoden — die grafische Lösung mit zwei Variablen, die Simplex-Methode in höheren Dimensionen — ausschließlich mit Eckpunkten.

Haben Sie die Eckpunkte Ihres zulässigen Bereichs bereits aufgezählt, ist die verbleibende Arbeit reine Arithmetik: Berechnen Sie c·x an jedem Punkt und wählen Sie den größten Wert. Genau das tut dieser Endpunkt, mit strenger Validierung, damit ein fehlerhafter Punkt oder ein Dimensionskonflikt laut scheitert statt Ihr Ergebnis still zu verfälschen. Da er jeden Punkt auswertet, nennt er Ihnen auch die Zahl der verglichenen Kandidaten — nützlich, wenn Sie eine Lösung prüfen oder die Methode Schritt für Schritt vermitteln.

Eckpunkte aus Ihren Nebenbedingungen aufbereiten

Die Eingabe ist bewusst einfach: ein Zielarray und ein Array von Eckpunkten, wobei jeder Punkt ein Array von Zahlen mit derselben Länge wie das Zielarray ist. Das Ermitteln dieser Punkte ist Ihre Aufgabe — üblicherweise durch Schnitt von Nebenbedingungsgeraden in zwei Dimensionen oder durch ein Vertex-Enumerationsverfahren in höheren Dimensionen. Jeder gesendete Punkt muss zulässig sein; der Endpunkt vertraut Ihrer Liste und prüft Nebenbedingungen nicht nach, weil er sie nie zu sehen bekommt.

Gleichstand ist deterministisch: Erreichen zwei Punkte denselben Maximalwert, gewinnt der zuerst in Ihrer Liste stehende — wiederholte Aufrufe mit derselben Eingabe liefern also immer Byte für Byte dieselbe Antwort.

Das Ergebnis lesen und automatisieren

Der index ist in der Praxis wichtig, weil Punkte in Ihrem Modell meist Bezeichnungen tragen — Maschinenmix A, Portfolio B — und die Position die Rückabbildung ohne fehleranfälligen Koordinatenvergleich erlaubt. Typische Automatisierungen sind die Bewertung von Studierendenabgaben gegen eine Referenzlösung, die Verifikation, dass das von einem Solver gemeldete Optimum zu einer unabhängigen Eckpunktaufzählung passt, sowie die Bewertung kleiner Planungs- oder Mischungsmodelle, bei denen das Aufzählen der Eckpunkte günstiger ist als der Einsatz eines vollwertigen LP-Solvers.

Grafische LP-Aufgabe abschließen

Nachdem Sie die zulässigen Eckpunkte eines Problems mit zwei Variablen von Hand bestimmt haben, bestätigen Sie ohne erneutes Rechnen, welcher den Gewinn maximiert.

LP-Solver gegenchecken

Geben Sie eine unabhängig aufgezählte Punktliste und die Zielfunktion in den Endpunkt ein und verifizieren Sie, dass das gemeldete Optimum des Solvers übereinstimmt.

Optimierungshausaufgaben skaliert bewerten

Automatisieren Sie den Vergleich zwischen den eingereichten Eckpunkten eines Studierenden und der Referenzantwort — ein deterministischer Aufruf pro Abgabe.

Was kostet das?

Der kostenlose Lauf in Ihrem Browser auf dieser Seite ist ebenfalls möglich — beide Wege führen denselben Code aus.

Was gilt, wenn mehrere Punkte dasselbe Maximum erreichen?

Es gewinnt der erste in Ihrer Liste. Die Gleichstandsregel ist deterministisch, identische Eingabe liefert also stets die identische Antwort.

Wird geprüft, ob meine Punkte die Nebenbedingungen erfüllen?

Nein. Der Endpunkt sieht Ihre Nebenbedingungen nie — er vertraut der gesendeten Punktliste. Die Zulässigkeit muss beim Aufzählen der Eckpunkte sichergestellt werden.

Welche Dimensionen werden unterstützt?

Jede Dimension von 1 bis zur dokumentierten Obergrenze, solange jeder Punkt exakt dieselbe Länge wie das Zielarray hat.

Warum liegt das Optimum einer linearen Optimierung immer in einem Eckpunkt?

Weil sich eine lineare Zielfunktion stets in eine Richtung verbessert. Schiebt man sie so weit, wie der zulässige Bereich erlaubt, landet man an einem Extrempunkt. Gibt es eine Optimallösung und hat der Bereich einen Eckpunkt, ist einer davon optimal.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/math/corner-point

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/math/corner-point \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"objective":[3,5],"vertices":[[0,0],[0,4],[3,3],[5,0]]}'
{
  "objective": [
    3,
    5
  ],
  "vertices": [
    [
      0,
      0
    ],
    [
      0,
      4
    ],
    [
      3,
      3
    ],
    [
      5,
      0
    ]
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.corner_point",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_rows4096
max_cols64
max_abs1000000000000
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Eckpunkte aus Ihren Nebenbedingungen aufbereiten

Jede Koordinate muss eine endliche Zahl innerhalb der dokumentierten Größenbegrenzung sein, und eine leere Punktliste wird mit einem invalid_input-Fehler abgewiesen, denn ein Bereich ohne Eckpunkte bietet nichts zu optimieren.

Das Ergebnis lesen und automatisieren

Die Antwort enthält vier Felder: optimal_vertex, eine Kopie der Gewinnerkoordinaten; objective_value, das erreichte Maximum von c·x; index, die nullbasierte Position dieses Punktes in Ihrem Array; und vertices_evaluated, die Zahl der verglichenen Kandidaten.

Was passiert bei einer leeren Punktliste?

Die Anfrage wird mit einem invalid_input-Fehler abgewiesen und nicht berechnet: Ohne Eckpunkte gibt es nichts zu optimieren.

Kann er statt Maximierung auch minimieren?

Negieren Sie die Zielfunktionskoeffizienten und den zurückgegebenen objective_value: −c·x zu maximieren ist dasselbe wie c·x zu minimieren.

Vollständige KIT-Dokumentation lesen →