ملخص
قد تكون سمعت عن التطوّر في سياق النباتات والحيوانات، ولكن هل تعلم أن هذه العملية الطبيعية يمكن استخدامها أيضًا في مجال الهندسة لاختراع الأشياء؟ تطورت الحيوانات والنباتات بطرق مدهشة للنجاة في بيئاتها، ويدرس علماء الأحياء منذ مدة طويلة آلية عمل التطور. وقد تعاون علماء الرياضيات مع علماء الكمبيوتر وعلماء الأحياء لإنشاء برامج كمبيوتر يمكنها تطوير التصاميم لمساعدة المهندسين على الاختراع. ويُطلق على هذه البرامج اسم خوارزميات التحسين التطورية ويمكن استخدامها لتطوير طائرات سريعة أو جسور قوية بل وألعاب فيديو أفضل. في هذا المقال، سنشرح كيف تعمل هذه الخوارزميات ونقاط قوتها وضعفها.
فهم التطور
التطور هو كلمة نستخدمها لوصف كيف تتغير النباتات والحيوانات على مدار فترات زمنية طويلة.
قد تبدو أغلب الحيوانات المنتمية إلى نوع واحد متشابهة، ولكن هناك اختلافات طفيفة بينها جميعًا، ولذلك يمكنني تمييز كلبي من بين مجموعة كبيرة من الكلاب. وعندما يُرزق والدان بطفل، نجده يشبههما إلى حدٍّ ما، فربما يكون للطفل نفس لون شعر أمه ويكون طويلاً كأبيه. وانتقال هذه السمات المتشابهة بين الأجيال هو ما نسميه الوراثة. ستكون هناك أيضًا اختلافات طفيفة بين الطفل ووالديه؛ بأن يكون لديه أنف أكبر حجمًا أو حاسة بصر أفضل على سبيل المثال. ويُطلق على هذه الاختلافات اسم الطفرات.
في الطبيعة، يمكن أن تعني الطفرات الصغيرة حياةً أو موتًا للحيوانات والنباتات. على سبيل المثال، في حالة وجود حمارين وحشيين يهربان من أسد يطاردهما لافتراسهما، فإن الراكض الأسرع بينهما سينجح في الهروب والنجاة. وسيتمكن الحمار الوحشي الناجي بعد ذلك من التكاثر، ما قد ينقل سمة الركض السريع إلى ذريته. ومن المرجح أيضًا أن ينجو صغار الحمار الوحشي السريعون وأن يتكاثروا وبالتالي سيتميز تعداد الحمير الوحشية بسرعة الركض مع مرور الوقت. ويُطلق على هذه العملية اسم الانتقاء الطبيعي.
لاحظ العلماء أنه على امتداد فترة زمنية طويلة، تتطور الأنواع لتتمكن من النجاة في بيئاتها، ويرجع ذلك إلى الوراثة والطفرة والانتقاء الطبيعي. تطورت الكائنات بطرق مدهشة لتقوم بأشياء لا تُصدَّق، بدءًا من حشرات العث التي تغيّر لونها للاختباء من مفترسيها إلى السحالي التي يمكنها شرب الماء من خلال جلدها. والسؤال المطروح الآن هو: هل يمكننا الاستفادة من هذه الأفكار المستمدة من الطبيعة لصنع اختراعات رائعة يمكنها القيام بأشياء مذهلة؟
خوارزميات التحسين التطورية
تستخدم خوارزميات التحسين التطورية الأفكار التطورية لمساعدة المهندسين على اختراع الأشياء. وقد توصّل عدة علماء في مجال الكمبيوتر إلى فكرة خوارزميات التحسين التطورية في الوقت نفسه تقريبًا بين عامي 1950 و1960 [1]. ويمكن استخدام خوارزميات التحسين التطورية مع جميع أنواع الاختراعات، مثل تصميم الطائرات [2] وإنشاء المستويات في ألعاب الفيديو [3] بل وحتى إبداع الفنون [4].
يقدّم الشكل 1 المزيد من الأمثلة حول استخدامات خوارزميات التحسين التطورية. ولشرح آلية عمل هذه الخوارزميات، لنتخيل أننا نحاول تصميم جسر.
أول شيء علينا القيام به هو تحديد العوامل التي تجعل التصميم جيدًا وتلك التي تجعله سيئًا. لتفادي التعقيد، سنفترض أننا نريد أن يحمل الجسر أكبر وزن ممكن، وسيكون هذا غرضنا أو هدفنا. بعد تحديد هدف، يمكننا المقارنة بين تصميمي جسور واختيار الأفضل، أي الذي يحمل الوزن الأكبر.
الخطوة التالية هي إنشاء بعض التصاميم المبدئية للجسور. ويمكن القيام بذلك بشكل عشوائي باستخدام جهاز كمبيوتر أو يمكننا تخصيص بعض الوقت لإنشاء بعض التصاميم بأنفسنا. فعلى أي حال، سنحتاج إلى الكثير من التصاميم، وسنطلق على مجموعة التصاميم هذه اسم ʺالتعدادʺ. من خلال تنفيذ عمليات محاكاة على جهاز كمبيوتر، يمكننا توقع مقدار الوزن الذي يمكن لكل تصميم جسر حمله. وباستخدام هذه المعلومات، يمكننا ترتيب التصاميم استنادًا إلى جودتها (الشكل 2).
بعد أن نحدد تصاميم التعداد التي يمكنها حمل أكبر وزن، ننتقيها لتكون ʺالوالدينʺ، تمامًا كما في حالة الطبيعة حيث تنجو الحمير الوحشية الأسرع فقط وتتكاثر. من المستحيل بالطبع وجود ʺأطفالʺ للجسور ولكن يمكن للعلماء إنشاء برامج كمبيوتر يمكنها الجمع بين تصميمين جيدين لإنتاج تصميم ʺطفلʺ جديد يحمل سمات كلا ʺالوالدينʺ. وربما يكون للطفل (الجسر في مثالنا) نفس ارتفاع والده وعدد أرجل والدته على سبيل المثال. بعد ذلك، نطبّق طفرة من خلال إجراء تغيير عشوائي في شيء ما بالتصميم الجديد، فقد نضيف رِجلاً أو نضاعف الارتفاع مثلاً. يعرض الشكل 3 مثالاً على تصميمين (الوالدين) يؤدي الجمع بينهما إلى تصميم جديد (الطفل).
نواصل إنشاء التصاميم الجديدة باستخدام الوراثة والطفرة إلى أن يكون لدينا تعداد جديد من التصاميم. وبعد ذلك يمكننا إجراء عمليات محاكاة لهذه التصاميم الجديدة وتحديد الأفضل منها وتكرار العملية. ويتم كل ذلك بشكل آلي بالنسبة لنا، أي على جهاز كمبيوتر. سنستغرق فترة طويلة (ربما أسابيع أو أشهر) للعثور على تصاميم أفضل فأفضل للجسور. وفي النهاية، إن حالفنا التوفيق، فقد نجد تصميم جسر لم يفكر أحد فيه مطلقًا.
ما نقاط قوة وضعف خوارزميات التحسين التطورية؟
يمكن أن تفيدنا خوارزميات التحسين التطورية حقًا عندما نحتاج إلى تصميم شيء جديد ولا نعرف كيف نبدأ. فبرامج الكمبيوتر هذه تفاجئ المهندسين حقًا بتصاميم غريبة ورائعة أحيانًا. على سبيل المثال، استخدمت وكالة ناسا خوارزميات التحسين التطورية لتصميم أجزاء هوائيات صغيرة جدًا للأقمار الصناعية [5]. وقد أنشأت خوارزمية التحسين التطورية تصاميم غريبة أدهشت المهندسين. فعندما اختبروا التصاميم المطوّرة، وجدوا أنها عملت بشكل أفضل من الهوائيات التي صممها البشر.
تستخدم خوارزميات التحسين التطورية مبدأ العشوائية بعدة طرق مختلفة. وعلى الرغم من اعتقاد بعض العلماء بأن العشوائية شيء جيد، فالكثير من المهندسين والمصممين لا يتفقوا مع ذلك. السبب أنه إذا كنت تستخدم خوارزمية تحسين تطورية للقيام بالشيء نفسه مرتين، فقد تحصل على إجابتين مختلفين، ما يعني أنه لا يمكنك التأكد تمامًا من أن الخوارزمية تعطيك أفضل تصميم ممكن.
وهذه العشوائية تجعل بعض المهندسين لا يثقون في خوارزميات التحسين التطورية [6] لأنه يستحيل فهم السبب وراء اختيار الخوارزمية لتصميم ما بدلاً من تصميم آخر. بصفة شخصية إذًا، هل أنت مستعد للسفر في طائرة صُممت بواسطة خوارزمية تحسين تطورية؟ يحاول العلماء حاليًا تصميم خوارزميات يمكنها شرح القرارات التي تتخذها لمساعدة المهندسين على الوثوق بها. ولكن هناك مشكلة أخرى ناتجة عن العشوائية، وهي أن المصممين سيحتاجون إلى تنفيذ خوارزمية التحسين التطورية عدة مرات للتأكد من حصولهم على أفضل التصاميم. وقد يستغرق تكرار تنفيذ الخوارزمية وقتًا طويلاً، أطول كثيرًا مما سيستغرقه المهندسون أصحاب الخبرة لتصميم شيء ما بأنفسهم.
هناك بعض التحديات التي تواجه خوارزميات التحسين التطورية. ففي بعض الأوقات، يوجد أكثر من هدف واحد لأخذه في الاعتبار. عند تصميم الجسور مثلاً، تخيّل لو كان الهدف الآخر هو الانتباه لطول أو ارتفاع الجسر. كيف يمكننا إذًا تحديد الجسور الأفضل عند وجوب مراعاة سعة الوزن والارتفاع/الطول؟ عند إضافة المزيد من الأهداف، يعني ذلك أن خوارزمية التحسين التطورية ستستغرق وقتًا أطول للتوصّل إلى حل. مثال آخر على هذه التحديات هو عندما تكون مراعاة مظهر المنتج ضرورية لمهندس متخصص في تصميم السيارات. يصعب على الكمبيوتر توقع ما إذا كان التصميم يبدو جيدًا أم سيئًا. وقد تصمم خوارزمية التحسين التطورية سيارة يخجل الجميع من أن يراهم أحد وهم يقودونها. ولذا نحتاج إلى البشر لتحديد مثل هذه الأشياء.
من المشاكل الأخرى الناتجة عن الاعتماد على الخوارزمية في اتخاذ القرارات هي أن الخوارزمية يمكنها فقط اتخاذ القرارات بناءً على عمليات المحاكاة بالكمبيوتر التي لا تفلح دائمًا في عملها. ومن المعتاد أن تستغرق خوارزمية التحسين التطورية ساعات لاقتراح تصميم ستعتبره عملية المحاكاة جيدًا، في حين يستغرق المهندس ثوانٍ لإدراك أن المحاكاة خاطئة. وعند حدوث ذلك، يتعين على العلماء والمهندسين إصلاح الأخطاء في المحاكاة. إذًا، على الرغم من أن خوارزميات التحسين التطورية أدوات مفيدة، فلن تحل محل المصممين البشر أبدًا.
مستقبل خوارزميات التحسين التطورية
كما رأينا، تستفيد خوارزميات التحسين التطورية من العمليات التي نرصدها في الطبيعة لحل المشكلات التي نعجز عن حلها بأنفسنا. ومن أكبر المشكلات التي نواجهها حاليًا التغير المناخي والضرر الذي نلحقه بالطبيعة من خلال التلوث. وعند البحث عن خوارزميات تحسين تطورية جديدة وطرق جديدة لاستخدامها، سيساعدنا ذلك على تصميم مركبات وطائرات أفضل وأقل تلويثًا للبيئة. ولكن على الرغم من حاجتنا الدائمة إلى البشر لتصميم هذه الخوارزميات واستخدامها، فالطبيعة نجحت بطريقة ما في إنقاذ نفسها وحدها. برأيك، ما المشكلات الأخرى التي يمكن أن تساعدنا خوارزميات التحسين التطورية في حلها؟
جرّب بنفسك
إذا كنت تريد أن تجربّ تصميم سيارة باستخدام خوارزمية تطورية، فالعب إذًا اللعبة التي صممناها. يمكنك تنزيل اللعبة أو لعبها على متصفح من خلال هذا الرابط: (https://pillbuginteractive.itch.io/genetic-car-designer) للتعرّف على كيفية استخدام خوارزمية تطورية. واحرص على مشاركة أفضل تصاميمك مع الأصدقاء.
مسرد للمصطلحات
التطور (Evolution): ↑ العملية التي تتغير بها النباتات والحيوانات على مدار فترة زمنية طويلة
الوراثة (Inheritance): ↑ العملية التي تنتقل من خلالها السمات مثل لون الشعر من الوالدين إلى الأطفال.
الطفرة (Mutation): ↑ تغيّر عشوائي في الجينات يمكن أن يتسبب في تغيّر سمة ما.
الانتقاء الطبيعي (Natural selection): ↑ العملية التي لا تتكيف فيها مع ظروف البيئة سوى الكائنات ذات السمات المفيدة فتعيش لمدة طويلة بما فيه الكفاية لإنجاب النسل وتوارث هذه السمات.
خوارزمية التحسين التطورية (Evolutionary optimization algorithm): ↑ خوارزمية تستخدم مفاهيم التطور لتحسين شيء ما، ويتم ذلك غالبًا من خلال عمليات المحاكاة بالكمبيوتر.
التحسين (Optimization): ↑ عملية تحويل الشيء إلى أحسن حالاته الممكنة.
النيوتن (Newtons): ↑ نقيس القوى بوحدة النيوتن، فالوزن مثلاً هو القوة التي تسحب بها الجاذبية جسمًا ما للأسفل باتجاه الأرض وتُقاس بوحدة النيوتن.
الخوارزمية (Algorithm): ↑ عملية أو مجموعة خطوات يجب اتباعها لحل مشكلة ما.
المحاكاة بالكمبيوتر (Computer simulation): ↑ برنامج كمبيوتر يتوقع ما سيحدث في الحياة الواقعية، ومن أمثلة استخدامه: تنبؤات حالة الطقس. لن تكون عمليات المحاكاة مثالية أبدًا، وهي دائمًا مجرد تخمين جيد لما قد يحدث.
إقرار تضارب المصالح
يعلن المؤلفون أن البحث قد أُجري في غياب أي علاقات تجارية أو مالية يمكن تفسيرها على أنها تضارب محتمل في المصالح.
إقرار
عمِل ʺديفيد شيناʺ وʺبن فينسنتاʺ وʺكفياد واستيʺ كمتدربي أبحاث في الصيف للمساعدة في هيكلة وصياغة هذا المقال. يتلقى BS تمويلاً جزئيًا من ʺشراكة مجلس بحوث العلوم الهندسية والفيزيائية (EPSRC) لتدريب الدكتوراةʺ في جامعة سوانزي. ويتلقى JV التمويل من ʺمركز مجلس بحوث العلوم الهندسية والفيزيائية (EPSRC) لتدريب الدكتوراه في تحسين التفاعلات والتعاونات البشرية من خلال الأنظمة المستندة إلى البيانات والذكاءʺ (EP/S021892/1).
المراجع
[1] ↑ Mitchell, M., and Taylor, C. E. 1999. Evolutionary computation: an overview. Annu. Rev. Ecol. Syst. 30:593–616.
[2] ↑ Naumann, D. S., Evans, B., Walton, S., and Hassan, O. 2016. A novel implementation of computational aerodynamic shape optimisation using Modified Cuckoo Search. Appl. Math. Model. 40:4543–59. doi: 10.1016/j.apm.2015.11.023
[3] ↑ Walton, S. P., Rahat, A. A. M., and Stovold, J. 2021. Evaluating mixed-initiative procedural level design tools using a triple-blind mixed-method user study. IEEE Trans. Comput. Intell. AI Games doi: 10.1109/TG.2021.3086215
[4] ↑ den Heijer, E., and Eiben, A. E. Investigating aesthetic measures for unsupervised evolutionary art. Swarm Evol. Comput. (2014) 16:52–68. doi: 10.1016/j.swevo.2014.01.002
[5] ↑ Hornby, G., Globus, A., Linden, D., and Lohn, J. 2006. “Automated antenna design with evolutionary algorithms,”. Space 2006 (Reston, VA: American Institute of Aeronautics and Astronautics). doi: 10.2514/6.2006-7242
[6] ↑ Vincalek, J., Walton, S., and Evans, B. 2021. “It’s the Journey Not the Destination: Building Genetic Algorithms Practitioners Can Trust,”. in 2021 Genetic and Evolutionary Computation Conference Companion (GECCO’21 Companion) (New York, NY: ACM). doi: 10.1145/3449726.3459483