شرح الحوسبة الكمومية: من الكيوبتات إلى خوارزمية غروفر

١٨ سبتمبر ٢٠٢٥

Quantum Computing Explained: From Qubits to Grover’s Algorithm

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

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

خذ لوح التزلج الذهني — سنقوم بركوب موجة الكم.


من البتات الكلاسيكية إلى الكيوبتات الكمومية

لنبدأ بتثبيت أنفسنا في شيء مألوف: البت الكلاسيكي. في أي حاسوب عادي، يتم تخزين المعلومات كتسلسل من البتات، كل منها إما 0 أو 1. بسيط، ثنائي، وموثوق.

كيوبت، الوحدة الأساسية للمعلومات الكمومية، مختلف. بفضل مبادئ الميكانيكا الكمومية، يمكن لكيوبت أن يوجد في تراكب من الحالات. بدلًا من أن يكون صارمًا 0 أو 1, يمكن التفكير في الكيوبت كمزيج خطي لكليهما:

[ |\psi\rangle = \alpha |0\rangle + \beta |1\rangle ]

حيث ( \alpha ) و ( \beta ) أعداد مركبة، و (|\alpha|^2 + |\beta|^2 = 1). عند قياس الكيوبت، ينهار إلى إما 0 باحتمال (|\alpha|^2) أو 1 باحتمال (|\beta|^2).

هذا يمنح الكيوبتات قوتها الفريدة: يمكنك التلاعب بها بطرق تستفيد من التراكب، ثم استخلاص معلومات مفيدة عبر بروتوكولات قياس مصممة بذكاء.

تصور الكيوبتات: كرة بلوخ

طريقة قوية لتصور الكيوبت هي كرة بلوخ, حيث تمثل أي نقطة على السطح حالة كيوبت صالحة. القطبين الشمالي والجنوبي يتوافقان مع الـ 0 والـ 1 الكلاسيكيين، بينما كل شيء بينهما هو مزيج. يساعد هذا التصور في فهم كيفية دوران الكيوبتات وقلبها وتشابكها.


التراكب والتشابك

التراكب

التراكب هو ما يسمح للحواسيب الكمومية باستكشاف احتمالات متعددة بالتوازي. على سبيل المثال، يمكن لكيوبتين تمثيل أربعة حالات في نفس الوقت: 00, 01, 10, و 11. مع n كيوبت، يمكنك تمثيل (2^n) حالة في نفس الوقت.

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

التشابك

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

على سبيل المثال، حالات بيل — أزواج كيوبتات متشابكة بشكل أقصى — هي اللبنات الأساسية للتواصل الكمومي وتصحيح الأخطاء.


بوابات الكم ودوائرها

في الحوسبة الكلاسيكية، تُنفَّذ العمليات المنطقية بواسطة بوابات مثل AND وOR وNOT. الحوسبة الكمومية أيضًا تستخدم بوابات، لكن بدلًا من قلب البتات، تقوم بوابات الكم بتعديل السعة الاحتمالية لكيوبتات.

بوابات الكم الشائعة

  • بوابة هادامارد (H): تضع كيوبتًا في تراكب من 0 و 1. حاسمة للعديد من الخوارزميات.
  • بولّي-X, Y, Z: مشابهة لـ NOT الكلاسيكي، لكن مع لمسات كمومية.
  • بوابات الطور (S, T): تُغيّر طور متجه حالة الكيوبت، مفيدة لتأثيرات التداخل.
  • بوابة CNOT: تُشَبِّك كيوبتَين عن طريق قلب كيوبت واحد بناءً على حالة كيوبت آخر.

تُبنى دوائر الكم بربط هذه البوابات معًا، تمامًا مثل الدوائر الكلاسيكية لكن بسلوكيات أكثر دقة.


جوهر خوارزميات الكم

تصميم خوارزمية كمومية أقل عن القوة الغاشمة وأكثر عن التداخل. يمكن لحالات الكم أن تتداخل بشكل بناء (زيادة احتمال الإجابة الصحيحة) أو تدميري (إلغاء الإجابات الخاطئة). فن الحوسبة الكمومية يكمن في ترتيب البوابات بحيث تصبح الرياضيات لصالحك.

هذا يقودنا بسلاسة إلى واحدة من أشهر خوارزميات الكم: خوارزمية غروفر.


افترض أن لديك قاعدة بيانات غير مرتبة تحتوي على (N) عنصر، وتريد إيجاد عنصر محدد. الحاسوب الكلاسيكي يحتاج، في المتوسط، إلى (N/2) محاولة للعثور على العنصر الصحيح. خوارزمية غروفر تفعل ذلك في حوالي (\sqrt{N}) خطوة — تسريع تربيعي.

كيف تعمل خوارزمية غروفر

  1. التهيئة: ابدأ بجميع الكيوبتات في تراكب، تمثل كل حالة ممكنة بالتساوي.
  2. المنارة: عملية خاصة تُحدد الحل الصحيح عن طريق قلب طوره.
  3. تعزيز السعة: كرر تطبيق سلسلة من البوابات التي تزيد احتمال قياس الحالة المُحددة.
  4. القياس: بعد حوالي (\sqrt{N}) تكرار، يؤدي قياس الكيوبتات إلى الإجابة الصحيحة بدرجة عالية من الاحتمال.

الجمال هنا في الخطوة 3: خوارزمية غروفر تستخدم التداخل لتعزيز الإجابة "الجيدة" وتقليل الإجابات "السيئة".

الآثار الواقعية

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

ملاحظة: نظرية BBBV (Bennett–Bernstein–Brassard–Vazirani) تُظهر أن خوارزمية غروفر مثالية للبحث غير المنظم: لا يمكن لأي خوارزمية كمومية أن تفعل أفضل من (O(\sqrt{N})).


خوارزمية شور والتشفير

بينما تعطي خوارزمية غروفر تسريعًا تربيعيًا، خوارزمية شور تقدم تسريعًا أسّي — وهذا هو المكان الذي تصبح الأمور جادة حقًا. خوارزمية شور تُحلل الأعداد الكبيرة بكفاءة، مما يشكل أساس أمان تشفير RSA.

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


خوارزميات كمومية أخرى

الحوسبة الكمومية ليست فقط عن كسر الشفرات. إليك بعض النقاط البارزة الأخرى:

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

عرض تجريبي: نظرة على خوارزمية غروفر في Python

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

from qiskit import QuantumCircuit, Aer, execute
import numpy as np

# Number of qubits	n = 3
qc = QuantumCircuit(n)

# Step 1: Put all qubits into superposition
qc.h(range(n))

# Oracle: Let's say the 'target' state is |101>
def oracle(circuit, target='101'):
    for idx, bit in enumerate(reversed(target)):
        if bit == '0':
            circuit.x(idx)
    circuit.h(n-1)
    circuit.mct(list(range(n-1)), n-1)
    circuit.h(n-1)
    for idx, bit in enumerate(reversed(target)):
        if bit == '0':
            circuit.x(idx)

# Grover Diffusion Operator
def diffuser(circuit):
    circuit.h(range(n))
    circuit.x(range(n))
    circuit.h(n-1)
    circuit.mct(list(range(n-1)), n-1)
    circuit.h(n-1)
    circuit.x(range(n))
    circuit.h(range(n))

# Step 2: Apply Oracle + Diffuser once (for N=8, ~sqrt(8) ~ 3 iterations is enough)
for _ in range(3):
    oracle(qc)
    diffuser(qc)

# Measure
qc.measure_all()

# Run simulation
backend = Aer.get_backend('qasm_simulator')
result = execute(qc, backend, shots=1024).result()
counts = result.get_counts()
print(counts)

هذا الكود يُعد خوارزمية Grover على 3 كيوبتات، للبحث عن الحالة |101⟩. إذا قمت بتشغيل هذا، سيظهر هيستوغرام الناتج قمة عند 101 — بالضبط النوع من تعزيز السعة الذي تضمنه خوارزمية Grover.