Rzut euklidesowy na sympleks
Rzutuj 1–256 skończonych liczb w granicach ±10^6 na nieujemny sympleks jednostkowy.
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]
Projekt
Sprawdź remisy i rozwiązania w wierzchołkach, odrzuć wartości logiczne i porównaj wynik z tolerancją numeryczną bez uznawania wag za skalibrowane prawdopodobieństwa.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
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]
Zachowaj widoczność ograniczeń numerycznych przez cały przegląd
SimplexDune to środowisko programowania z AI dla Windows dla programistów przeglądających przekształcenia numeryczne w aplikacji. Zacznij od folderu projektu i właściwości, które musi spełniać wyjście. Podłączony model może pomóc sprawdzić, jak wymagania występują w kodzie, i omówić zmianę o ograniczonym zakresie, podczas gdy Ty oceniasz propozycję względem odbiorcy zależnego od wyniku.
Jedno zadanie sugerowane przez simplex_projection.py dotyczy zamiany wektora na nieujemne wagi o sumie równej jeden. Poproś asystenta o sprawdzenie przyjmowanych danych, kolejności wyjścia i kontroli wyników zmiennoprzecinkowych. Podaj reprezentatywne wektory i opisz dalsze wykorzystanie. Osadza to przykład w rzeczywistym kontrakcie oprogramowania zamiast traktować środowisko jako wbudowany optymalizator lub usługę trenowania modeli.
Wybierz model AI bez ograniczeń, gdy jest dostępny przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic. Skonfiguruj jego adres i wymagane dane uwierzytelniające, uwzględniając obsługę kontekstu i narzędzi serwera. Przejrzyj proponowane edycje i uruchom kontrole oczekiwanych wyników oraz właściwości wyjścia w swoim środowisku numerycznym. Użyj określonej tolerancji tam, gdzie dokładna równość zmiennoprzecinkowa jest niewłaściwa. Rozmowa powinna ujawnić założenia poprawki, aby można było zdecydować, czy zachowuje zachowanie potrzebne aplikacji.
Przegląd wyjścia numerycznego z ograniczeniami
Jakich właściwości wyjścia zażądać jawnie?
Wymień wymaganą długość, kolejność, dozwolone znaki i oczekiwaną sumę oraz tolerancję. Uwzględnij wymagania odbiorcy. Wynik może spełniać jedno ograniczenie, naruszając inne, więc przegląd nie powinien kończyć się na jednej wartości zbiorczej.
Czy dokładna równość jeden to wiarygodny test zmiennoprzecinkowy?
Nie w każdym obliczeniu. Wybierz tolerancję odpowiednią do kontraktu numerycznego i środowiska testowego oraz wyjaśnij ją w kontroli. Poproś model o odróżnienie efektów reprezentacji od rzeczywistego naruszenia ograniczenia zamiast cichego osłabiania asercji.
Czy poprawka powinna zmienić kolejność pierwotnego wektora?
Tylko jeśli pozwala na to kontrakt wyjścia. Wewnętrzne sortowanie może służyć obliczeniu, podczas gdy końcowe wartości nadal muszą odpowiadać pierwotnym pozycjom. Sprawdź odbiorcę i przetestuj wejście, którego różne elementy uwidocznią błąd kolejności.
Czy kontrola właściwości może zastąpić przykłady oczekiwanych wyników?
Używaj obu, gdy testują różne twierdzenia. Wektor może być nieujemny i sumować się do jedności, nie będąc zamierzonym rzutem. Małe, niezależnie ustalone wyniki pomagają zweryfikować przekształcenie, a właściwości obejmują szersze aspekty kontraktu wyjścia.
SimplexDune · Zaktualizowano 2026-10-25