Dokładne wartości koalicji Shapleya
Oblicz dokładne udziały Shapleya dla najwyżej ośmiu graczy z całkowitych wartości koalicji o module do 1000000.
from fractions import Fraction
from math import comb
def shapley_values(values):
if type(values) not in (list, tuple) or not 1 <= len(values) <= 256 or len(values) & (len(values)-1):
raise ValueError("shapley.table")
if any(type(v) is not int or abs(v) > 10**6 for v in values) or values[0] != 0:
raise ValueError("shapley.value")
players = len(values).bit_length()-1
result = []
for player in range(players):
share = Fraction(0)
for subset in range(len(values)):
if not subset & (1 << player):
size = subset.bit_count()
weight = Fraction(1, players*comb(players-1, size))
share += weight*(values[subset | (1 << player)]-values[subset])
result.append(share)
return result| Projekt | Sprawdź gry addytywne i zero graczy, odrzucając niezerową pustą koalicję lub długość niebędącą potęgą dwójki. |
|---|---|
| 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. |
from fractions import Fraction
from math import comb
def shapley_values(values):
if type(values) not in (list, tuple) or not 1 <= len(values) <= 256 or len(values) & (len(values)-1):
raise ValueError("shapley.table")
if any(type(v) is not int or abs(v) > 10**6 for v in values) or values[0] != 0:
raise ValueError("shapley.value")
players = len(values).bit_length()-1
result = []
for player in range(players):
share = Fraction(0)
for subset in range(len(values)):
if not subset & (1 << player):
size = subset.bit_count()
weight = Fraction(1, players*comb(players-1, size))
share += weight*(values[subset | (1 << player)]-values[subset])
result.append(share)
return resultUmożliw ocenę założeń stojących za obliczonym udziałem
CoalitionAster zapewnia pracom nad aplikacjami matematycznymi środowisko programowania dla Windows do przeglądania źródeł i rozmowy z pomocą AI. Zacznij od znaczenia tabeli wejściowej i wyniku prezentowanego przez oprogramowanie. Obliczenie może być wewnętrznie spójne, a jednocześnie odpowiadać na inne pytanie niż to przedstawione w interfejsie, dlatego ustal znaczenie przed zleceniem zmian implementacji.
Przykład wartości Shapleya dostarcza konkretnego zadania projektowego: sprawdzenia dokładnych udziałów ułamkowych wyznaczonych z wartości koalicji. Podaj małą tabelę i wyjaśnij przyporządkowanie uczestników do pozycji. Poproś asystenta o ocenę tych założeń wraz z obliczeniem, bez traktowania przykładowego wyniku matematycznego jako rekomendacji finansowej lub operacyjnej polityki podziału.
Oceń proponowane zmiany na niezależnie rozwiązanych przykładach, uwzględniając reprezentację pustej koalicji. Uruchom testy projektu i sprawdź, jak dokładne ułamki trafiają do warstwy raportowania. Jeśli interfejs zaokrągla wartości, oceń to oddzielnie, aby decyzja o formatowaniu nie sprawiała wrażenia zmiany samego podziału ani nie przesłaniała założeń, które do niego doprowadziły.
Możesz użyć modelu AI bez filtrowania oferowanego przez obsługiwany punkt końcowy zgodny z OpenAI lub punkt końcowy Anthropic. Podaj dane uwierzytelniające, gdy są wymagane, i sprawdź narzędzia oraz pojemność kontekstu. Wybrana usługa określa zachowanie i ograniczenia modelu; CoalitionAster osadza pracę nad kodem w plikach projektu i wynikach, które możesz samodzielnie sprawdzić.
Wyjaśnij obliczenie przed zmianą jego kodu
Co powinien wyjaśniać przypadek testowy wartości koalicji?
Wskaż uczestników, przyporządkowanie pozycji tabeli do koalicji i oczekiwaną wartość pustej koalicji. Użyj małego przykładu z niezależnie obliczonymi udziałami. Pozwala to asystentowi ocenić założenia reprezentacji, a także arytmetykę.
Czy przykład matematyczny definiuje rzeczywistą politykę wypłat?
Nie. Ilustruje przegląd kodu projektu. Znaczenie danych wejściowych i decyzja o użyciu dowolnej reguły podziału należą do wymagań aplikacji; sam obliczony udział nie uzasadnia decyzji operacyjnej ani finansowej.
Jak oceniać zaokrąglone wyniki?
Oddziel przypadki testowe dokładnych obliczeń od testów wyświetlania. Określ pożądane reguły zaokrąglania i prezentacji, a następnie sprawdź miejsce ich zastosowania. Zaokrąglonego raportu nie należy mylić z dokładnymi wartościami zwracanymi przez właściwe obliczenie.
Czy nazwa domeny oznacza dostępność wykonywania testów w chmurze?
Udokumentowany produkt to środowisko programowania dla Windows z konfigurowalnymi połączeniami z modelami. Domena nie potwierdza wykonywania testów w chmurze. Uruchamiaj kontrole w środowisku wybranym dla projektu i przedstawiaj istotne wyniki do przeglądu.
CoalitionAster · Zaktualizowano 2026-10-25