Table of Contents

دارة الجمع (Full Adder)


هناك أنواع مختلفة من دوائر الجمع الثنائية مثل دائرة الجمع النصفي half adder ، و دائرة الجمع الكاملة full adder

برمجياً


يمكن بناء دائرة الجمع الكامل في الحاسوب الكمي بأستخدام بعض البوابات الكمية كما سنوضح في المثال التالي .

Full adder

OPENQASM 2.0;
include "qelib1.inc";

//تعريف مسجل كمومي مكون من 4 كيوبت
qreg q[4];

//تعريف مسجل كلاسيكي من 4 بتات
//من اجل حفظ المخررجات
creg c[4];

//المدخلات
x q[0]; //وضع المدخل الاول في حالة ال 1
reset q[1]; //وضع المدخل الثاني في حالة ال 0
barrier q[0], q[1], q[2], q[3];

//دائرة الجمع
ccx q[0], q[1], q[3];
cx q[0], q[1];
ccx q[1], q[2], q[3];
cx q[1], q[2];
cx q[0], q[1];

barrier q[0], q[1], q[2], q[3];

القياس
measure q[0] -> c[0];

measure q[1] -> c[1];

measure q[2] -> c[2];

measure q[3] -> c[3];

  • الخطوة الاولى (التعريف)

تعريف مسجل كمومي مكون من 4 كيوبت

qreg q[4];

تعريف مسجل كلاسيكي من 4 بتات من اجل حفظ المخررجات

creg c[4];
  • الخطوة الثانية (المدخلات)

وضع المدخل الاول(الكيوبت) في حالة ال 1

x q[0];

وضع المدخل الثاني(الكيوبت) في حالة ال 0

reset q[1]; 
  • الخطوة الثالثة (بناء دائرة الجمع)

و نستخدم بوابة توفولي (Toffoli gate) او (double controlled-NOT gate (CCX على الكيوبت الاول و الثاني و ثلاث

ccx q[0], q[1], q[3];

في هذه الخطوة نقوم بأضافة بوابة النفي المتحكم CX بين الكيوبت الاول و الكيوبت الثاني

cx q[0], q[1];

و نستخدم بوابة توفولي (Toffoli gate) او (double controlled-NOT gate (CCX على الكيوبت الثاني و الثالث و الرابع

ccx q[1], q[2], q[3];

نقوم ايضا في هذه المرحلة باستخدام بوابة CX والتي تقوم بعملية نفي بين الكيوبت الثاني و الثالث

cx q[1], q[2];

نقوم ايضا في هذه المرحلة باستخدام بوابة CX والتي تقوم بعملية نفي بين الكيوبت الاول و الثاني

cx q[0], q[1];
الخطوة الرابعة (القياس)

تقوم بقياس قيمة الكيوبت و تخزينها في البت الكلاسيكي المقابل

measure q[0] -> c[0];

measure q[1] -> c[1];

measure q[2] -> c[2];

measure q[3] -> c[3];
النتائج
النتيجة المتوقعة نظرياً

theoretical_result

النتيجة المرصودة عملياً

practical_result

الحاسوب الكمي المستخدم في التجربة

device_specifications

جرب هذه الدارة على موقع IBM