Euclidische simplexprojectie
Projecteer 1–256 eindige getallen binnen ±10^6 op de niet-negatieve eenheidssimplex.
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]
Project
Test gelijke waarden en hoekpuntoplossingen, weiger booleans en vergelijk met numerieke tolerantie zonder de gewichten als gekalibreerde kansen te zien.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
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]
Houd numerieke voorwaarden tijdens de hele beoordeling zichtbaar
SimplexDune is een AI-programmeeromgeving voor Windows voor ontwikkelaars die numerieke transformaties in een toepassing beoordelen. Begin met een projectmap en de eigenschappen waaraan de uitvoer moet voldoen. Het verbonden model kan helpen onderzoeken hoe die eisen in de code voorkomen en een afgebakende wijziging bespreken, terwijl jij het voorstel toetst aan de gebruikende code die van het resultaat afhangt.
Een taak op basis van simplex_projection.py betreft het omzetten van een vector in niet-negatieve gewichten met een totaal van één. Vraag de assistent geaccepteerde invoer, uitvoervolgorde en controles voor drijvende-kommaresultaten te bekijken. Geef representatieve vectoren en beschrijf het verdere gebruik. Zo blijft het voorbeeld in een werkelijk softwarecontract geworteld in plaats van de omgeving als ingebouwde optimalisator of modeltrainingsdienst te behandelen.
Kies een AI-model zonder beperkingen als er één beschikbaar is via een ondersteund OpenAI-compatibel of Anthropic-endpoint. Stel het adres en de vereiste inloggegevens in en houd rekening met de context- en toolondersteuning van de server. Bekijk voorgestelde bewerkingen en voer zowel controles op verwachte resultaten als op uitvoereigenschappen uit in je numerieke omgeving. Gebruik een vastgelegde tolerantie waar exacte drijvende-kommagelijkheid ongeschikt is. Het gesprek moet de aannames achter de patch blootleggen, zodat je kunt beslissen of deze het benodigde toepassingsgedrag behoudt.
Numerieke uitvoer met voorwaarden beoordelen
Welke uitvoereigenschappen moet ik expliciet vragen?
Benoem vereiste lengte, volgorde, toegestane tekens en verwacht totaal, inclusief eventuele tolerantie. Neem de eisen van de gebruikende code mee. Een resultaat kan aan één voorwaarde voldoen en een andere schenden; stop daarom niet bij één totaalwaarde.
Is exacte gelijkheid aan één een betrouwbare drijvende-kommatest?
Niet bij elke berekening. Kies een tolerantie die bij het numerieke contract en de testomgeving past en licht die toe in de controle. Vraag het model representatie-effecten van een echte schending te onderscheiden in plaats van asserties stilzwijgend te verzwakken.
Mag de patch de oorspronkelijke vector herordenen?
Alleen als het uitvoercontract dat toestaat. Intern sorteren kan de berekening dienen terwijl de eindwaarden nog steeds bij de oorspronkelijke posities moeten horen. Bekijk de gebruikende code en test invoer met verschillende elementen die een volgordefout zichtbaar maken.
Kan een eigenschappencontrole verwachte-resultaatvoorbeelden vervangen?
Gebruik beide als ze verschillende beweringen toetsen. Een vector kan niet-negatief zijn en tot één optellen zonder de bedoelde projectie te zijn. Kleine onafhankelijk vastgestelde resultaten helpen de transformatie te verifiëren; eigenschappen dekken bredere aspecten van het uitvoercontract.
SimplexDune · Bijgewerkt 2026-10-25