قيم شابلي الدقيقة للتحالفات
احسب حصص شابلي الدقيقة لثمانية لاعبين على الأكثر من قيم تحالفات صحيحة لا تتجاوز 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| المشروع | اختبر الألعاب الجمعية وصفر لاعبين وارفض قيمة غير صفرية للتحالف الفارغ أو طول جدول ليس قوة للعدد اثنين. |
|---|---|
| راجع قبل التطبيق | قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية. |
| النماذج | اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل. |
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اجعل الافتراضات وراء الحصة المحسوبة قابلة للمراجعة
يوفر CoalitionAster للعمل على التطبيقات الرياضية مساحة برمجة على Windows لفحص المصدر والنقاش بمساعدة الذكاء الاصطناعي. ابدأ بمعنى جدول المدخلات والنتيجة التي يبلغ عنها برنامجك. قد يكون الحساب متسقا داخليا لكنه يجيب عن سؤال مختلف عما تعرضه الواجهة، لذا ثبّت هذا المعنى قبل طلب تغييرات التنفيذ.
يقدم مثال قيمة Shapley مهمة مشروع ملموسة: التحقق من حصص كسرية دقيقة مشتقة من قيم الائتلافات. أحضر جدولا صغيرا واشرح ارتباط المشاركين بالمدخلات. اطلب من المساعد فحص هذه الافتراضات إلى جانب الحساب، دون اعتبار النتيجة الرياضية التوضيحية توصية مالية أو سياسة تشغيلية لتوزيع الحصص.
راجع التعديلات المقترحة بأمثلة محسوبة بصورة مستقلة، بما يشمل تمثيل الائتلاف الفارغ. شغّل اختبارات مشروعك وافحص كيف تصل الكسور الدقيقة إلى طبقة التقارير. إذا كانت الواجهة تقرّب القيم، فراجع ذلك منفصلا كي لا يبدو قرار التنسيق وكأنه يغيّر التوزيع الأساسي أو يحجب افتراضاته.
يمكنك استخدام نموذج ذكاء اصطناعي غير مفلتر توفره نقطة اتصال مدعومة متوافقة مع OpenAI أو تابعة لـ Anthropic. قدّم بيانات الاعتماد عند الحاجة وافحص الأدوات وسعة السياق. تحدد الخدمة المختارة سلوك النموذج وقيوده؛ ويبقي CoalitionAster العمل البرمجي مستندا إلى ملفات المشروع ونتائج تستطيع فحصها بنفسك.
وضّح الحساب قبل تغيير شيفرته
ماذا يجب أن توضّح حالة اختبار قيم الائتلافات؟
حدّد المشاركين وكيف تقابل مدخلات الجدول الائتلافات والقيمة المتوقعة للائتلاف الفارغ. استخدم مثالا صغيرا بحصص محسوبة بصورة مستقلة. يتيح ذلك للمساعد مراجعة افتراضات التمثيل إلى جانب العمليات الحسابية.
هل يحدد المثال الرياضي سياسة دفع فعلية؟
لا. إنه مثال توضيحي لمراجعة شيفرة المشروع. معنى المدخلات وقرار استخدام أي قاعدة توزيع يعودان إلى متطلبات تطبيقك؛ ولا تبرر الحصة المحسوبة وحدها قرارا تشغيليا أو ماليا.
كيف أراجع المخرجات المقرّبة؟
افصل حالات اختبار الحساب الدقيق عن حالات اختبار العرض. حدّد قواعد التقريب والعرض المطلوبة ثم افحص موضع تطبيقها. ينبغي ألا يلتبس التقرير المقرّب بالقيم الدقيقة المعادة من الحساب الأساسي.
هل تنفيذ الاختبارات سحابيا مشمول بسبب اسم النطاق؟
المنتج الموثق مساحة برمجة على Windows باتصالات نماذج قابلة للضبط. لا يثبت اسم النطاق توفر تنفيذ سحابي للاختبارات. شغّل الفحوص في البيئة التي اخترتها لمشروعك وأعد النتائج ذات الصلة إلى المراجعة.
CoalitionAster · آخر تحديث 2026-10-25