Proyección euclídea al simplex
Proyecta 1–256 números finitos entre ±10^6 sobre el simplex unitario no negativo.
import math
def simplex_projection(values):
if type(values) is not list or not 1 <= len(values) <= 256:
raise ValueError("simplex.input")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in values):
raise ValueError("simplex.value")
ranked = sorted(values, reverse=True)
total, theta = 0.0, 0.0
for count, value in enumerate(ranked, 1):
total += value
candidate = (total-1)/count
if value > candidate:
theta = candidate
return [max(0.0, value-theta) for value in values]
Proyecto
Prueba empates y soluciones en vértices, rechaza booleanos y compara el resultado con tolerancia numérica sin interpretar los pesos como probabilidades calibradas.
Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
import math
def simplex_projection(values):
if type(values) is not list or not 1 <= len(values) <= 256:
raise ValueError("simplex.input")
if any(type(x) not in (int, float) or not -10**6 <= x <= 10**6 or not math.isfinite(x) for x in values):
raise ValueError("simplex.value")
ranked = sorted(values, reverse=True)
total, theta = 0.0, 0.0
for count, value in enumerate(ranked, 1):
total += value
candidate = (total-1)/count
if value > candidate:
theta = candidate
return [max(0.0, value-theta) for value in values]
Mantén visibles las restricciones numéricas durante toda la revisión
SimplexDune es un entorno de programación con IA para Windows para desarrolladores que revisan transformaciones numéricas en una aplicación. Empieza por una carpeta de proyecto y las propiedades que debe satisfacer la salida. El modelo conectado puede ayudar a examinar cómo aparecen esos requisitos en el código y analizar un cambio acotado, mientras tú revisas la propuesta frente al consumidor que depende del resultado.
Una tarea sugerida por simplex_projection.py consiste en transformar un vector en pesos no negativos cuya suma sea uno. Pide al asistente que examine las entradas admitidas, el orden de salida y las comprobaciones de resultados en coma flotante. Proporciona vectores representativos y describe su uso posterior. Así el ejemplo se basa en un contrato real de software, sin tratar el entorno como un optimizador integrado o un servicio de entrenamiento de modelos.
Selecciona un modelo de IA sin restricciones cuando haya uno disponible mediante un endpoint compatible con OpenAI o de Anthropic admitido. Configura su dirección y las credenciales necesarias, teniendo en cuenta el contexto y las herramientas del servidor. Examina los cambios propuestos y ejecuta comprobaciones tanto de resultados esperados como de propiedades de salida en tu entorno numérico. Utiliza una tolerancia declarada donde la igualdad exacta en coma flotante no sea apropiada. La conversación debe revelar los supuestos del parche para que puedas decidir si conserva el comportamiento necesario.
Revisión de salidas numéricas con restricciones
¿Qué propiedades de salida debo solicitar explícitamente?
Indica la longitud requerida, el orden, los signos permitidos y la suma esperada, junto con cualquier tolerancia. Incluye los requisitos del consumidor. Un resultado puede satisfacer una restricción y vulnerar otra, por lo que la revisión no debe detenerse en un único valor agregado.
¿Es fiable probar la igualdad exacta con uno en coma flotante?
No en todos los cálculos. Elige una tolerancia adecuada al contrato numérico y al entorno de pruebas, y explícala en la comprobación. Pide al modelo que distinga efectos de representación de una vulneración real de restricciones, en lugar de debilitar silenciosamente las aserciones.
¿Debe el parche reordenar el vector original?
Solo si el contrato de salida lo permite. La ordenación interna puede servir al cálculo mientras los valores finales aún deben corresponder a las posiciones originales. Revisa el consumidor y prueba una entrada cuyos elementos distintos hagan visible un error de orden.
¿Puede una comprobación de propiedades sustituir ejemplos de resultados esperados?
Utiliza ambas cuando prueben afirmaciones distintas. Un vector puede ser no negativo y sumar uno sin ser la proyección prevista. Los resultados pequeños establecidos independientemente ayudan a verificar la transformación, mientras las propiedades cubren aspectos más amplios del contrato de salida.
SimplexDune · Actualizado 2026-10-25