Proiecție euclidiană pe simplex
Proiectează 1–256 de numere finite în ±10^6 pe simplexul unitar nenegativ.
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]
Proiect
Testează egalități și soluții în vârfuri, respinge booleenele și compară cu toleranță numerică fără a interpreta ponderile ca probabilități calibrate.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
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]
Păstrează vizibile constrângerile numerice pe durata examinării
SimplexDune este un spațiu de lucru Windows pentru programare cu IA, destinat dezvoltatorilor care examinează transformări numerice într-o aplicație. Începe cu un folder de proiect și proprietățile pe care trebuie să le îndeplinească ieșirea. Modelul conectat te poate ajuta să examinezi cum apar aceste cerințe în cod și să discuți o modificare delimitată, iar tu verifici propunerea în raport cu codul care depinde de rezultat.
O sarcină sugerată de simplex_projection.py privește transformarea unui vector în ponderi nenegative cu suma unu. Cere asistentului să examineze intrările acceptate, ordinea ieșirii și verificările folosite pentru rezultate în virgulă mobilă. Oferă vectori reprezentativi și descrie utilizarea ulterioară. Astfel, exemplul rămâne ancorat într-un contract software real, fără a trata spațiul de lucru ca pe un optimizator încorporat sau un serviciu de antrenare a modelelor.
Selectează un model de IA fără restricții când este disponibil printr-un endpoint acceptat compatibil cu OpenAI sau Anthropic. Configurează adresa și credențialele necesare, ținând cont de suportul serverului pentru context și instrumente. Examinează modificările propuse și rulează atât verificări ale rezultatelor așteptate, cât și ale proprietăților ieșirii în mediul tău numeric. Folosește o toleranță declarată când egalitatea exactă în virgulă mobilă nu este potrivită. Conversația trebuie să expună ipotezele din spatele modificării, astfel încât să decizi dacă păstrează comportamentul necesar aplicației.
Examinarea ieșirii numerice cu constrângeri
Ce proprietăți ale ieșirii trebuie să cer explicit?
Numește lungimea necesară, ordinea, semnele permise și suma așteptată, împreună cu toleranța, dacă există. Include cerințele codului care folosește rezultatul. Un rezultat poate satisface o constrângere și încălca alta, așa că examinarea nu trebuie să se oprească la o singură valoare agregată.
Este egalitatea exactă cu unu un test fiabil în virgulă mobilă?
Nu în orice calcul. Alege o toleranță potrivită contractului numeric și mediului de testare și explic-o în verificare. Cere modelului să distingă efectele reprezentării de o încălcare reală a constrângerii, în loc să slăbească implicit aserțiunile.
Ar trebui modificarea să reordoneze vectorul original?
Doar dacă o permite contractul ieșirii. Sortarea internă poate servi calculului, în timp ce valorile finale trebuie în continuare să corespundă pozițiilor originale. Examinează codul care le folosește și testează o intrare cu elemente distincte, care fac vizibilă o eroare de ordine.
Poate verificarea proprietăților să înlocuiască exemplele de rezultate așteptate?
Folosește-le pe ambele când testează afirmații diferite. Un vector poate fi nenegativ și avea suma unu fără să fie proiecția dorită. Rezultatele mici stabilite independent ajută la verificarea transformării, iar proprietățile acoperă aspecte mai generale ale contractului ieșirii.
SimplexDune · Actualizat 2026-10-25