قياس التكلفة الحسابية
سنناقش الآن إطارًا رياضيًا يمكننا من قياس التكلفة الحسابية، مع التركيز على ما يحتاجه هذا الكورس تحديدًا. تحليل الخوارزميات وتعقيد الحوسبة مجالان كاملان قائمان بحد ذاتهما، وفيهما الكثير مما يمكن قوله حول هذه المفاهيم.
كنقطة بداية، لنتأمل الشكل التالي من الدرس السابق، الذي يمثل تجريدًا رفيع المستوى لعملية حسابية.
يمكن نمذجة العملية الحسابية نفسها أو وصفها بطرق متعددة، كبرنامج مكتوب بلغة Python، أو آلة تورينج، أو دائرة بوليانية، أو دائرة كمومية. سينصبّ تركيزنا على الدوائر (البوليانية والكمومية على حدٍّ سواء).
الترميزات وطول المدخل
لنبدأ بمدخل ومخرج المسألة الحسابية، واللذين سنفترض أنهما سلاسل ثنائية. يمكن استخدام رموز أخرى، لكننا سنبقي الأمور بسيطة لأغراض هذا النقاش بتقييد انتباهنا على المدخلات والمخرجات من نوع السلاسل الثنائية. من خلال السلاسل الثنائية يمكننا ترميز مجموعة متنوعة من الأشياء المثيرة للاهتمام التي قد تتعلق بها المسائل التي نريد حلّها، كالأعداد والمتجهات والمصفوفات والرسوم البيانية، فضلًا عن قوائم هذه الأشياء وغيرها.
على سبيل المثال، لترميز الأعداد الصحيحة غير السالبة يمكننا استخدام الترميز الثنائي. يسرد الجدول التالي الترميز الثنائي لأول تسعة أعداد صحيحة غير سالبة، إلى جانب الطو ل (أي العدد الإجمالي للبتات) لكل ترميز.
| العدد | الترميز الثنائي | الطول |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 1 | 1 |
| 2 | 10 | 2 |
| 3 | 11 | 2 |
| 4 | 100 | 3 |
| 5 | 101 | 3 |
| 6 | 110 | 3 |
| 7 | 111 | 3 |
| 8 | 1000 | 4 |
يمكننا بسهولة توسيع هذا الترميز ليشمل الأعداد الصحيحة الموجبة والسالبة على حدٍّ سواء، وذلك بإضافة بت الإشارة إلى التمثيلات إن أردنا. في بعض الأحيان يكون من المفيد أيضًا السماح بوجود أصفار بادئة في التمثيلات الثنائية للأعداد الصحيحة غير السالبة، إذ لا تغير قيمة العدد المُرمَّز، لكنها تتيح ملء سلسلة أو كلمة ذات حجم ثابت.
استخدام الترميز الثنائي لتمثيل الأعداد الصحيحة غير السالبة أمر شائع وفعّال، لكن لو أردنا لاخترنا طريقة مختلفة لتمثيل هذه الأعداد باستخدام سلاسل ثنائية، كتلك المقترحة في الجدول التالي. تفاصيل هذه البدائل ليست مهمة لهذا النقاش — الهدف فقط هو توضيح أن لدينا خيارات فيما يتعلق بالترميزات التي نستخدمها.
| العدد | الترميز الأحادي | الترميز المعجمي |
|---|---|---|
| 0 | ||
| 1 | 0 | 0 |
| 2 | 00 | 1 |
| 3 | 000 | 00 |
| 4 | 0000 | 01 |
| 5 | 00000 | 10 |
| 6 | 000000 | 11 |
| 7 | 0000000 | 000 |
| 8 | 00000000 | 001 |
(في هذا الجدول، يمثل الرمز السلسلة الفارغة، التي لا تحتوي على أي رموز وطولها يساوي الصفر. وبطبيعة الحال، لتجنب مصدر واضح للالتباس، نستخدم رمزًا خاصًا مثل للتعبير عن السلسلة الفارغة بدلًا من عدم كتابة شيء حرفيًا.)
يمكن ترميز أنواع أخرى من المدخلات، كالمتجهات والمصفوفات، أو الأشياء الأكثر تعقيدًا كأوصاف الجزيئات، كسلاسل ثنائية أيضًا. تمامًا كما فعلنا مع الأعداد الصحيحة غير السالبة، يمكن اختيار أو ابتكار مجموعة متنوعة من مخططات الترميز المختلفة. مهما كا ن المخطط الذي نتوصل إليه لترميز مدخلات مسألة معينة، نفسّر طول سلسلة المدخل باعتباره ممثلًا لحجم نسخة المسألة المراد حلّها.
على سبيل المثال، عدد البتات اللازمة للتعبير عن عدد صحيح غير سالب في الترميز الثنائي، والذي يُرمز إليه أحيانًا بـ يُعطى بالصيغة التالية.
بافتراض أننا ن ستخدم الترميز الثنائي لترميز مدخل مسألة تحليل الأعداد الصحيحة إلى عواملها، يكون طول المدخل للعدد هو لاحظ تحديدًا أن طول (أو حجم) المدخل ليس هو نفسه؛ فحين يكون كبيرًا لا نحتاج إلى هذا العدد الهائل من البتات للتعبير عن في الترميز الثنائي.
من وجهة نظر رسمية بحتة، عند دراسة أي مسألة أو مهمة حسابية، ينبغي أن يكون مفهومًا أنه تم اختيار مخطط محدد لترميز أي أشياء مُعطاة كمدخل أو مُنتَجة كمخرج. يتيح ذلك النظر إلى الحسابات التي تحل مسائل مثيرة للاهتمام باعتبارها تحويلات مجردة من مدخلات سلاسل ثنائية إلى مخرجات سلاسل ثنائية.
تفاصيل كيفية ترميز الأشياء كسلاسل ثنائية لا بد أن تكون مهمة لهذه الحسابات على مستوى ما. لكن في الغالب لا نشغل بالنا كثيرًا بهذه التفاصيل عند تحليل التكلفة الحساب ية، لتجنب الخوض في تفاصيل ذات أهمية ثانوية. المنطق الأساسي هو أننا نتوقع أن تكون التكلفة الحسابية للتحويل بين مخططات الترميز "المعقولة" ذهابًا وإيابًا ضئيلةً مقارنةً بتكلفة حل المسألة الفعلية. في الحالات التي لا ينطبق فيها ذلك، يمكن (ويجب) توضيح التفاصيل.
على سبيل المثال، عملية حسابية بسيطة جدًا هي التحويل بين التمثيل الثنائي لعدد صحيح غير سالب والترميز المعجمي له (الذي لم نشرحه بالتفصيل، لكن يمكن استنتاجه من الجدول أعلاه). لهذا السبب، لن تختلف التكلفة الحسابية لتحليل الأعداد الصحيحة إلى عواملها اختلافًا كبيرًا إذا قررنا التبديل من استخدام أحد هذين الترميزين إلى الآخر للمدخل من ناحية أخرى، ترميز الأعداد الصحيحة غير السالبة في الترميز الأحادي يؤدي إلى تضخم أسّي في العدد الإجمالي للرموز المطلوبة، ولهذا لا نعتبره مخطط ترميز "معقولًا".