نصائح مفيدة

كيفية العثور على وسيلة للخروج من المتاهة

Pin
Send
Share
Send
Send




منذ العصور القديمة ، حملت المتاهات شعورًا بالغموض والغموض. واحدة من المتاهات الأولى المعروفة للبشرية تصف هيرودوت - كانت متاهة مصرية كان فيها 5000 غرفة. بمرور الوقت ، فقدت المتاهات أهميتها الدينية والصوفية وأصبحت أدوات للترفيه ، وتحولت إلى حدائق وحدائق في شكل تحوطات خضراء ذات تكوين معقد.

لطالما كان حل المتاهات نشاطًا رائعًا ، ولكن الأمر الأكثر إثارة هو إنشاء آلات يمكنها الانتقال إلى المتاهة.

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

دعونا نحاول وصف روبوت يتصرف وفقًا لحكم "اليد اليمنى".

في بداية عمله ، يجب أن يجد الروبوت الجدار الذي يتبعه. للقيام بذلك ، يمكنه ببساطة المضي قدمًا حتى يواجه عقبة.

بعد أن واجه الروبوت عقبة ، يبدأ التحرك وفقًا لحكم "اليد اليمنى".

عند السير على طول الجدار ، يراقب الروبوت إذا كان هناك ممر على اليمين. إذا كان هناك ممر ، يجب أن يسير الروبوت معه حتى لا يمزق نفسه من الحائط إلى اليمين.

إذا لم يكن هناك ممر - أمام الجدار - يتحول الروبوت إلى اليسار. إذا لم يكن هناك مرور مرة أخرى ، فإنه يستدير لليسار مرة أخرى ، وبالتالي تدور 180 درجة ، ويمضي في الاتجاه المعاكس.

يظهر الرسم التوضيحي للكتلة الخوارزمية للروبوت الذي يعمل وفقًا "لقاعدة اليد اليمنى" في الشكل.


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

لهجة لغة الشعار الذي سنستخدمه بسيطة للغاية وتشبه لغة Basic. يمكنك التعرف على أوامر اللغة هنا. يتوفر تنزيل مجاني لبيئة برمجة GameLogo هنا. حجم التوزيع صغير - فقط 1 ميجا بايت.

في الأرشيف مع GameLogo هناك خلفيات ذات متاهات ، واحدة منها سوف نستخدمها.

في بداية البرنامج ، نعطي الأمر للسلحفاة لرفع الريش (افتراضياً ، يترك السلاحف أثرًا).

حجم الحقل هو 800 × 600 بكسل. يقع موضع البدء للسلحفاة عند الإحداثيات 115 ، 545 (مربع أبيض).

لون مسارات المتاهة فاتح ، ويستشعر المستشعر عليها قيمًا أكبر من 50. يكون لون جدران المتاهة غامقًا ، وستكون قيمة المستشعر أقل من 50. ويمثل الخروج من المتاهة مربعًا أسود ، وقيمة المستشعر أعلاه ستكون 0.

سنعلن عن علامة متغيرة ، والتي سنتحكم بها فيما إذا كان قد تم الوصول إلى الخروج من المتاهة.

سنكتب البرنامج ونبدأه بمساعدة الزر الأحمر الكبير مع نقش "Run".

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

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

في متاهات متعددة المجموعة الثانية متصلة ، لا تعمل القاعدة "بيد واحدة" ، واستخدامها ، من المستحيل تحقيق الهدف. ولكن حتى هذه المتاهات يمكن التغلب عليها بالاعتماد على خوارزمية دقيقة.

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

تم وصف الخوارزمية العالمية للمرور عبر أي متاهات بعد قرن فقط في كتاب عالم الرياضيات الفرنسي E. Luke "Matematiques matematiques" ، الذي نُشر عام 1882. ومن المثير للاهتمام ، عند وصف الخوارزمية ، أشار Luke إلى أولوية عالم الرياضيات الفرنسي M. Tremot. وهكذا ، أصبحت الخوارزمية معروفة باسم خوارزمية لوك تريمو.

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

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

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

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

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

قاعدة اليد الواحدة

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

من الضروري السير عبر المتاهة ، ولمس جدارها باستمرار بنفس اليد.

هذا يعني أنه عند مدخل المتاهة يجب أن تلمس جدارها بيد واحدة (كل نفس ، يمينًا أو يسارًا) وفي وقت التجول ، تواصل لمس الحائط بنفس اليد.

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

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

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

Pin
Send
Share
Send
Send