عن المشروع
SwarmingLilMen هو محرك تجريبي للأنظمة متعددة الوكلاء الناشئة، يرتكز حالياً على محاكاة boids/swarm ثنائية الأبعاد مبنية من المبادئ الأولى باستخدام C#/.NET 8.0. يركز المشروع على الظهور (emergence) بدلاً من البرمجة النصية: حيث تنتج قواعد توجيه بسيطة وقابلة للتركيب أنماطاً كلية غنية. المشروع في مراحل تطويره المبكرة (بموجب رخصة GPL-3.0-only) ويمر بمرحلة انتقال معماري من نهج الأنظمة القائمة على التجميع إلى قواعد توجيه بأسلوب Reynolds قابلة للاختبار بشكل مستقل.
يوجد تنفيذان جنباً إلى جنب: مسار Legacy افتراضي (أنظمة توجيه SoA قائمة على التجميع مع boids ذات شبكة موحدة ومصيّر Raylib تفاعلي) ومسار Canonical (هيكل أساسي بالإضافة إلى ثلاث قواعد توجيه، يتم تفعيله عبر --canonical). تم إنجاز عقد الإدراك/الفهرس المكاني وفرض ميزانية القوة في المسار canonical، ولكن لا تزال تجربة مستخدم أدوات القياس، وسيناريوهات السلوك المحددة، ودلالات المجموعات المتعددة، والمعايير المرجعية لـ canonical قيد التطوير.
تشمل القدرات المثبتة تخطيط البيانات Structure-of-Arrays (SoA) لكفاءة الذاكرة المخبئية؛ مسارات legacy وcanonical ذات خطوات زمنية ثابتة وبذور محددة مع تغطية دقيقة لـ 500-tick ordered-kinematic-hash؛ هياكل بيانات جينوم الوكيل وواجهة برمجة تطبيقات الطفرات؛ معلمات محاكاة قابلة للتكوين مع إعدادات مسبقة (balanced, strong-separation, tight-flocking, fast-loose, slow-cohesive)؛ مسار boids ذو الشبكة الموحدة في legacy ومصيّر Raylib تفاعلي؛ مصيّر canonical لمجموعة واحدة اختياري مع أدوات توجيه؛ ومجموعة اختبارات xUnit التي تشكل بوابتها غير المتعلقة بالأداء جزءاً من CI. كما توجد مجموعة BenchmarkDotNet لقياس الأداء.
يقوم مسار الأنظمة بإعادة بناء شبكة موحدة ثم تشغيل أنظمة Sense وBehavior وWander وIntegrate في كل tick. تشمل مبادئ الأداء المسارات الساخنة الواعية بالتخصيص، وعدم استخدام LINQ/delegates/boxing في الحلقات الداخلية، وحلقات for ضيقة مع ثوابت مرفوعة، واستدعاءات مباشرة/ثابتة بدلاً من dispatch الافتراضي. تم تحديد أهداف أداء تتراوح بين 50 ألف إلى 100 ألف وكيل عند 60 إطاراً في الثانية بشكل تفاعلي وأكثر من مليون وكيل بدون واجهة (headless) كأهداف لم تتحقق بعد؛ حيث يتجاوز قياس 50 ألف وكيل ميزانية 16.67 مللي ثانية/tick بأكثر من ترتيب مقدار واحد، كما أن إنتاجية canonical وإطارات المصيّر وتخصيصات كل tick غير مقاسة.
يوفر المشروع أيضاً عروضاً تجريبية مستقلة لمتصفح JavaScript: Boids Basic (خوارزمية Reynolds مع ضبط المعلمات في الوقت الفعلي)، وSelf-Propelled Particles/Vicsek Model (انتقالات المرحلة في المادة النشطة مع تتبع معلمة النظام)، وAnt Colony Optimization (تحديد المسار القائم على stigmergy مع آثار الفيرومونات)، وParticle Swarm Optimization (تحسين عالمي مستمر مع تصور مشهد اللياقة). لا تتطلب هذه العروض أي تثبيت وتعمل على التكرار السريع، والعروض التوضيحية، والتعلم، والنمذجة الأولية.
تشمل مراحل خارطة الطريق التفاعلات بين المجموعات المتعددة/القتال/التمثيل الغذائي (المرحلة 3)، والتكاثر/التطور/انحراف السمات (المرحلة 4)، وتحسين SIMD/التوازي/NativeAOT (المرحلة 5)، وإعدادات سيناريوهات إضافية/إعادة التشغيل/مقاييس متقدمة (المرحلة 6). تتكون الحزمة التقنية من C# 12 على .NET 8.0، وRaylib-cs 7.0.2 للتصيير، وxUnit 2.9.3 للاختبار، وBenchmarkDotNet 0.15.6 للقياس المرجعي.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.