بقلم محمد الشايطة
باحث في المعهد العالي
الخوارزميات الكمومية Quantum Algorithms
نظرًا لأن أجهزة الحواسيب الكمومية أصبحت متاحة لعامة الناس، فقد نشأت الحاجة إلى تدريب مجموعة من المبرمجين الكموميين الذين طوَّر كثير منهم برامج حاسوبية تقليدية في حياتهم المهنية. ومع أن أجهزة الحواسيب الكمومية المتوفرة حاليًّا لا تحتوي إلَّا على أقل من 100 بت كمومي، فمن المتوقع أن تتوسع أجهزة الحواسيب الكمومية على نطاق واسع من حيث عدد البتات الكمومية والجودة والاتصال.
ترمي هذه المقالة إلى شرح مبادئ البرمجة الكمومية - التي تختلف اختلافًا كليًّا عن البرمجة التقليدية - باستعمال الجبر المباشر الذي يساعد على فهم ميكانيك الكم الأساسي. فنستهل ذلك بعرض مقدمة لخوارزميات الحوسبة الكمومية وتنفيذها على أجهزة كمومية حقيقية، ثم نشرح إحدى خوارزميات الكم ووصفها بطريقة موجزة ومستقلة، ثم نوضح كيفية تنفيذها على الحاسوب الكمومي لشركة IBM، وأخيرًا نناقش نتائج التنفيذ فيما يتعلق بالاختلافات بين المحاكاة وتشغيل الأجهزة الفعلية.
تقدم هذه المقالة الخوارزميات الكمومية لعلماء الحاسوب والمهندسين وتوفر مخططًا لتطبيقاتها.
المقدمة
تستغل الحوسبة الكمومية التأثيرات الميكانيكية الكمومية - وخاصةً التراكب والتشابك الكمومي - لتنفيذ عمليات حسابية أشد كفاءة. ولدى مقارنتها بالحوسبة الرقمية التقليدية نجد أنها تقلل من وقت التنفيذ ومن استهلاك الطاقة إلى حدٍّ بعيد. وقد أدت هاتان الميزتان إضافة إلى التقدم المطرد في تصنيع المواد النانوية وتباطؤ قوانين توسيع الأجهزة التقليدية (مثل قانون مور) إلى اهتمام كبير بالأمن التجاري والوطني والاستثمار في تكنولوجيا الحوسبة الكمومية في 2010م. وثمة إجماع الآن على أن التفوق الكمومي وشيك الحدوث؛ أي نقطة التحول التي يُجري فيها الحاسوب الكمومي عملية حسابية (ربما غير مهمة) استعصى إجراؤها في حاسوب تقليدي عملاق.
ومع أن الأساس الرياضي للحوسبة الكمومية، ونموذج البرمجة، ومعظم خوارزميات الكم، نُشرت منذ عقود (بدأت في تسعينيات القرن الماضي)، فإنها لم تلق الاهتمام اللازم إلا على نطاق ضيق جدًّا. ونعتقد أن الوقت قد حان لجعل الخوارزميات الكمومية وتطبيقاتها في متناول مجموعة واسعة من الباحثين والمطورين في علوم الحاسوب وهندسة البرمجيات وغيرها من المجالات.
يختلف نموذج البرمجة الكمومية اختلافًا كبيرًا عن برمجة الحواسيب التقليدية؛ إذ تهيمن على هذا النموذج الفيزياء والرموز الجبرية التي تعرض في بعض الأحيان حواجز دخول غير ضرورية لعلماء الحاسوب والرياضيات.
نقدم في هذه المقالة وصفًا موجزًا للحوسبة الكمومية والخوارزميات الكمومية الأساسية. ونظرًا لتوفر أجهزة الحواسيب الكمومية الحقيقية (مثل QX من IBM) الآن في الخدمة السحابية، فإن النتائج المقدمة في هذه المقالة هي من تجارب أجهزة محاكاة حقيقية لمجموعة بيانات إدخال صغيرة. ثمة دراسات شمولية أخرى للخوارزميات الكمومية أكثر عمقًا، موجهة لجمهور مختلف ولكن من دون تطبيقات فعلية.
1- نموذج برمجة الحوسبة الكمومية The Quantum Computing Programming Model
البت الكمومي هو نظام ميكانيكي كمومي ثنائي البعد يعبَّر عنه بالحالة state:
|Φ〉 = α|0〉 + β|1〉 (1)
حيث: و هو اختصار لمتجهات ترميز الحالتين الأساسيتين، و α و β عددان عقديان يحققان |α|2 + |β|2 = 1. إذا قِيس البت الكمومي، فسيُرجع قيمة البت التقليدية 0 باحتمال |α|2 أو البت 1 باحتمال |β|2. يغيِّر البت الكمومي (أو نظام البتات الكمومية) حالته بالمرور بسلسلة من التحولات الواحدية. يوصف التحول الواحدي بمصفوفة U ذات مدخلات عقدية. وتكون المصفوفة U واحدية إذا حققت:
UU+ = U+U = I (2)
حيث U+ هي منقول المرافق العقدي لـ U و I هي المصفوفة الواحدية.
تتطور حالة البت الكمومي |Φ〉 = α|0〉 + β|1〉 تحت تأثير المصفوفة المربعة U 2 × 2 وفقًا لـ:
(3)
توصف الحالة المشتركة لنظام البتات الكمومية بواسطة الجداء الموتِّري tensor product ⊗ (الجداء الخارجي). فمثلًا، إذا كان لدينا ثلاثة بتات كمومية، كل منها موجود في الحالة
|γj〉 = αj|0〉 + βj|1〉، لكل j=1,2,3 ، فإن الحالة المشتركة هي:
(4)
(5)
قد ينتج عن قياس البتات الكمومية الثلاثة أيٌّ من متجهات الأساس الثمانية، لكل منها الاحتمال المرتبط به. يبيِّن هذا المثال أن مجال الحالة ينمو نموًّا أسيًّا في عدد البتات n وأن عدد المتجهات الأساس هو 2n بوجه عام.
وقياسًا على البوابات التقليدية (مثل NOT و AND) تُسمى العملية الأساسية على البت الكمومي بوابة، وهي تحويل واحدي U. والبوابات الواحدية قابلة للانعكاس خلافًا للبوابات التقليدية، ومن ثَم فإن عدد البتات الكمومية في الدخل يساوي دائمًا عدد البتات الكمومية في الخرج. يصف الجدول (1) البوابات الأكثر شيوعًا. البوابة X هي النسخة الكمومية من بوابة NOT. والبوابة CNOT أو "controlled NOT" تعطي نفي بت الهدف إذا كان بت التحكم هو 1 فقط. وبوابة توفولي Toffoli أو "controlled-controlled NOT" هي النسخة الكمومية (القابلة للانعكاس) من البوابة AND، وهي تعطي نفي بت الهدف إذا وفقط إذا كان كلٌّ من بتَّي التحكم هو 1. تسمى مجموعة البوابات التي يمكنها تنفيذ جميع الحسابات الكمومية المحتملة مجموعة بوابة شاملة universal gate set. تشكل مجموعة جميع البوابات الواحدية (أي التي تعمل على بت كمومي واحد) وبوابات CNOT الثنائية (أي التي تعمل على بتَّين) مجموعة بوابات شاملة. باختصار، المجموعة {H,T,CNOT} هي مجموعة شاملة. وكذلك فإن بوابة توفولي في حدِّ ذاتها مجموعة شاملة.
تتكون الخوارزمية الكمومية من ثلاث خطوات: (1) ترميز البيانات إلى حالات مجموعة من البتات الكمومية المدخلة (قد تكون بتات تقليدية أو كمومية)، (2) تطبيق سلسلة من البوابات الكمومية على هذه المجموعة من المدخلات، (3) قياسات لواحدة أو أكثر من البتات الكمومية في النهاية للحصول على نتيجة يمكن تفسيرها على نحو تقليدي.
الجدول (1): البوابات الكمومية الشائعة الاستعمال.
التأثيران الميكانيكيان الكموميان اللذان يمكن أن تستغلهما الخوارزميات الكمومية للتفوق على الخوارزميات التقليدية هما تراكب الحالات superposition of states والتشابك entanglement. أما التراكب فيعني أن كل بتّ كمومي يكون قبل القياس في كلتا الحالتين متزامنًا مع احتمال يتناسب مع مطال العامل السابق. وأما التشابك فهو نوع من الترابط الذي ليس له شبيه في الخوارزميات التقليدية. على سبيل المثال، عندما تكون الجزيئات الدورانية متشابكة، فإن روابطها تدور ليس فقط في اتجاه واحد ولكن في جميع الاتجاهات. وبسبب عدم التشابه هذا، لا يمكن محاكاته بسهولة تقليديًّا، ومن ثَم فهو تأثير يمكن أن يُحْدث ميزة كمومية (أي إن أداء الحواسيب الكمومية أفضل من أداء الحواسيب التقليدية). يتمثل التحدي الرئيسي في تصميم خوارزمية كمومية في زيادة هذين التأثيرين الكموميين.
2- التطبيق على حاسوب كمومي حقيقي Implementations on a real quantum computer
في هذه المقالة، نفترض أن أجهزة الحاسوب الكمومية لدى IBM متاحة للعموم. في معظم الحالات، نضع في الحسبان على وجه التحديد ibmqx4، وهو حاسوب ذو 5 بتات كمومية، على الرغم من أننا في بعض الحالات نفكر أيضًا في ibmqx5، وهو حاسوب ذو 16 بت كمومي.
هناك العديد من المواضيع التي يجب مراعاتها عند تطبيق خوارزمية على أجهزة الحاسوب الكمومية الحقيقية، على سبيل المثال:
- ما هي مجموعة البوابات المتاحة التي يمكن للمستعمل تحديد الخوارزمية الخاصة بها؟
- ما هي البوابات الفيزيائية المطبقة بالفعل؟
- ما هي ارتباطات البتات الكمومية qubit (على سبيل المثال، أيَّ أزواج من البتات الكمومية يمكن تطبيقها على بوابات ثنائية الكمومية)؟
- ما هي مصادر الضجيج (أي الأخطاء)؟
نناقش أولًا مجموعة البوابات المتاحة. إن البوابات المتاحة في واجهة IBM الخاصة بالنموذج ibmqx4 هي:
(6) {I, X, Y, Z, H, S ,S+, T, T+, U1(λ), U2(λ,Φ), U3(λ,Φ, θ), CNOT}
نلاحظ أن CNOT هي البوابة الوحيدة التي تعمل بطريقة 2-qubit في هذه المجموعة، وأن جميع البوابات الأخرى تعمل على بت واحد. تظهر معظم هذه البوابات في الجدول (1). البوابات U1(λ), U2(λ,Φ), U3(λ,Φ, θ) هي بوابات ذات محددات مستمرة، وتعرَّف كما يلي:
(7) , ,
نلاحظ أن U3(λ,Φ, θ) هي بوابة اعتباطية ذات بت كمومي واحد. البوابات المدرجة في المعادلة (6) توفرها شركة IBM لتناسب المستعمل، لكنها ليست البوابات التي تُنفَّذها فعليًّا بواسطة الحاسوب الكمومي للشركة. لدى IBM مترجم لترجمة البوابات في (6) إلى منتجات بوابات من مجموعة بوابات فعلية. تتكون البوابة الفعلية التي تستعملها شركة IBM من ثلاثة بوابات:
(8)
هنا، هو دوران البت بزاوية حول محوره x، وهو يتوافق مع مصفوفة مشابهة للهادامارد Hadamard:
(9)
بعض البوابات التي يبرمجها المستعمل قد تحتاج إلى أن تتحلل وتتفكك إلى بوابات فيزيائية متعددة، قد تؤدي إلى خوارزمية فيزيائية أطول. على سبيل المثال، تقسَّم بوابة X إلى ثلاث بوابات: بوابتين تحيطان ببوابة U1(λ) واحدة.
يعد اتصال الحاسوب مشكلة أخرى مهمة؛ إذ غالبًا ما تُكتب خوارزميات الكتب التعليمية لجهاز كامل الوصلات، وهذا يعني أنه يمكن تطبيق بوابة ثنائية البت على أيِّ اثنين من البتات. عمليًّا، قد لا يكون لأجهزة الحاسوب الكمومية كامل الوصلات. في ibmqx4، الذي يحتوي على 5 بتات كمومية، توجد 6 وصلات. على سبيل المثال، لا يوجد سوى 6 أزواج من البتات التي يمكن تطبيقها على بوابة CNOT. على النقيض من ذلك، يسمح نظام 5-بت كامل الوصلات بتطبيق CNOT على 20 زوجًا من البتات الكمومية المختلفة. وعلى هذا فهناك 14 "وصلة مفقودة". ولحسن الحظ، هناك طرق لإنشاء وصلات فعالة عن طريق تسلسل ذكي للبوابات. على سبيل المثال، بوابة CNOT مع عدد j من البت الكمومي كعنصر تحكم و k بت كمومي كهدف يمكن عكسه (أي j هو الهدف و k هو التحكم) عن طريق تطبيق بوابات Hadamard على كل بت قبل CNOT وبعدها، أي:
(10) CNOTkj = (H ⊗ H)CNOTjk(H ⊗ H)
وبالمثل، يوجد تسلسل بوابة لإنشاء CNOT بين البتات j و l إذا كان توفرت وصلات بين j و k وبين k و l، كما يلي:
(11) CNOTjl = CNOTklCNOTjkCNOTklCNOTjk
وهكذا، وباستعمال (10) و (11)، يمكن تعويض النقص في الوصلات على حساب استعمال بوابات إضافية.
أخيرًا، عند تنفيذ خوارزمية كمومية، من المهم مراعاة مصادر الضجيج في الحاسوب. عادةً ما يكون المصدران الرئيسيان للضجيج: عدم موثوقية البوابة وعدم التجانس.
أما عدم موثوقية البوابة فيعني أن البوابة التي حددها المستعمل لا تتوافق تمامًا مع البوابة المنفذة فعليًّا. وغالبًا ما يكون عدم موثوقية البوابات المتعددة البتات أسوأ من عدم موثوقية البوابات ذات البت الواحد، لذلك يجري تقليل عدد البوابات المتعددة البتات في الخوارزمية.
وأما عدم الترابط Decoherence فيعني أن الحاسوب الكمومي يفقد "الكمومية" “quantumness” تدريجيًّا بمرور الوقت، ويصبح أكثر شبهًا بالكائن التقليدي. وإذا حدث عدم ترابط كامل، لم يعد الحاسوب قادرًا على الاستفادة من التأثيرات الكمومية. ويزيد هذا من الضجيج تدريجيًّا مع استمرار الخوارزمية الكمومية مع الزمن، ويحد في النهاية من عمق الخوارزميات الكمومية التي يمكن تنفيذها على أجهزة الحاسوب الكمومية.
تجدر الإشارة إلى أن وحدات البت المختلفة تتناقص بمعدلات مختلفة، ويمكن استعمال هذه المعلومات لتصميم خوارزمية تصميمًا أفضل. في ibmqx4، يكون للبتات الكمومية q1 و q3 على التوالي أوقات فك ارتباط طويلة وقصيرة، لذلك قد يُلجأ إلى تجنب q3 واستعمال q1 بدلًا من ذلك.
3- فئات خوارزمية الكم Quantum Algorithm Classes
غالبًا ما تُجمَّع الخوارزميات الكمومية في خوارزميات المحاكاة الكمومية أو الخوارزميات القائمة على نظرية الأعداد، أو القائمة على أوراكل. على سبيل المثال الموقع الممتاز Quantum Zoo site، يعتمد إلى حد بعيد على نماذج الخوارزميات الكمومية الرئيسية التي تستعملها هذه الخوارزميات. هذه النماذج هي: تحويل فورييه الكمومي (QFT)، ومشغل غروفر (Grover (GO، وطريقة (Harrow/Hassidim/Lloyd (HHL للأنظمة الخطية، ومحلل القيمة الذاتية التغيري (variational quantum eigenvalue solver (VQE، ومحاكي هاملتون المباشر (direct Hamiltonian simulation (SIM. في الحقيقة، إن معظم الخوارزميات الكمومية المعروفة المعتمدة على هذه النماذج في التجميع رائعة وربما تكون مفاجئة. وإن اكتشاف نماذج إضافية للخوارزميات الكمومية، التي ينبغي أن تكون موضوع بحث مكثف، يمكن أن يجعل الخوارزميات الكمومية قابلة للتطبيق في مجموعة واسعة من التطبيقات.
هذا ومن المفضَّل تجميع الخوارزميات الكمومية حسب مجالات التطبيق: حساب التوابع العكسية، وتطبيقات نظرية الأعداد، وتطبيقات الجبر، وتطبيقات المخطط البياني، وتطبيقات التعلم، ومحاكاة كمومية، والأدوات المساعدة.
خوارزمية غروفر GROVER’S ALGORITHM
1- تعريف المشكلة والخلفية
تتيح خوارزمية Grover كما هو موضح في البداية إمكان العثور على عنصر محدد داخل قاعدة بيانات مرتبة عشوائيًا لعناصر عددها N باستعمال عمليات من رتبة (مع الاحتمال>1/2 ). على النقيض من ذلك، يتطلب الحاسوب التقليدي O(N) عملية لتحقيق ذلك. لذلك، توفر خوارزمية Grover تسريعًا تربيعيًا يفوق خوارزمية تقليدية مثالية. وقد تبين أيضًا أن خوارزمية Grover هي المثلى، بمعنى أنه لا يمكن لآلة Turing الكمومية القيام بذلك في أقل من عملية.
ومع أن خوارزمية Grover شائعة الاستعمال باعتبارها مفيدة للبحث في قاعدة بيانات، فإن الأفكار الأساسية التي تشكل هذه الخوارزمية قابلة للتطبيق في سياق أوسع بكثير. يمكن استعمال هذا النهج لتسريع خوارزميات البحث حيث يمكن إنشاء "أوراكل كمومي" “quantum oracle” بحيث يميز الإبرة من كومة القش، وليس من الضروري أن تكون الإبرة والقش جزءًا من قاعدة البيانات. فمثلًا، يمكن استعماله للبحث عن عددين صحيحين 1<a <b بحيث يكون ab = n لبعض أعداد n، وهذا يؤدي إلى خوارزمية التحليل إلى عوامل factoring. بالطبع لن يتطابق أداء خوارزمية Grover مع أداء خوارزمية Shor لهذا الغرض.
يمكن تقليل تنفيذ التنبؤ الكمومي إلى بناء دارة كمومية تقلب البت الكمومي الثانوي q ، إذا جرى تقييم التابع f(x) إلى 1 في حالة الدخل x. يعرَّف التابع f(x) بواسطة:
(12)
حيث x= (x1,x2,…xn) هي متغيرات ثنائية و x* هو العنصر المطلوب.
قد يبدو من المفارقات في البداية أن هناك حاجة إلى خوارزمية لإيجاد x* إذا كان من الممكن بناء هذا التابع. المفتاح هنا هو أن f(x) تحتاج إلى معرفة x* فقط ؛ فهي تشبه الفرق بين تدوين المعادلة وحل المعادلة. على سبيل المثال، من السهل التحقق أن ناتج ضرب a و b يساوي n، ولكن يصعب إيجاد العوامل للعدد n. هنا ننفذ نسخة بسيطة من خوارزمية غروفر. أي إن التنبؤ الكمومي الذي نستعمله بسيط للغاية. لنفرض أن x = (x1,x2)؛ ونريد أن نجد x* بحيث يكون x1*=1 و x2*=1. ومع أن إيجاد x* شيء تافه، فإننا نتابع كما لو كان ليس كذلك. هذا يعني في الأساس أن f (x) هو بوابة AND. وإن البحث عن بوابة AND في مجموعة البوابات الكمومية سيؤدي إلى خيبة أمل، نظرًا لأن بوابة AND غير قابلة للعكس، ولا يمكن أن تكون جزءًا من دارة كمومية. ومع ذلك، تشبه بوابة Toffoli بوابة AND التقليدية، ولكنها تأتي مع ميزة إضافية مفيدة لأغراضنا. لبوابة Toffoli ثلاث وحدات بت مدخلات، وثلاث بتات كمومية مخرجات. أول اثنين من البتات غير معدلة، ويُقلب البت الثالث إذا كان البتان الأول والثاني هما 1. وبعبارة أخرى، تنفِّذ بوابة Toffoli التنبؤ الكمومي المرغوب فيه حيث يكون أول مدخلين هما x1 و x2 والبت الثالث هو البت المساعد q. ويكون سلوك أوراكل (التنبؤ) بوجه عام كما يلي:
|x〉 |q〉 → |x〉 |f(x)⊗q〉
2- تنفيذ الخوارزمية على حاسوب IBM ذو qubit-5
يوضح الشكل (1) الدارة التي صُمِّمت لتناسب الحاسوب الكمومي ibmqx4. تتكون الدارة من مهيئات الحالة (الفواصل الزمنية الأولى والثانية)، وبوابة Toffoli (الفواصل الزمنية الـ 13 التالية)، يليها المشغل 2|φ〉 〈φ| - I ) 7 فواصل زمنية)، والقياس (آخر فاصلين زمنيين). جرى استعمال q [0] (في تدوين السجل من الشكل 1) باعتباره البت المساعد q و q [1] و q [2] كـ x1 و x2. نلاحظ أن الحاسوب الكمومي يفرض قيودًا على مصدر بوابة CNOT وهدفها. لذا يجب توخي الحذر في اختيار وحدات البت المناسبة لتمثيل كل متغير حتى يمكن تنفيذ بوابات CNOT اللازمة. من الممكن التحايل على بعض القيود في المصدر والهدف من بوابات CNOT (على سبيل المثال، يمكن عكس المصدر والهدف)، ولكن هذا يتطلب زيادة عمق الدارة. استَعمل تطبيق أولي بوابةَ Toffoli التي استَعملت مثل هذا النهج، لكن الدارة كانت أعمق بكثير وكانت النتائج أدنى من النتائج مع الدارة في الشكل (1).
باستعمال جهاز محاكاة، تُنتج هذه الدارة الإجابة الصحيحة x = (1,1) في كل مرة. قام فريق بتنفيذ 1024 فاصل باستعمال ibmqx4 وحصل على x = (1,1) 662 مرة وعلى القيم (0 , 0) ، (0 , 1) ، و (1 , 0) 119 ، 101 ، و 142 مرة على التوالي. وهذا يدل على أن احتمال الحصول على الإجابة الصحيحة هو قرابة 65 ٪. يبدو أن الانحراف بين المحاكاة والحاسوب الكمومي يرجع إلى عمق الدارة مع الطبيعة التقريبية للحاسوب الكمومي. نلاحظ أن التنفيذ الأول لهذه الخوارزمية التي استَعملت بوابة Toffoli بعمق 23 (مقارنة بعمق 13 هنا) حصل على الإجابة الصحيحة خلال 48٪ من الوقت.
الشكل 1: الدارة التي جرى تنفيذها على جهاز الحاسوب الكمومي بـ 5 qubit من IBM (باستعمال ibmqx4). أول فاصلين زمنيين يتوافقان مع إعداد الحالة. الفواصل الزمنية الثلاثة عشر التالية تنفذ بوابة توفولي. تنفِّذ الفواصل الزمنية السبعة التالية المشغل 2|φ〉 〈φ| - I، ويُستعمل فاصلا الزمن الأخيران لمراقبة x1 و x2.
النتيجة
جرى تصميم دارة تنفذ نموذجًا لخوارزمية Grover على جهاز حاسوب IBM كمومي ذي 5-qubit، وكانت النتيجة ناجحة، أي إن الحاسوب الكمومي أكمل البحث بنجاح باحتمال أكبر من 50٪. ومع ذلك، فإن نسبة النجاح التي حصلنا عليها (وهي 65٪) أقل بكثير من نسبة 100٪ التي نحصل عليها بواسطة جهاز المحاكاة. من المرجح أن تسفر تنبؤات (أوراكل) الأكثر عمقًا وتعقيدًا عن نتائج أقل إرضاءً، وهذا يتماشى مع التجربة في تنفيذ أوراكل مع تنفيذ أعمق لبوابة توفولي.
الخاتمة
قدمنا في هذه المقالة مقدمة لخوارزميات الحوسبة الكمومية ونتائج تنفيذها على أجهزة كمومية حقيقية. وشرحنا إحدى الخوارزميات الكمومية، في محاولة لوصفها بطريقة موجزة ومستقلة؛ ووضحنا كيف يجري تنفيذها على الحاسوب الكمومي لشركة IBM، وأظهرنا نتائج تنفيذها. أملنا هو أن توفر تطبيقات الخوارزميات الكمومية مخططًا يمكن لمستعملي الحوسبة الكمومية اتباعه لتعرُّف الحوسبة الكمومية وتنفيذ خوارزمياتها الخاصة.
المراجع
[1] Patrick J. et al., “Quantum Algorithm Implementations for Beginners”, Los Alamos National Laboratory, Los Alamos, New Mexico, USA
[2] Scott Aaronson and Lijie Chen. “Complexity-theoretic foundations of quantum supremacy experiments.”, In Ryan O’Donnell, editor, 32nd Computational Complexity Conference, CCC 2017, July 6-9, 2017, Riga, Latvia, volume 79 of LIPIcs, pages 22:1–22:67. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2017.
[3] A. Ambainis. “Variable time amplitude amplification and a faster quantum algorithm for solving systems of linear equations.”, ArXiv e-prints, October 2010