ماهو مبدأ عمل هذه الحواسيب ...
ما هو الـ quantum computer ؟
الحاسوب التقليدي يعتمد على اليقين والقيم المنفصلة إما 0 وإما 1
الحاسوب الكمي يعتمد على الإحتمالية والقيم المتصلة 0 0.1 0.2 0.3 ........ 1
معني ذلك أنه إذا كان لدينا لونين أصفر وأحمر
فان في الحاسوب التقليدي يكون لديك اختيار واحد فقط من اثنين اصفر أو أحمر
ولكن في الحاسوب الكمي يكون لديك عدد لا نهائي من الاختيارات حسب نسبة كل لون فلو دمجت اللونين بنسبة 50:50 تحصل على لون برتقالي طبيعي ولكن إذا زدت نسبة الأحمر لتصبح 40: 60 سصبح البرتقالي أشد حمرة وهكذا يصبح لدينا عدد لانهائي من الاحتمالات
كيف سنستفيد من هذا؟
على فرض لديك خبرة جيدة في البرمجة ولتبسيط الفكرة،
تخيل إذا كان لدينا عدة ألوان- أزرق، أصفر ، أحمر ولدينا مهمة زيادة شفافية كل لون من الألوان الثلاثة. كيف سنقوم بهذا برمجيا؟
في الحاسوب التقليدي:
سيكون علينا إستدعاء الدالة المسئولة عن زيادة الشفافية ثلاث مرات بهذا الشكل
increase_alpha(bColor)
increase_alpha(yColor)
increase_alpha(rColor)
معني ذلك إن عدد الإستدعاءات يساوي عدد الألوان المطلوب معالجتها أي أن تعقيدها يساوي O(n)
في الحاسوب الكمي: أنت تعرف انه في الرياضيات إذا كان لدينا العبارة
5* 3 + 5 * 2 + 5 * 9
فهى تعني تطبيق عملية الضرب في 5 على كل رقم على حدة ثم جمع النواتج ويمكننا اختصارها لجمع الأرقام أولا ثم تطبيق الضرب على الناتج
5 * (3 + 2 + 9) = 5* 3 + 5 * 2 + 5 * 9
في الطرف اليمين لدينا 3 عمليات ضرب + عمليتن جمع وفي الطرف الأيسر لدينا ثلاث عمليات جمع + واحدة فقط ضرب، الطرف الأيسر أسرع وأفضل (تذكر هذه النقطة)
لنعد إلى مهمة الألوان، في الحاسوب الكمي بدلا من زيادة شفافية كل لون على حدة سنقوم بدمج الألوان معا أولا
mixed_color=rColor + bColor+ yColor
ثم نطبق زيادة الشفافية على اللون المُدمج
increase_alpha(mixed_color)
معني ذلك أننا قمنا ضمنيا بزيادة شفافية كل لون عن طريق إستدعاء واحد فقط ولا يهم مهما كانت عدد الألوا أي O(1)، ثم نأتي إلى المرحلة الأخيرة وهي الحصول على اللون بعد زيادة شفافيته من اللون المُدمج ويمكننا القيام بهذا عن طريق الإحتمالات ولكن هذا موضوع أخر
من المهم أن تعرف ان الحاسوب الكمي لا يضيف أي قوة اضافية للحاسوب التقليدي إذا كانت الأوامر البرمجية متسلسلة ولا يمكننا تنفيذها على التوازي
من المهم أن تعرف ان الحاسوب الكمي لا يضيف أي قوة اضافية للحاسوب التقليدي إذا كانت الأوامر البرمجية متسلسلة ولا يمكننا تنفيذها على التوازي
ما الفرق إذًا بينه وبين المعالجات المتعددة النوى ؟
الفرق الجوهري هو انه إذا كان لدينا عملية بحث فإن البرمجة المتوازية تعطينا جميع النواتج التي تحقق شرط البحث بينما الحاسوب الكمي لا يعطى سوى نتيجة واحدة وفقط من بين جميع النواتج ويجب إجراء العملية عدة مرات للحصول على نواتج محتلفة
فارق اخر هو انه البرمجة المتوازية تتطلب العديد من المعالجات أو الأنوية بعدد الأجزاء التي سيتم تشغيلها على التوازي ولكن الحاسوب لايحتاج نظريا سوى إلى معالج وونواة واحدة فقط
التعليقات