ماهي العشوائية في الحواسيب وأهميتها وأمثلة عليها
ماهي العشوائية في الحواسيب وأهميتها وأمثلة عليها |
ماهي العشوائية في الحواسيب وأهميتها وأمثلة عليها
فيما سبق تحدثنا عن آلية تخزين الحواسيب للبيانات المختلفة وأوضحنا أنها فيزيائياً لاشيء عدا إشارات كهربية تمكنا من توظيفها لحمل المعلومات، وتحدثنا أيضاً عن مفهوم الخوارزميات وهي الخطوات المتبعة لحل المشكلات بإستخدام الموارد المتاحة والتي يتم لاحقاً تحويلها لبرمجيات تتعامل مع بنية الحاسوب الفيزيائية وبناءاً عليه فالحواسيب لا تعمل إلا وفقاً للتعليمات الحتمية وهذا يتعارض مع مبدأ العشوائية.
فالتعليمات البرمجية لا تعمل إلا عند توفر البنية الفيزيائية المناسبة، لا يمكن لبرامج متابعة درجة حرارة أن تعمل إلا بتوفر مستشعر درجة الحرارة الذي يعتمد على المقاومات الكهربية المتغيرة التي تتغير شدتها بتغير درجة الحرارة (thermistor) فتؤثر بدورها على خصائص التيار الكهربي فنستدل منه على درجة الحرارة، أما بدون وجود المستشعر أو بوجود خلل في إرساله للإجابه فلا يعمل البرنامج بالطبع فسطرية الأوامر في الحواسيب ليست بمصباح علاء الدين، كل أمر يتم كتابته يعمل فقط لأن البنية الفيزيائية للحاسوب مهيئة لإستقباله.
يمكننا كتابة برنامج لجمع عددين على الحاسوب لأن هذا ممكن فيزيائياً، فالأعداد يمكن تحويلها لنظام الترقيم الثنائي binary والذي يمكن إستخدامه تمثيله إلكترونياً ومن ثم تتم عملية الجمع عبر دائرة الجمع الشهيرة
والتي يتم تصميمها بإستخدام دائرتي and و or فهي في النهاية مسارات محددة تسلكها الإلكترونات لتعطي الناتج المطلوب.
ولكن هل يمكننا توليد بيانات عشوائية بإستخدام هذا النسق المحدد للحاسوب؟ كيف نكتب برنامج لطباعة رقم عشوائي بين الصفر والثلاثة مثلاً؟
لا يمكن تصميم دائرة كهربية خرجها عبارة عن رقم عشوائي حتى ولو من بين رقمين فقط، أياً كان تركيب الدائرة فلابد لها أن تعمل وفق نسق متوقع مثل إختيار العدد الأكبر أو الأصغر أو بإجراء عمليات حسابية ثابتة إلى آخره، فدوماً يوجد مسار محدد من الدخل إلى الخرج وهذا المسار يجعل العملية غير عشوائية!
ومع ذلك يستخدم حاسوبك يومياً البيانات العشوائية في عمليات مختلفة وذلك عبر إحدى طريقتين:
أ. مولدات العشوائية الوهمية
الأعداد 1,2,3,4,5 ليست عشوائية أليس كذلك؟ فمن الواضح أن كل رقم يزيد واحد عما قبله ونعرف العدد التالي في السلسلة وهو 6 ..
والأعداد 1,3,7,15,31 ليست عشوائية أيضاً، بإمعان النظر تجد أن كل عدد يساوي ضعف العدد السابق زائد واحد والآن نعلم أن العدد التالي في السلسلة هو 63.
ماذا عن هذه الأعداد , 3215, 3362, 3030, 18095227 هل هي عشوائية أم ثمة عملية حسابية معينة يتم تنفيذها مثل المجموعتين السابقتين؟
هذه الأعداد ليست عشوائية، فكل عدد هو عبارة عن الأربع أرقام في منتصف مربع العدد الذي يسبقه!
العدد الأول هو 5227 ومربعه يصبح 27321529 والأربع أرقام في منتصف هذا العدد هي 3215.
فيصبح العدد الثاني 3215 ومربعه 10336225 والأربع أرقام بمنتصفه هي 3362
فيصبح العدد الثالت 3362 ومربعه 11303044 والأربع أرقام بمنتصفه هي 3030 ..
فيصبح العدد الرابع 3030 ومربعه 9180900 وهنا المربع مكون من عدد خانات فرديه وهو 7 فتم إفتراض وجود رقم ثامن من اليسار فأصبح 9180900x وأصبحت الأربع أرقام الوسطى 1809
إذا لحساب العدد التالي نوجد مربع 1809 وهو 3272481 ونفترض خانة ثامنه من اليسار 3272481x فنعلم أن الرقم التالي في السلسلة 2724
سلسلة الأرقام السابقة يصعب علينا إكمالها وهذا لا ينفي حقيقة أنها أرقام غير عشوائية ولكنها في الوقت ذاته تؤدي الغرض من العشوائيه لتعقيد خطواتها المستخدمة ولذلك سميت بالعشوائية الوهمية، والخوارزمية السابقة تعرف بـ Middle-Square وتم نشرها في أواخر الأربعينات.
هذه الطريقة في الواقع لم تعد موافقة للمعايير اليوم لسهولة كسرها وهناك الكثير من مولدات الأرقام العشوائية Random Number Generator (RNG) التي تستخدم طرق أخرى حديثة، راجع هذه القائمة للتعرف على الطرق الأخرى.
ملاحظة: يسمى الرقم المُستخدم في بداية عملية التوليد بالبذرة – seed.
هنا تجد أحد تطبيقات مولدات العشوائية الوهمية.
ب. مستشعرات العشوائية الحقيقية
علمنا أن توليد البيانات العشوائية بإستخدام الحاسوب مستحيل وإستبدلناها بالعشوائية الوهمية، ولكن ثمة مصادر أخرى للعشوائية يمكن إستعارتها من عوامل أخرى خارجية بإستخدام المستشعرات، فيمكن إستخدام معدل الإضمحلال الإشعاعي لنواة وهو ما يستحيل توقعه طبقاً لنظرية الكوانتم.
ومن ناحية أقل تعقيداً بعض الأنظمة تستخدم مدة ضغط المستخدم على آخر زر في لوحة المفاتيح كمصدر لتوليد أرقام عشوائية!
أيضاً قامت شركة Intel بتطوير قطعة RDRand داخل شرائح المعالج والذي تنقل العشوائية التي تحدث على مستوى المعالج نفسه كالضوضاء بعد تحويلها لما يكافئها بالصيغة الرقمية.
ونظراً لسرعة تطبيقات العشوائية الوهمية مقارنة بنظيرتها المعتمدة على الإستشعار فغالباً ما يتم إستخدام نتائج قليلة من المستشعرات كبذرة seed في المولدات العشوائية الوهمية الموافقة للمعايير.
إن كنت تتساءل لما كل هذا الإهتمام بالعشوائية في الحواسيب فهو نابع من تعدد إستخداماتها الحساسة في التشفير وعلوم الإحصاء والتحليل وأيضا في التطبيقات السياسية والترفيهية في ألعاب الورق واليناصيب وغيره، شاهد المزيد من تطبيقات العشوائية.
نلقاكم على خير في مواضيع أخرى عما قريب على موقع عرب فيوتشر.
ليست هناك تعليقات:
يمكنك إضافة الملاحظات او الإستفسار عن محتوي المشاركة او اضافة معلومة جديدة لم يتم التطرق اليها ، يمنع اضافة اية روابط علي سبيل الدعاية