مرحبا بالجميع! اليوم سأتحدث عن تجاربي مع أنظمة الجسيمات. كان الهدف الرئيسي هو إيجاد قواعد بسيطة من شأنها أن تولد سلوكًا مثيرًا للاهتمام.
مثال كلاسيكي لنظام مع قواعد بسيطة وسلوك معقد هو الأتمتة الخلوية ، وهذا ما ركزت عليه ، في محاولة للعثور على القواعد. بطبيعة الحال ، بالنسبة إلى الأتمتة الخلوية ، ستكون القواعد في معظم الحالات أكثر بساطة. لكن الجزيئات يمكن أن تكون أجمل!
تحت خفض الكثير من ميغابايت من متحركة.
حساء الخلية
أولاً ، اتبعت خطى لعبة "الحياة": كل جسيم له عداد "اكتظاظ سكاني" ، وهو يساوي مجموع المربعات العكسية للمسافات إلى الجسيمات الأخرى. إذا كانت هذه العداد أقل من حد معين ، فهناك عدد قليل من الجيران ، ثم تنجذب الجسيمات إلى جزيئات أخرى ، وإذا كان هناك العديد من الجيران ، يتم صدها. إذا تقاطع الجسيمات ، فسيتم صدها في أي حال ، حتى لا يمر بعضها البعض.
نحن نثرثر بشكل عشوائي على الجزيئات في جميع أنحاء الميدان ونرى ما سيحدث.

ومن المثير للاهتمام ، أنه يتضح شيئًا مشابهًا للخلايا ويبدو بالفعل مفعمًا بالحيوية. يمكنك ، على سبيل المثال ، إضافة المزيد من أنواع الجزيئات. اسمح للجزيئات المختلفة بزيادة عدد الجيران بطرق مختلفة ، بل ويمكن للبعض أن يقلله.

الآن أصبحت "خلايانا" متعددة الطبقات.
عيب هذه القواعد هو أنها تنتج هياكل فوضوية إلى حد ما ، ليست مستقرة للغاية.
لذلك ، نحن نمضي قدما.
لعبة اللحاق بالركب
نغير قواعد اللعبة. لن نعد الجيران. دع الجسيمات ببساطة تجذب أو تنبذ اعتمادًا على أنواعها. إذا كانت جميع الجسيمات من نفس النوع ، فهناك خياران فقط: إما أن يصدوا جميعًا ، أو يجذبون جميعًا.

إذا كان هناك المزيد من أنواع الجزيئات ، فيمكنك هنا الجمع بين الجزيئات التي سيتم جذبها وتلك التي سيتم صدها.
النص المخفيبالإضافة إلى الجذب / الطرد ، يمكن للمرء إضافة خيارات أخرى ، على سبيل المثال ، بحيث لا تتفاعل الجسيمات مع بعضها البعض بأي شكل من الأشكال ، أو تضيف معاملات لقوة التأثير ، لكن لم أجد أي سلوك مثير للاهتمام في هذا.
يمكن تمثيل أي قاعدة من هذا القبيل في شكل مصفوفة N * N ، حيث N هو عدد أنواع الجزيئات ، وفي كل خلية يوجد إما جاذبية أو تنافر. يتم الإشارة إلى الجذب بـ 0 ، ويتم الإشارة إلى التنافر بالرقم 1. ثم تقابل أي مصفوفة رقم معين ، على سبيل المثال ، المصفوفة
\ تبدأ {bmatrix} 1 & 0 \\ 1 & 0 \ end {bmatrix} سيعني 0101 ، أي 5 (الرقم الأخير في النموذج الثنائي هو الأول في المصفوفة). عدد المصفوفات المختلفة للقواعد
. على سبيل المثال ، لنوعين من الجزيئات تحصل على 16 قاعدة.

قد يبدو أن القاعدة 3 هي نفس القاعدة 7 ، ولكن إذا قمت بترجمتها إلى مصفوفات ، فستحصل عليها
\ تبدأ {bmatrix} 1 & 1 \\ 0 & 0 \ end {bmatrix} و
\ تبدأ {bmatrix} 1 & 1 \\ 1 & 0 \ end {bmatrix} ، مما يعني أنه في المادة 7 ، ينجذب البيج فقط إلى بعضهم البعض. بينما في المادة 3 ، ينجذب البيج أيضًا إلى اللون الأحمر. ولكن بسبب انخفاض كثافة اللون الأحمر ، فإن هذا له تأثير خفي. في الواقع ، يمكن استدعاء نفس القواعد ، على سبيل المثال ، 3 و 12 ، نظرًا لأن كل سلوك الجزيئات متطابق ، فإن الألوان فقط هي التي غيرت الأماكن. إذا تركنا فقط القواعد ذات السلوك الفريد ، فمن أصل 16 قاعدة سيكون لدينا 10. بالنسبة لثلاثة أنواع من الجزيئات من بين 512 مجموعة ممكنة ، تبقى 104 منها فريدة ، ولأربعة - 3044 من 65536 يتم الحصول على التسلسل
2 ، 10 ، 104 ، 3044 .
ولكن العودة إلى القواعد العشر لدينا.

القاعدة 9 ، وهي المصفوفة ، تلفت انتباهك
\ تبدأ {bmatrix} 1 & 0 \\ 0 & 1 \ end {bmatrix} حيث يصد نفسهم ويجتذب بعضهم البعض. الجزيئات المتناثرة عشوائيا تشكل بسرعة "المواضيع" وتجميد على هذا.
تجميد القاعدتين 1 و 15 أيضًا: وهما مكافئان لقاعدتين فرديتين لنوع واحد من الجسيمات (GIF السابق المتحركة). عادةً ما يتم إصلاح جميع القواعد ، والتي تكون مصفوفاتها متماثلة. هناك أيضًا قواعد 2 و 3 و 5 و 11 مع مصفوفات غير متماثلة. وهذا يعني أن نوعًا واحدًا من الجسيمات ينجذب إلى النوع الثاني ، ويتم صد النوع الثاني من الأول. اللحاق بالركب يبدأ.

القاعدة 3 مستقرة للغاية ، حيث "عمليات اللحاق بالركب" تتوقف عند نقطة ما ، وإذا استؤنفت ، فنادراً ما لم تكن طويلة. المادة 11 فوضوية للغاية. تبقى 2 و 5.
يمكنك الجمع بينهما بطريقة أو بأخرى لجعلها أكثر إثارة للاهتمام. التقطت القاعدة 105 لثلاثة ألوان ، أي مصفوفة
\ تبدأ {bmatrix} 1 & 0 & 0 \\ 1 & 0 & 1 \\ 1 & 0 & 0 \ end {bmatrix} وهذا هو السلوك:

كل شيء يبدو نابض بالحياة ، ولكن غير مستقر. ولكن ماذا عن بعض الكائنات الحية "المتكررة"؟ كيفية البحث عن المذبذبات والطائرات الشراعية؟ يجب علينا تغيير القواعد مرة أخرى!
الحياة العائمة
لن نغير القواعد كثيرا. بدلاً من ذلك ، أضف ميزة جديدة. الآن سوف تشكل الجزيئات روابط على مسافة قصيرة. إذا كانت الجسيمات مرتبطة ، عندئذ تنجذب باستمرار إلى بعضها البعض. هذا الجذب لا يضعف مع المسافة. ولكن ، إذا كانت المسافة أعلى من عتبة معينة ، فسيتم قطع الاتصال.
جربت خيارات مختلفة بثلاثة ألوان واستقرت على اللون الأحمر حيث يمكن أن يشكل اتصالًا واحدًا فقط ، اللون البيج - ثلاثة ، والأزرق - وهما ، يمكنك تعيين الحد الأقصى للاتصال في النموذج
.
في الوقت نفسه ، لا يمكن ربط الأحمر باللون الأحمر الأخرى ، ولا يمكن أن يكون للبيج والأزرق أكثر من رابطين مع جزيئات بلونهما ولا يزيد عن واحد بجزيئات من كل لون آخر. كل هذا في شكل مصفوفة:
\ تبدأ {bmatrix} 0 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \ end {bmatrix}
لقد لعبت حولها مع قواعد سحب / دفع مختلفة وأحببتها
\ تبدأ {bmatrix} 1 & 1 & 0 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \ end {bmatrix} وهذا هو ، تنجذب تلك الحمراء إلى تلك الزرقاء ، وفي جميع الحالات الأخرى يتم صد جميع.

يبدو أن هذه المخلوقات تطفو في سائل أو ترفرف بجناحيها.


زوج من المذبذبات وزوج من الطائرات الشراعية.
يسهل الحصول على الأشكال الثابتة: لا تحتاج فقط إلى استخدام اللونين الأحمر والأزرق معًا ، حيث أن هذه هي المجموعة الوحيدة مع الجذب في هذه القواعد.


ولكن في بعض الأحيان تحدث هذه الحركة مع هذه الألوان. تبدأ بعض الأشكال في الدوران ، بدءًا من الأرقام الأخرى ، ويتم الحصول على "التروس".

الخاتمة
في المستقبل ، سيكون من المثير للاهتمام مقارنة الأرقام التي تم الحصول عليها ، لجمع إحصائيات حول عدد مرات ظهورها.
يمكنك أيضًا استخدام هذه القواعد كأساس لإنشاء كائنات أكثر تعقيدًا مع الغذاء والتكاثر والتطور.
يمكنك بناء دوائر منطقية من هذا ، وبناء آلة حاسبة ، والمعالج هو الأفضل ليست ضرورية.
للعب
تنفيذ JS من
v1vendiشفرة المصدر
كود جافاأشياء باردة مماثلة
الكونالجسيمات الحياةمجموعات