Calculadora de punto esquina
Escriba los coeficientes de la función objetivo y los vértices de la región factible y vea cuál da el valor más alto: para 3x + 5y sobre (0, 0), (0, 4), (3, 3) y (5, 0), gana (3, 3) con 24. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Objetivo
- 3, 5
- Vértice óptimo
- 3, 3
- Valor objetivo
- 24
- Índice
- 2
- Vértices evaluados
- 4
La calculadora de punto esquina resuelve el último paso de cualquier ejercicio de programación lineal: dados los coeficientes del objetivo y los puntos esquina de la región factible, ¿qué vértice maximiza el objetivo y qué valor alcanza? Un objetivo lineal sobre un politopo convexo siempre alcanza su óptimo en un vértice, así que evaluar el objetivo en cada punto esquina y quedarse con el mejor no es una aproximación: es la solución exacta. Se ejecuta en milisegundos, no guarda nada, y el mismo código corre gratis en su navegador en esta página.
Por qué el óptimo siempre es un punto esquina
El teorema fundamental de la programación lineal dice que si un programa lineal tiene solución óptima y su región factible tiene al menos un vértice, entonces algún vértice es óptimo. Un objetivo lineal se desplaza en conjuntos de nivel paralelos; al empujar esos conjuntos en la dirección de mejora, terminan apoyándose en un punto extremo del politopo factible. Por eso los métodos clásicos — la solución gráfica en dos variables, el método simplex en dimensiones mayores — razonan exclusivamente sobre puntos esquina.
Si usted ya enumeró los vértices de su región factible, el trabajo restante es puramente aritmético: calcular c·x en cada vértice y elegir el mayor. Como evalúa todos los vértices, también le indica cuántos candidatos se compararon, lo cual es útil al auditar una solución o enseñar el método paso a paso.
Cómo preparar los vértices a partir de sus restricciones
La entrada es deliberadamente simple: un arreglo con el objetivo y un arreglo de vértices, donde cada vértice es un arreglo de números con la misma longitud que el objetivo. Obtener esos vértices es tarea suya: normalmente intersecando pares de rectas de restricción en dos dimensiones, o ejecutando una rutina de enumeración de vértices en dimensiones mayores.
Los empates son deterministas: cuando dos vértices alcanzan el mismo valor máximo, gana el que aparece primero en su lista, de modo que llamadas repetidas con la misma entrada devuelven siempre la misma respuesta, byte a byte.
Cómo leer el resultado y automatizarlo
El índice importa en la práctica porque los vértices suelen tener etiquetas en su propio modelo — mezcla de máquinas A, cartera B — y la posición le permite relacionar la respuesta sin una frágil comparación de coordenadas. Las automatizaciones típicas incluyen calificar tareas de estudiantes contra una solución de referencia, verificar que el óptimo reportado por un solver coincida con una enumeración de vértices independiente, y puntuar pequeños modelos de planificación o mezclado donde enumerar esquinas es más barato que desplegar un solver de LP completo.
Qué puede hacer con ella
Terminar un ejercicio gráfico de LP
Después de hallar a mano las esquinas factibles de un problema de dos variables, confirme cuál maximiza la ganancia sin rehacer la aritmética.
Calificar tareas de optimización a gran escala
Automatice la comparación entre los puntos esquina entregados por un estudiante y la respuesta de referencia, con una llamada determinista por entrega.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarlo en su navegador en esta página: el mismo código corre en ambos casos.
¿Qué pasa si varios vértices alcanzan el mismo máximo?
Gana el primero de su lista. La regla de desempate es determinista, así que una entrada idéntica siempre produce una respuesta idéntica.
¿Verifica que mis vértices cumplan las restricciones?
No. Nunca ve sus restricciones: confía en la lista de vértices que usted envía. La factibilidad debe establecerse al enumerar las esquinas.
¿Qué dimensiones se admiten?
Cualquier dimensión desde 1 hasta el límite documentado, siempre que cada vértice tenga exactamente la misma longitud que el arreglo del objetivo.
¿Por qué el óptimo de un problema lineal está siempre en un vértice?
Porque una función objetivo lineal mejora siempre en una misma dirección, y al empujarla hasta donde lo permite la región factible se llega a un punto extremo. Si existe solución óptima y la región tiene algún vértice, uno de ellos es óptimo.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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]]}'const res = await fetch("https://api.kit.forhosting.com/math/corner-point", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"objective": [
3,
5
],
"vertices": [
[
0,
0
],
[
0,
4
],
[
3,
3
],
[
5,
0
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/corner-point",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"objective": [
3,
5
],
"vertices": [
[
0,
0
],
[
0,
4
],
[
3,
3
],
[
5,
0
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/corner-point", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"objective":[3,5],"vertices":[[0,0],[0,4],[3,3],[5,0]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"objective":[3,5],"vertices":[[0,0],[0,4],[3,3],[5,0]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/corner-point", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"objective": [
3,
5
],
"vertices": [
[
0,
0
],
[
0,
4
],
[
3,
3
],
[
5,
0
]
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.corner_point",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_rows | 4096 |
max_cols | 64 |
max_abs | 1000000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Usted envía el vector de coeficientes y la lista de vértices; el endpoint evalúa el producto punto en cada vértice, aplica una regla de desempate determinista y devuelve el vértice ganador, su valor objetivo y su posición en su lista.
Por qué el óptimo siempre es un punto esquina
Este endpoint hace exactamente eso, con validación estricta para que un vértice mal formado o una discrepancia de dimensiones falle de forma visible en lugar de corromper su resultado en silencio.
Cómo preparar los vértices a partir de sus restricciones
Cada vértice que envíe debe ser factible; el endpoint confía en la lista que usted proporciona y no vuelve a comprobar las restricciones, porque nunca las ve. Cada coordenada debe ser un número finito dentro del límite de magnitud documentado, y una lista de vértices vacía se rechaza con un error invalid_input, ya que una región factible sin puntos esquina no tiene nada que optimizar.
Cómo leer el resultado y automatizarlo
La respuesta trae cuatro campos: optimal_vertex, una copia de las coordenadas ganadoras; objective_value, el máximo c·x alcanzado; index, la posición en base cero de ese vértice en el arreglo que usted envió; y vertices_evaluated, la cantidad de candidatos comparados. El ejecutor web de esta página corre el mismo código sin costo, así que puede prototipar de forma interactiva y solo pagar cuando integre la llamada en un pipeline, a $0.002 por solicitud.
Casos de integración
Verificar un solver de LP
Envíe al endpoint una lista de vértices enumerada de forma independiente junto con el objetivo y compruebe que el óptimo reportado por el solver coincida.
Preguntas técnicas
¿Qué ocurre con una lista de vértices vacía?
La solicitud se rechaza con un error invalid_input y no se cobra: sin puntos esquina no hay nada que optimizar.
¿Puede minimizar en lugar de maximizar?
Niegue los coeficientes del objetivo y el objective_value devuelto: maximizar −c·x es lo mismo que minimizar c·x.