ForHosting KIT · Mathématiques

Calculateur de point de coin

Saisissez les coefficients de la fonction objectif et les sommets de la région réalisable pour voir lequel donne la plus grande valeur : pour 3x + 5y sur (0, 0), (0, 4), (3, 3) et (5, 0), c'est (3, 3), avec 24. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Objectif
3, 5
Vous obtenez
Sommet optimal
3, 3
Valeur objectif
24
Indice
2
Sommets évalués
4

Le calculateur de sommet optimal répond à la dernière étape de tout exercice de programmation linéaire : connaissant les coefficients de l'objectif et les sommets de la région réalisable, quel sommet maximise l'objectif, et quelle valeur atteint-il ? Un objectif linéaire sur un polytope convexe atteint toujours son optimum en un sommet : évaluer l'objectif en chaque sommet et garder le meilleur n'est donc pas une approximation, c'est la solution exacte. Vous envoyez le vecteur des coefficients et la liste des sommets ; le point d'accès calcule le produit scalaire en chaque sommet, applique une règle de départage déterministe et renvoie le sommet gagnant, sa valeur d'objectif et sa position dans votre liste. Il s'exécute en quelques millisecondes, ne conserve rien, et le même code tourne gratuitement dans votre navigateur sur cette page.

Pourquoi l'optimum est toujours un sommet

Le théorème fondamental de la programmation linéaire affirme que si un programme linéaire admet une solution optimale et que sa région réalisable possède au moins un sommet, alors un sommet est optimal. Un objectif linéaire se déplace par ensembles de niveau parallèles ; en poussant ces ensembles dans la direction d'amélioration, on finit par les plaquer contre un point extrême du polytope réalisable. C'est pourquoi les méthodes classiques — résolution graphique à deux variables, méthode du simplexe en dimensions supérieures — raisonnent exclusivement sur les sommets.

Si vous avez déjà énuméré les sommets de votre région réalisable, le travail restant est purement arithmétique : calculez c·x en chaque sommet et retenez le plus grand. Ce point d'accès fait exactement cela, avec une validation stricte pour qu'un sommet mal formé ou une dimension incohérente échoue bruyamment au lieu de corrompre silencieusement votre résultat. Comme il évalue chaque sommet, il vous indique aussi combien de candidats ont été comparés, ce qui est utile pour auditer une solution ou enseigner la méthode pas à pas.

Préparer les sommets à partir de vos contraintes

L'entrée est volontairement simple : un tableau d'objectif et un tableau de sommets, où chaque sommet est un tableau de nombres de même longueur que l'objectif. Obtenir ces sommets relève de vous — typiquement en intersectant des paires de droites de contrainte en deux dimensions, ou en lançant une routine d'énumération de sommets en dimensions supérieures. Chaque sommet envoyé doit être réalisable ; le point d'accès fait confiance à la liste fournie et ne revérifie pas les contraintes, car il ne les voit jamais.

Les égalités sont déterministes : quand deux sommets atteignent la même valeur maximale, celui qui apparaît en premier dans votre liste l'emporte, donc des appels répétés avec la même entrée renvoient toujours la même réponse, octet pour octet.

Lire le résultat et l'automatiser

L'index compte en pratique parce que les sommets portent souvent des étiquettes dans votre propre modèle — mélange machine A, portefeuille B — et la position permet de retrouver la réponse sans comparaison fragile de coordonnées. Les automatisations typiques incluent la notation de devoirs d'étudiants par rapport à une solution de référence, la vérification que l'optimum rapporté par un solveur correspond à une énumération indépendante des sommets, et l'évaluation de petits modèles d'ordonnancement ou de mélange où énumérer les sommets coûte moins cher que déployer un solveur LP complet.

Terminer un exercice graphique de PL

Après avoir trouvé à la main les sommets réalisables d'un problème à deux variables, confirmez lequel maximise le profit sans refaire l'arithmétique.

Recouper un solveur LP

Fournissez une liste de sommets énumérée indépendamment et l'objectif au point d'accès, puis vérifiez que l'optimum rapporté par le solveur correspond.

Noter des devoirs d'optimisation à grande échelle

Automatisez la comparaison entre les sommets soumis par l'étudiant et la réponse de référence, un appel déterministe par copie.

Combien cela coûte-t-il ?

C'est aussi gratuit dans votre navigateur sur cette page — le même code s'exécute dans les deux cas.

Et si plusieurs sommets atteignent le même maximum ?

Le premier de votre liste l'emporte. La règle de départage est déterministe, donc une entrée identique produit toujours une réponse identique.

Vérifie-t-il que mes sommets satisfont les contraintes ?

Non. Il ne voit jamais vos contraintes — il fait confiance à la liste de sommets envoyée. La faisabilité doit être établie lors de l'énumération des sommets.

Quelles dimensions sont prises en charge ?

Toute dimension de 1 jusqu'à la limite documentée, tant que chaque sommet a exactement la même longueur que le tableau d'objectif.

Pourquoi l'optimum d'un programme linéaire est-il toujours sur un sommet ?

Parce qu'une fonction objectif linéaire s'améliore toujours dans une même direction : en la poussant aussi loin que la région réalisable le permet, on aboutit à un point extrême. Si une solution optimale existe et que la région a un sommet, l'un d'eux est optimal.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_rows4096
max_cols64
max_abs1000000000000
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Préparer les sommets à partir de vos contraintes

Chaque coordonnée doit être un nombre fini dans la limite de magnitude documentée, et une liste de sommets vide est rejetée avec une erreur invalid_input, puisqu'une région réalisable sans sommets n'a rien à optimiser.

Lire le résultat et l'automatiser

La réponse comporte quatre champs : optimal_vertex, une copie des coordonnées gagnantes ; objective_value, le c·x maximal atteint ; index, la position (à partir de zéro) de ce sommet dans le tableau envoyé ; et vertices_evaluated, le nombre de candidats comparés. L'exécuteur web de cette page exécute gratuitement le même code : vous pouvez donc prototyper interactivement et ne payer que lorsque vous intégrez l'appel dans un pipeline, à $0.002 par requête.

Que se passe-t-il avec une liste de sommets vide ?

La requête est rejetée avec une erreur invalid_input et n'est pas facturée : sans sommets, il n'y a rien à optimiser.

Peut-il minimiser au lieu de maximiser ?

Inversez le signe des coefficients de l'objectif et du objective_value renvoyé : maximiser −c·x revient à minimiser c·x.

Consulter la documentation complète du KIT →