آلة البيع
آلة العداد أو آلة العداد الآلية هي آلة مجردة تُستخدم في المنطق الصوري وعلوم الحاسوب النظرية لنمذجة العمليات الحسابية . وهي أبسط أنواع آلات التسجيل الأربعة . تتألف آلة العداد من مجموعة من سجل واحد أو أكثر غير محدود ، يمكن لكل منها تخزين عدد صحيح غير سالب واحد، وقائمة من تعليمات الحساب والتحكم (عادةً ما تكون متسلسلة) التي تتبعها الآلة. تُستخدم آلة العداد عادةً في تصميم الخوارزميات المتوازية وفقًا لمبدأ الاستبعاد المتبادل. عند استخدامها بهذه الطريقة، تُستخدم آلة العداد لنمذجة الخطوات الزمنية المنفصلة لنظام حسابي فيما يتعلق بالوصول إلى الذاكرة. من خلال نمذجة العمليات الحسابية فيما يتعلق بالوصول إلى الذاكرة لكل خطوة حسابية، يمكن تصميم الخوارزميات المتوازية بطريقة تتجنب التداخل، أي عملية الكتابة المتزامنة بواسطة خيطين (أو أكثر) إلى نفس عنوان الذاكرة .
تستطيع آلات العدّ المزودة بثلاثة عدادات حساب أي دالة تكرارية جزئية لمتغير واحد. أما آلات العدّ المزودة بعدادين فهي كاملة تورينج : إذ يمكنها محاكاة أي آلة تورينج مشفرة بشكل مناسب. بينما تستطيع آلات العدّ المزودة بعداد واحد فقط التعرف على مجموعة شاملة مناسبة من اللغات المنتظمة ومجموعة جزئية من اللغات الحتمية الخالية من السياق . [ 1 ]
الميزات الأساسية
بالنسبة لنموذج آلة عدّ معينة، تكون مجموعة التعليمات صغيرة جدًا - من تعليمة واحدة إلى ست أو سبع تعليمات فقط. تحتوي معظم النماذج على عدد قليل من العمليات الحسابية وعملية شرطية واحدة على الأقل (إذا كان الشرط صحيحًا، فاقفز). تم اختيار ثلاثة نماذج أساسية ، يستخدم كل منها ثلاث تعليمات، من المجموعة التالية. (الاختصارات اختيارية).
- CLR (r): مسح السجل r . (ضبط قيمة r إلى الصفر.)
- INC (r): زيادة محتويات السجل r .
- DEC (r): قم بإنقاص محتويات السجل r .
- CPY (r j , rk ) : نسخ محتويات السجل r j إلى السجل r k مع ترك محتويات r j سليمة.
- JZ (r, z): إذا كان السجل r يحتوي على صفر، فانتقل إلى التعليمات z، وإلا فاستمر في التسلسل.
- JE (r j , rk , z): IF the contents of register r j Equals the contents of register r k THEN Jump to instruction z ELSE continue in sequence.
بالإضافة إلى ذلك، تحتوي الآلة عادةً على تعليمات HALT، والتي توقف الآلة (عادةً بعد حساب النتيجة).
باستخدام التعليمات المذكورة أعلاه، ناقش العديد من المؤلفين آلات عدّ معينة:
- المجموعة 1: { INC (r), DEC (r), JZ (r, z) }, (Minsky (1961, 1967), Lambek (1961))
- المجموعة 2: { CLR (r), INC (r), JE (r j , r k , z) }, (Ershov (1958), Peter (1958) كما فسرها Shepherdson–Sturgis (1964); Minsky (1967); Schönhage (1980))
- المجموعة 3: { INC (r)، CPY (r j , r k )، JE (r j , r k , z) }، (Elgot–Robinson (1964)، Minsky (1967))
تتمتع النماذج الأساسية الثلاثة لآلات العدّ بنفس القدرة الحسابية، إذ يمكن اشتقاق تعليمات أي نموذج من تعليمات نموذج آخر. جميعها تُعادل القدرة الحسابية لآلات تورينج . ونظرًا لأسلوب معالجتها الأحادي، فإن آلات العدّ عادةً ما تكون أبطأ بشكل كبير من آلات تورينج المماثلة.
أسماء بديلة، نماذج بديلة
تُعرف نماذج آلات العد بأسماء مختلفة قد تساعد في تمييزها بناءً على خصائصها. فيما يلي، تُعدّ التعليمة "JZDEC ( r )" تعليمة مركبة تختبر ما إذا كان المسجل r فارغًا؛ إذا كان كذلك، فانتقل إلى التعليمة I z ، وإلا فقم بإنقاص محتويات r.
- آلة مينسكي ، نسبةً إلى مارفن مينسكي (1961) الذي وضع النموذج بشكل رسمي. آلة المعداد ، وهو الاسم الذي أطلقه لامبيك (1961) على تبسيطه لنموذج ميلزاك (1961)، وهو الاسم الذي أطلقه عليه بولوس-بورغيس-جيفري (1974). آلة لامبيك ، وهو اسم بديل أطلقه بولوس-بورغيس-جيفري (1974) على آلة المعداد. عادةً ما تستخدم مجموعة التعليمات (1)، ولكن تنفيذ التعليمات ليس تسلسليًا افتراضيًا، لذا يظهر المعامل الإضافي 'z' لتحديد التعليمات التالية بعد INC، وكبديل في JZDEC.
- { INC ( r, z ), JZDEC ( r, z true , z false ) }
- آلة البرمجة ، حاسوب البرمجة ، هي الأسماء التي أطلقها مينسكي (1967) على هذا النموذج لأنه، مثل الحاسوب ، تُنفذ تعليماته بالتسلسل ما لم تنجح قفزة شرطية. يستخدم (عادةً) مجموعة التعليمات (1)، ولكن يمكن توسيعه على غرار نموذج شيفيرسون-ستورجيس. غالبًا ما يتم تقسيم JZDEC إلى أجزاء.
- { INC ( r ), CPY ( r s , r d ), JZ ( r, z true )}
- آلة الخلف ، لأنها تستخدم "عملية الخلف" الخاصة ببديهيات بيانو ، وتشبهها إلى حد كبير . تُستخدم كأساس لنموذج ذاكرة الوصول العشوائي للخلف . تستخدم مجموعة التعليمات (2) التي وضعها شونهاج، على سبيل المثال، كأساس لنموذجي RAM0 وRAM1 اللذين يؤديان إلى نموذج آلة المؤشر SMM الخاص به ، [ 2 ] [ 3 ] والذي ناقشه فان إمده بواس بإيجاز أيضًا: [ 4 ] [ 5 ]
- { CLR ( r )، INC ( r )، JE ( r j , r k , z ) }
- نموذج إلجوت-روبنسون ، المستخدم لتعريف نموذج RASP الخاص بهم (1964). يتطلب هذا النموذج سجلًا فارغًا واحدًا في البداية (مثلًا [r0] = 0). (قاموا بتطوير النموذج نفسه باستخدام العنونة غير المباشرة من خلال استخدام سجل إضافي يُستخدم كسجل "فهرسة").
- { INC (r), CPY ( r s , r d ), JE ( r j , r k , z ) }
- آلة شيبردسون-ستورجيس ، لأن هؤلاء المؤلفين قد أوضحوا نموذجهم رسميًا في شرح مبسط (1963). تستخدم مجموعة التعليمات (1) معززة بتعليمات إضافية ملائمة (JNZ تعني "القفز إذا لم يكن صفرًا"، وتُستخدم بدلًا من JZ):
- { INC ( r ), DEC ( r ), CLR ( r ), CPY ( r j , rk ), JNZ ( r, z ), J ( z ) }
- آلات عدّ أخرى : يُبيّن مينسكي (1967) كيفية بناء النماذج الأساسية الثلاثة (البرنامج/مينسكي/معداد لامبيك، والنموذج اللاحق، وإلغوت-روبنسون) من مجموعة التعليمات المتاحة الموضحة في الفقرة الافتتاحية لهذه المقالة. يختلف نموذج ميلزاك (1961) اختلافًا كبيرًا عن النموذج السابق، إذ يتضمن عمليتي "الجمع" و"الطرح" بدلًا من "الزيادة" و"الإنقاص". تتطلب براهين مينسكي (1961، 1967) التي تُثبت أن سجلًا واحدًا يكفي لإثبات تكافؤ تورينج، استخدام التعليمتين {MULtiply k, وDIV k} لترميز وفك ترميز عدد غودل في السجل الذي يُمثل العملية الحسابية. يُوضح مينسكي أنه في حال توفر سجلين أو أكثر، فإن التعليمات الأبسط مثل INC وDEC كافية (لكن لا يزال عدد غودل مطلوبًا لإثبات تكافؤ تورينج ؛ وقد تم إثبات ذلك أيضًا في إلغوت-روبنسون 1964).
التعريف الرسمي
تتكون آلة العد من:
- سجلات ذات قيم عددية صحيحة غير محدودة ومُصنّفة : هي مجموعة محدودة (أو غير محدودة في بعض النماذج) من السجلات r₀ ... rₙ ، حيث يمكن لكل سجل منها أن يحتوي على أي عدد صحيح غير سالب (0، 1، 2، ... - أي غير محدود). تُجري هذه السجلات عملياتها الحسابية الخاصة؛ وقد تحتوي على سجل خاص واحد أو أكثر، مثل "المُجمِّع" (انظر آلة الوصول العشوائي لمزيد من المعلومات حول هذا الموضوع).
- سجل حالة يُخزّن/يُحدّد التعليمات الحالية المراد تنفيذها. هذا السجل محدود ومنفصل عن السجلات المذكورة أعلاه؛ لذا يُعدّ نموذج آلة العدّ مثالًا على بنية هارفارد.
- قائمة التعليمات المتسلسلة والمُعَلَّمة : قائمة محدودة من التعليمات I 0 ... I m . لا يقع مخزن البرنامج (تعليمات آلة الحالة المحدودة ) في نفس "الحيز" المادي للمسجلات. عادةً، ولكن ليس دائمًا، كما هو الحال في برامج الحاسوب، تُدرج التعليمات بترتيب تسلسلي؛ ما لم تنجح عملية القفز، يستمر التسلسل الافتراضي بالترتيب العددي. كل تعليمة في القائمة تنتمي إلى مجموعة صغيرة جدًا، ولكن هذه المجموعة لا تشمل التعليمات غير المباشرة. تاريخيًا، استمدت معظم النماذج تعليماتها من هذه المجموعة.
- { زيادة (r)، إنقاص (r)، مسح (r)؛ نسخ (r j ، r k )، قفزة مشروطة إذا كانت محتويات r=0، قفزة مشروطة إذا كانت r j = r k ، قفزة غير مشروطة، إيقاف }
- قامت بعض النماذج إما بتجزئة بعض ما سبق إلى تعليمات بدون معلمات، أو دمجها في تعليمة واحدة مثل "Decrement" مسبوقة بـ "JZ ( r, z )" (قفزة شرطية إذا كانت القيمة صفرًا). لا تُحدث تجزئة التعليمات أو تضمين تعليمات مُيسّرة أي تغيير في القوة المفاهيمية، حيث يمكن ترجمة أي برنامج من أحد النماذج إلى النموذج الآخر بسهولة.
- تتم مناقشة مجموعات التعليمات البديلة في الملحق الخاص بنماذج آلة التسجيل .
مثال: انسخ العدد من السجل رقم 2 إلى السجل رقم 3
يوضح هذا المثال كيفية إنشاء ثلاث تعليمات مفيدة أخرى: clear و unconditional jump و copy .
- CLR ( j ): مسح محتويات السجل r j إلى الصفر.
- J ( z ): الانتقال غير المشروط إلى التعليمات I z .
- CPY ( s, d ): انسخ محتويات سجل المصدر r s إلى سجل الوجهة r d . (انظر: حاسوب ذو مجموعة تعليمات واحدة# بنية مُشغَّلة بالنقل )
بعد ذلك، سيحتوي r s على عدده الأصلي (على عكس MOVE الذي يفرغ سجل المصدر، أي يمسحه إلى الصفر).
تُستخدم المجموعة الأساسية (1) كما هو مُعرّف هنا:
| تعليمات | التأثير على السجل "j" | التأثير على سجل عداد التعليمات ICR | ملخص |
|---|---|---|---|
| INC ( j ) | [j] +1 → j | [IC] +1 → IC | قم بزيادة محتويات المسجل j؛ التعليمات التالية |
| DEC ( j ) | [j] -1 → j | [IC] +1 → IC | قم بإنقاص محتويات المسجل j؛ التعليمات التالية |
| JZ ( j, z) | إذا كان [j] = 0 فإن I z → IC، وإلا فإن [IC] + 1 → IC | إذا كانت محتويات السجل j تساوي 0، فاستخدم التعليمة z، وإلا فاستخدم التعليمة التالية. | |
| وقف |
الشروط الأولية
في البداية، يحتوي السجل رقم ٢ على القيمة "٢". أما السجلات رقم ٠ و١ و٣ فهي فارغة (تحتوي على القيمة "٠"). يبقى السجل رقم ٠ دون تغيير طوال العمليات الحسابية لأنه يُستخدم للقفز غير المشروط. السجل رقم ١ هو سجل مؤقت. يبدأ البرنامج بالتعليمات رقم ١.
الشروط النهائية
يتوقف البرنامج مع وجود محتويات السجل رقم 2 عند قيمتها الأصلية ومحتويات السجل رقم 3 مساوية للمحتويات الأصلية للسجل رقم 2، أي
- [2] = [3].
وصف البرنامج على مستوى عالٍ
يتكون البرنامج COPY (#2, #3) من جزأين. في الجزء الأول، ينقل البرنامج محتويات سجل المصدر #2 إلى كل من سجل التخزين المؤقت #1 وسجل الوجهة #3؛ وبالتالي، سيكون #1 و#3 نسختين متطابقتين، بالإضافة إلى نسخة من القيمة الأصلية في #2، ولكن يتم مسح #2 أثناء عملية إنقاصه إلى الصفر. تتم عمليات القفز غير المشروط J(z) عن طريق اختبار السجل #0، الذي يحتوي دائمًا على الرقم 0.
- [#2] →#3; [#2] →#1; 0 →#2
في الجزء الثاني، يقوم البرنامج بنقل (إرجاع، استعادة) محتويات لوحة العمل المؤقتة رقم 1 إلى رقم 2، مع مسح لوحة العمل المؤقتة رقم 1 في هذه العملية:
- [#1] →#2; 0 →#1
برنامج
يظهر البرنامج، المظلل باللون الأصفر، مكتوباً من اليسار إلى اليمين في الزاوية العلوية اليمنى.
يُعرض أدناه تشغيل البرنامج. يمر الوقت لأسفل الصفحة. التعليمات باللون الأصفر، والسجلات باللون الأزرق. تم قلب البرنامج 90 درجة، مع وجود أرقام التعليمات (العناوين) في الأعلى، ورموز التعليمات أسفل العناوين، ومعاملات التعليمات أسفل الرموز (معامل واحد لكل خلية).
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ← رقم التعليمات (العنوان) | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| جيه زد | ديسمبر | شركة | شركة | جيه زد | جيه زد | ديسمبر | شركة | جيه زد | ح | ← التعليمات | |||||||||||||||
| 2 | 2 | 3 | 1 | 0 | 1 | 1 | 2 | 0 | ← رقم التسجيل | ||||||||||||||||
| 6 | 1 | 10 | 6 | ← الانتقال إلى رقم التعليمات | |||||||||||||||||||||
| خطوة | IC | معهد | reg | J-addr | reg0 | reg1 | reg2 | reg3 | reg4 | IC | |||||||||||||||
| يبدأ | 0 | 0 | 2 | 0 | 0 | 1 | انقل [#2] إلى #1 و #3: | ||||||||||||||||||
| 1 | 1 | جيه زد | 2 | 6 | 0 | 0 | 2 | 0 | 0 | 1→2 | جيه زد | فشل القفز: يحتوي السجل T2 على 2 | |||||||||||||
| 2 | 2 | ديسمبر | 2 | 0 | 0 | 0 | 2→1 | 0 | 0 | 2→3 | ديسمبر | سجل التخفيض رقم 2 من 2 إلى 1 | |||||||||||||
| 3 | 3 | شركة | 3 | 0 | 0 | 0 | 1 | 0→1 | 0 | 3→4 | شركة | قم بزيادة قيمة السجل رقم 3 من 0 إلى 1 | |||||||||||||
| 4 | 4 | شركة | 1 | 0 | 0 | 0→1 | 1 | 1 | 0 | 4→5 | شركة | قم بزيادة قيمة السجل رقم 1 من 0 إلى 1 | |||||||||||||
| 5 | 5 | جيه زد | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 5→1 | جيه زد | قفزة يو: السجل رقم 0 فارغ | |||||||||||||
| 6 | 1 | جيه زد | 2 | 6 | 0 | 1 | 1 | 1 | 0 | 1→2 | جيه زد | فشل القفز: يحتوي السجل رقم 2 على 1 | |||||||||||||
| 7 | 2 | ديسمبر | 2 | 0 | 0 | 1 | 1→0 | 1 | 0 | 2→3 | ديسمبر | قم بإنقاص السجل رقم 2 من 1 إلى 0 | |||||||||||||
| 8 | 3 | شركة | 3 | 0 | 0 | 1 | 0 | 1→2 | 0 | 3→4 | شركة | قم بزيادة قيمة السجل رقم 3 من 1 إلى 2 | |||||||||||||
| 9 | 4 | شركة | 1 | 0 | 0 | 1→2 | 0 | 2 | 0 | 4→5 | شركة | قم بزيادة قيمة السجل رقم 1 من 1 إلى 2 | |||||||||||||
| 10 | 5 | جيه زد | 0 | 1 | 0 | 2 | 0 | 2 | 0 | 5→1 | جيه زد | قفزة يو: السجل رقم 0 فارغ | |||||||||||||
| 11 | 1 | جيه زد | 2 | 6 | 0 | 2 | 0 | 2 | 0 | 1→6 | جيه زد | قفزة !: السجل رقم 2 فارغ | |||||||||||||
| انتقل [1] إلى 2: | |||||||||||||||||||||||||
| 12 | 6 | جيه زد | 1 | 10 | 0 | 2 | 0 | 2 | 0 | 6→7 | جيه زد | فشل القفز: يحتوي السجل رقم 1 على 2 | |||||||||||||
| 13 | 7 | ديسمبر | 1 | 0 | 0 | 2→1 | 0 | 2 | 0 | 7→8 | ديسمبر | سجل التخفيض رقم 1 من 2 إلى 1 | |||||||||||||
| 14 | 8 | شركة | 2 | 0 | 0 | 1 | 0→1 | 2 | 0 | 8→9 | شركة | قم بزيادة قيمة المسجل رقم 2 من 0 إلى 1 | |||||||||||||
| 15 | 9 | جيه زد | 0 | 6 | 0 | 1 | 1 | 2 | 0 | 9→6 | جيه زد | قفزة يو: السجل رقم 0 فارغ | |||||||||||||
| 16 | 6 | جيه زد | 1 | 10 | 0 | 1 | 1 | 2 | 0 | 6→7 | جيه زد | فشل القفز: يحتوي السجل رقم 1 على 1 | |||||||||||||
| 17 | 7 | ديسمبر | 1 | 0 | 0 | 1→0 | 1 | 2 | 0 | 7→8 | ديسمبر | قم بإنقاص قيمة السجل رقم 1 من 1 إلى 0 | |||||||||||||
| 18 | 8 | شركة | 2 | 0 | 0 | 0 | 1→2 | 2 | 0 | 8→9 | شركة | قم بزيادة قيمة السجل رقم 2 من 1 إلى 2 | |||||||||||||
| 19 | 9 | جيه زد | 0 | 6 | 0 | 0 | 2 | 2 | 0 | 9→6 | جيه زد | قفزة يو: السجل رقم 0 فارغ | |||||||||||||
| 20 | 6 | جيه زد | 1 | 10 | 0 | 0 | 2 | 2 | 0 | 6→10 | جيه زد | قفزة !: السجل رقم 1 فارغ | |||||||||||||
| 21 | 10 | ح | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 10→10 | ح | وقف |
الدوال التكرارية الجزئية: بناء "تعليمات ملائمة" باستخدام التكرار
يوضح المثال أعلاه كيف يمكن للتعليمات الأساسية الأولى { INC, DEC, JZ } أن تُنشئ ثلاث تعليمات إضافية: القفزة غير المشروطة J، وCLR، وCPY. بمعنى آخر، استخدمت CPY كلاً من CLR وJ بالإضافة إلى مجموعة الأساس. لو كان السجل رقم 3 يحتوي على بيانات في البداية، لكان مجموع بيانات السجلين رقم 2 ورقم 3 قد انتهى به المطاف في السجل رقم 3. لذا، لكي يكون برنامج CPY دقيقًا تمامًا، كان ينبغي أن يسبق حركاته بـ CLR (1) وCLR (3).
مع ذلك، نرى أن عملية الجمع (ADD) كانت ممكنة بسهولة. وفي الواقع، فيما يلي ملخص لكيفية ظهور الدوال التكرارية الأساسية مثل الجمع والضرب والأس. [ 6 ]
- مجموعة التعليمات الأولية: { DEC, INC, JZ, H }
- عرّف "القفزة J (z)" غير المشروطة بدلالة JZ ( r0, z ) بشرط أن r0 تحتوي على 0.
- { J, DEC, INC, JZ, H }
- عرّف "CLeaR ( r )" من حيث ما سبق:
- { CLR, J, DEC, INC, JZ, H }
- قم بتعريف "CoPY ( r j , rk ) " مع الحفاظ على محتويات r j وفقًا لما سبق:
- { CPY, CLR, J, DEC, INC, JZ, H }
- ما سبق هو مجموعة التعليمات الخاصة بـ Shepherdson–Sturgis (1963).
- قم بتعريف "ADD ( r j , rk , r i )", (ربما مع الحفاظ على محتويات r j و rk ), باستخدام ما سبق:
- { ADD, CPY, CLR, J, DEC, INC, JZ, H }
- عرّف "MULtiply ( r j , rk , r i )" (MUL) (ربما مع الحفاظ على محتويات r j , rk ) ، من حيث ما سبق:
- { MUL, ADD, CPY, CLR, J, DEC, INC, JZ, H }
- عرّف "EXPonential ( r j , rk , r i )" (EXP) (ربما مع الحفاظ على محتويات r j , rk ) من حيث ما سبق،
- { EXP, MUL, ADD, CPY, CLR, J, DEC, INC, JZ, H }
بشكل عام، يمكننا بناء أي دالة تكرارية أولية جزئية أو كلية نرغب بها، باستخدام نفس الأساليب. في الواقع، قدم كل من مينسكي (1967)، وشيباردسون-ستورجيس (1963)، وبولوس-بورغيس-جيفري (1974) أمثلة توضيحية لكيفية تكوين "المؤثرات" الخمسة للدوال التكرارية الأولية (1-5 أدناه) من المجموعة الأساسية (1).
لكن ماذا عن التكافؤ الكامل لتورينغ ؟ نحتاج إلى إضافة العامل السادس - العامل μ - للحصول على التكافؤ الكامل، القادر على إنشاء الدوال التكرارية الكلية والجزئية :
- الدالة الصفرية (أو الدالة الثابتة )
- دالة الخلف
- دالة التطابق
- دالة التركيب
- الاستقراء البدائي (الاستقراء)
- عامل μ (عامل البحث غير المحدود)
يُبين المؤلفون أن هذا يتم بسهولة ضمن أي من مجموعات الأساس المتاحة (1 أو 2 أو 3) (يمكن الاطلاع على مثال في عامل μ ). هذا يعني أنه يمكن تنفيذ أي دالة تكرارية من نوع μ كآلة عداد، [ 7 ] على الرغم من محدودية مجموعة التعليمات وحجم البرنامج في تصميم آلة العداد. مع ذلك، قد يكون البناء المطلوب غير بديهي، حتى بالنسبة للدوال التي يسهل تعريفها نسبيًا في آلات السجلات الأكثر تعقيدًا مثل آلة الوصول العشوائي . والسبب في ذلك هو أن عامل μ يمكنه التكرار عددًا غير محدود من المرات، بينما لا تستطيع أي آلة عداد معينة الوصول إلى عدد غير محدود من السجلات المختلفة نظرًا لمحدودية حجم قائمة تعليماتها.
على سبيل المثال، يمكن توسيع التسلسل الهرمي المذكور أعلاه للعوامل التكرارية الأولية ليشمل عمليات الأسهم ذات الرتبة الأعلى في تدوين كنوت للسهم العلوي . لأي قيمة ثابتة، الوظيفةهي دالة تكرارية بدائية، ويمكن تنفيذها كآلة عداد بطريقة مباشرة. لكن الدالةليست دالة تكرارية بدائية. قد يميل المرء إلى استخدام عامل السهم العلوي.باستخدام بنية مشابهة لتعليمات اللاحق والجمع والضرب والأس المذكورة أعلاه، من خلال تنفيذ مكدس استدعاء بحيث يمكن تطبيق الدالة بشكل متكرر على قيم أصغر منهذه الفكرة مشابهة لكيفية تنفيذ الوظيفة عمليًا في العديد من لغات البرمجة. مع ذلك، لا يمكن لآلة العداد استخدام عدد غير محدود من المسجلات في حساباتها، وهو ما يتطلبه تنفيذ مكدس استدعاءات قد ينمو بشكل عشوائي. يمكن تنفيذ عملية السهم لأعلى كآلة عداد لأنها غير تكرارية، ولكن سيتم تنفيذ الوظيفة عن طريق ترميز كمية غير محدودة من المعلومات داخل عدد محدود من المسجلات، كما هو الحال باستخدام ترقيم غودل .
مشاكل في نموذج آلة العد
- تُناقش هذه المشكلات بالتفصيل في مقال "آلة الوصول العشوائي ". وتنقسم هذه المشكلات إلى فئتين رئيسيتين، بالإضافة إلى فئة ثالثة تُعرف باسم "فئة الإزعاج".
(1) السعات غير المحدودة للسجلات مقابل السعات المحدودة لتعليمات آلة الحالة: كيف ستنشئ الآلة ثوابت أكبر من سعة آلة الحالة المحدودة الخاصة بها؟
(2) عدد غير محدود من السجلات مقابل عدد محدود من تعليمات آلة الحالة: كيف ستتمكن الآلة من الوصول إلى السجلات ذات أرقام العناوين التي تتجاوز نطاق/قدرة آلة الحالة المحدودة الخاصة بها؟
(3) النماذج المختزلة بالكامل معقدة:
لم يبدِ شيبردسون وستورجيس (1963) أي ندم على مجموعة التعليمات الست التي استخدموها. وقد اتخذوا هذا الاختيار بناءً على "سهولة البرمجة... بدلاً من الاقتصاد" (ص 219، الحاشية 1).
تعليمات شيبردسون وستورجيس ( [r] تشير إلى "محتويات السجل r"):
- زيادة (r) ؛ [r] +1 → r
- إنقاص (r) ؛ [r] -1 → r
- مسح ( r ) ؛ 0 → r
- انسخ ( r s إلى r d ) ؛ [r s ] → r d
- انتقل إلى التعليمات I z بشكل غير مشروط
- انتقل إذا كان [r] = 0 إلى التعليمة I z
قام مينسكي (1967) بتوسيع مجموعة التعليمات المكونة من 2 { INC (z), JZDEC (r, I z ) } إلى { CLR (r), INC (r), JZDEC (r, I z ), J (I z ) } قبل إثباته أنه يمكن بناء "آلة برمجة عالمية" باستخدام سجلين فقط (ص 255 وما بعدها).
الآلات ذات العدادين مكافئة لآلة تورينج (مع بعض التحفظات).
لكل آلة تورينج ، توجد آلة 2CM تحاكيها، بشرط أن تكون مدخلات ومخرجات آلة 2CM مشفرة بشكل صحيح. وقد ثبت ذلك في كتاب مينسكي ( الحوسبة ، 1967، ص 255-258)، وفيما يلي برهان بديل مُوجز في ثلاث خطوات. أولًا، يمكن محاكاة آلة تورينج بواسطة آلة حالة محدودة (FSM) مزودة بمكدسين. ثانيًا، يمكن محاكاة المكدسين بواسطة أربعة عدادات. أخيرًا، يمكن محاكاة العدادات الأربعة بواسطة عدادين. تستخدم آلة العدادين مجموعة التعليمات { INC ( r, z ), JZDEC ( r, z true , z false ) }.
الخطوة 1: يمكن محاكاة آلة تورينج بواسطة مجموعتين من الحزم.
تتكون آلة تورينج من آلة حالة محدودة (FSM) وشريط لانهائي، مملوء مبدئيًا بالأصفار، حيث يمكن للآلة كتابة الأصفار والآحاد عليه. في أي لحظة، يشير رأس القراءة/الكتابة في الآلة إلى خلية واحدة على الشريط. يمكن نظريًا قطع هذا الشريط إلى نصفين عند تلك النقطة. يمكن اعتبار كل نصف من الشريط بمثابة مكدس ، حيث يمثل الجزء العلوي الخلية الأقرب إلى رأس القراءة/الكتابة، بينما يمثل الجزء السفلي الخلية الأصفار الموجودة على الشريط بعد الرأس. وبناءً على ذلك، يمكن محاكاة آلة تورينج باستخدام آلة حالة محدودة بالإضافة إلى مكدسين. تحريك الرأس يمينًا أو يسارًا يُعادل سحب بت من أحد المكدسين ودفعه إلى الآخر. أما الكتابة فتُعادل تغيير البت قبل دفعه.
الخطوة 2: يمكن محاكاة المكدس بواسطة عدادين.
يمكن محاكاة مكدس يحتوي على أصفار ووحدات باستخدام عدادين، حيث تُمثل البتات الموجودة على المكدس عددًا ثنائيًا (البت العلوي في المكدس هو البت الأقل أهمية). إضافة صفر إلى المكدس تُكافئ مضاعفة العدد. إضافة واحد تُكافئ مضاعفة العدد وإضافة واحد. سحب بت يُكافئ القسمة على 2، حيث يكون الباقي هو البت الذي تم سحبه. يمكن لعدادين محاكاة هذا المكدس، حيث يحتوي أحدهما على عدد يُمثل تمثيله الثنائي البتات الموجودة على المكدس، بينما يُستخدم الآخر كمساحة تخزين مؤقتة. لمضاعفة العدد في العداد الأول، يمكن لآلة الحالة المحدودة تهيئة العداد الثاني إلى الصفر، ثم إنقاص العداد الأول مرة واحدة وزيادة العداد الثاني مرتين بشكل متكرر. يستمر هذا حتى يصل العداد الأول إلى الصفر. عندئذٍ، سيحتوي العداد الثاني على العدد المُضاعف. يتم التنصيف عن طريق إنقاص أحد العدادين مرتين وزيادة الآخر مرة واحدة، وتكرار ذلك حتى يصل العداد الأول إلى الصفر. يمكن تحديد الباقي من خلال ما إذا كان قد وصل إلى الصفر بعد عدد زوجي أو فردي من الخطوات، حيث يتم ترميز زوجية عدد الخطوات في حالة آلة الحالة المحدودة.
الخطوة 3: يمكن محاكاة أربعة عدادات بواسطة عدادين.
كما في السابق، يُستخدم أحد العدادين كدفتر ملاحظات. أما الآخر فيحتوي على عدد صحيح تحليله إلى عوامله الأولية هو 2a³b⁵c⁷d . يمكن اعتبار الأسس a و b و c و d بمثابة أربعة عدادات افتراضية مُجمّعة ( باستخدام ترقيم غودل ) في عداد حقيقي واحد. إذا تم ضبط العداد الحقيقي على الصفر ثم زيادته بمقدار واحد، فهذا يُعادل ضبط جميع العدادات الافتراضية على الصفر. إذا تم مضاعفة العداد الحقيقي، فهذا يُعادل زيادة a ، وإذا تم تقسيمه إلى النصف، فهذا يُعادل إنقاص a . وبإجراء مماثل، يمكن ضربه أو قسمته على 3، وهو ما يُعادل زيادة b أو إنقاصه . وبالمثل، يمكن زيادة c و d أو إنقاصهما. للتحقق مما إذا كان عداد افتراضي مثل c يساوي صفرًا، قسّم العداد الحقيقي على 5، ثم احسب الباقي، ثم اضرب الناتج في 5 وأضف الباقي. هذا يُبقي العداد الحقيقي دون تغيير. سيكون الباقي غير صفري إذا وفقط إذا كان c يساوي صفرًا.
نتيجةً لذلك، يمكن لآلة الحالة المحدودة (FSM) المزودة بعدادين محاكاة أربعة عدادات، والتي بدورها تحاكي مكدسين، واللذان يحاكيان آلة تورينج. لذا، فإن آلة الحالة المحدودة المزودة بعدادين لا تقل قوةً عن آلة تورينج. تستطيع آلة تورينج محاكاة آلة الحالة المحدودة المزودة بعدادين بسهولة، وبالتالي فإن الآلتين تتمتعان بقوة متكافئة.
التحذير: *إذا* تم تهيئة عداداته إلى N و 0، فلن يتمكن 2CM من حساب 2N
تظهر هذه النتيجة، إلى جانب قائمة بوظائف أخرى للمتغير N لا يمكن حسابها بواسطة آلة ذات عدادين - عند تهيئتها بقيمة N في أحد العدادين و0 في الآخر - مثل N² ، وsqrt( N )، وlog² ( N ) ، وما إلى ذلك، في ورقة بحثية لشرويبل (1972). وهذه النتيجة ليست مفاجئة، لأن نموذج الآلة ذات العدادين أثبت (من قبل مينسكي) أنه نموذج عالمي فقط عندما يتم ترميز الوسيط N بشكل مناسب (باستخدام ترميز غودل) لمحاكاة آلة تورينغ التي يحتوي شريطها الأولي على N مُرمّزًا بنظام العد الأحادي؛ علاوة على ذلك، سيتم ترميز مخرجات الآلة ذات العدادين بشكل مماثل. وتُعد هذه الظاهرة نموذجية لقواعد الحساب الصغيرة جدًا التي لا تُثبت عالميتها إلا من خلال المحاكاة (مثل العديد من آلات تورينغ ، وأصغر آلات تورينغ العالمية المعروفة ، وما إلى ذلك).
يسبق البرهان بعض النظريات المثيرة للاهتمام:
- "نظرية: يمكن لآلة ذات ثلاثة عدادات محاكاة آلة تورينج" (ص 2، انظر أيضًا مينسكي 1967: 170-174)
- "نظرية: يمكن لآلة العدادات الثلاثية (3CM) حساب أي دالة تكرارية جزئية لمتغير واحد. تبدأ الآلة بالمتغير [أي N ] في عداد، وإذا توقفت، تترك الإجابة [أي F( N )] في عداد آخر." (ص 3)
- "نظرية: يمكن محاكاة آلة العداد بواسطة 2CM [آلة عدادين]، بشرط قبول ترميز غامض للإدخال والإخراج" [ص 3؛ "الترميز الغامض" هو: 2 W 3 X 5 Y 7 Z حيث العدادات المحاكاة هي W و X و Y و Z]
- "نظرية: يمكن محاكاة أي آلة عداد بواسطة 2CM، بشرط قبول ترميز غامض للإدخال والإخراج." (ص 3)
- "النتيجة: مشكلة التوقف بالنسبة لـ 2CMs غير قابلة للحل."
- "النتيجة: يمكن لآلة 2CM حساب أي دالة تكرارية جزئية ذات وسيط واحد، بشرط أن يتم ترميز المدخلات على أنها 2 N وأن يتم ترميز المخرجات (إذا توقفت الآلة) على أنها 2 answer ." (ص 3)
- "نظرية: لا توجد آلة عدادين تحسب 2^ N [إذا تمت تهيئة أحد العدادات إلى N ]." (ص 11)
فيما يتعلق بالنظرية الثانية التي تنص على أن "آلة العدّ الثلاثية قادرة على حساب أي دالة تكرارية جزئية"، يطرح المؤلف على القارئ "مسألة صعبة: اضرب عددين باستخدام ثلاثة عدادات فقط" (ص ٢). ويستند البرهان الرئيسي إلى فكرة أن الآلات ذات العدّين لا تستطيع حساب المتتابعات الحسابية ذات معدلات النمو غير الخطية (ص ١٥)، أي أن "الدالة ٢ × س تنمو بشكل أسرع من أي متتابعة حسابية " (ص ١١).
مثال عملي على الحساب عن طريق العد
لم تكن آلة حاسبة فريدن EC-130 مزودة بمنطق جمع بالمعنى المتعارف عليه. كان منطقها تسلسليًا للغاية، حيث تُجرى العمليات الحسابية بالعد. داخليًا، كانت الأرقام العشرية تُحسب بنظام الأساس 1 - على سبيل المثال، كان الرقم 6 يُمثل بست نبضات متتالية ضمن الفترة الزمنية المخصصة له. تحمل كل فترة زمنية رقمًا واحدًا، بدءًا من الأقل أهمية. تُفعّل عمليات الحمل قلابًا، مما يؤدي إلى إضافة عدّة واحدة إلى الرقم في الفترة الزمنية التالية.
كانت عملية الجمع تتم بواسطة عداد تصاعدي، بينما كان الطرح يتم بواسطة عداد تنازلي، مع وجود مخطط مماثل للتعامل مع عمليات الاستلاف.
حدد نظام الفترات الزمنية ستة سجلات، كل منها يحتوي على 13 رقمًا عشريًا، ولكل سجل بت إشارة . وكانت عمليات الضرب والقسمة تتم أساسًا عن طريق الجمع والطرح المتكررين. أما نسخة الجذر التربيعي ، EC-132، فكانت تطرح الأعداد الفردية المتتالية، حيث يتطلب كل إنقاص عمليتي طرح متتاليتين. بعد الأولى، كان المطروح منه يزيد بمقدار واحد قبل عملية الطرح الثانية.
انظر أيضاً
مراجع
- ↑ هوبكروفت، موتاني وأولمان 2003 ، ص 352.
- ↑ شونهاج 1973 .
- ↑ شونهاج 1980 .
- ^ فان إمدي بواس 1989 ، ص 34-37.
- ^ فان إمدي بواس 1990 ، ص 32-35.
- ↑ انظر بولوس، بورغيس وجيفري (2007 ، ص 45-51)
- ↑ بولوس، بورغيس وجيفري 2007 .
فهرس
- بولوس، جورج ؛ بورغيس، جون ب .؛ جيفري، ريتشارد (2007) [1974]. الحوسبة والمنطق (الطبعة الخامسة ). كامبريدج، إنجلترا: مطبعة جامعة كامبريدج . doi : 10.1017/CBO9780511804076 . ISBN 9780521877527.قام بورغيس بتنقيح نص بولوس-جيفري الأصلي بشكل موسع، ليصبح أكثر تقدماً من مجرد كتاب تمهيدي. وقد تم تطوير نموذج "آلة المعداد" بشكل موسع في الفصل الخامس " قابلية حساب المعداد " ؛ وهو أحد ثلاثة نماذج تمت معالجتها ومقارنتها بشكل شامل - آلة تورينج (التي لا تزال في شكلها الأصلي الرباعي لبولوس) والتكرار هما النموذجان الآخران.
- بوركس، آرثر ؛ غولدستين، هيرمان ؛ فون نيومان، جون (1946). مناقشة أولية للتصميم المنطقي لجهاز حاسوب إلكتروني .أُعيد طبعه في: بيل، جوردون ؛ نيويل، ألين، محرران (1971) [1946]. هياكل الحاسوب: قراءات وأمثلة . نيويورك: شركة ماكجرو هيل للنشر. ISBN 0-07-004357-4.
- كوك، ستيفن أ .؛ ريكهاو، روبرت أ. (1973). "آلات الوصول العشوائي المحدودة زمنيًا" (ملف PDF) . مجلة علوم الحاسوب والأنظمة . 7 (4): 354-375 . doi : 10.1016/S0022-0000(73)80029-7 .
- ديفيس، مارتن (1958). قابلية الحساب وعدم قابلية الحل . نيويورك: شركة ماكجرو هيل للنشر.
- إلغوت، كالفن؛ روبنسون، أبراهام (1964). "آلات البرامج المخزنة ذات الوصول العشوائي، مدخل إلى لغات البرمجة". مجلة رابطة آلات الحوسبة . 11 (4): 365-399 . doi : 10.1145/321239.321240 .
- فيشر، باتريك سي .؛ ماير، ألبرت ر .؛ روزنبرغ، أرنولد ل. (1968)، "آلات العد ولغات العد"، نظرية الأنظمة الرياضية ، 2 (3): 265-283 ، doi : 10.1007/bf01694011 ، MR 0235932 ، S2CID 13006433 يطور نظريات التسلسل الهرمي الزمني والمكاني لآلات العد، على غرار التسلسلات الهرمية لآلات تورينج.
- هارتمانيس، جوريس (1971). "التعقيد الحسابي لآلات البرامج المخزنة ذات الوصول العشوائي". نظرية الأنظمة الرياضية . 5 (3): 232-245 . doi : 10.1007/BF01694180 .
- هوبكروفت، جون ؛ أولمان، جيفري (1979). مقدمة في نظرية الأوتوماتا واللغات والحوسبة (الطبعة الأولى ). ريدينغ، ماساتشوستس: أديسون-ويسلي. ISBN 0-201-02988-X.كتاب صعب يتمحور حول قضايا التفسير الآلي لـ "اللغات"، واكتمال NP، وما إلى ذلك.
- هوبكروفت، جون ؛ موتاني، راجيف ؛ أولمان، جيفري (2003) [1979]. مقدمة في نظرية الأوتوماتا واللغات والحوسبة (الطبعة الثانية ). ريدينغ، ماساتشوستس: أديسون-ويسلي. ص 352. ISBN 0-201-44124-1.
- كلين، ستيفن (1952). مقدمة في ما وراء الرياضيات . أمستردام، هولندا: شركة نورث هولاند للنشر. ISBN 0-7204-2103-9.
{{cite book}}عدم توافق رقم ISBN / التاريخ ( مساعدة ) - كنوت، دونالد (1973) [1968]. فن برمجة الحاسوب ( الطبعة الثانية). ريدينغ، ماساتشوستس: أديسون-ويسلي.انظر الصفحات 462-463 حيث يُعرّف "نوعًا جديدًا من الآلات المجردة أو "الآلات الآلية" التي تتعامل مع الهياكل المرتبطة".
- لامبيك، يواكيم (1961). "كيفية برمجة عداد لانهائي". النشرة الرياضية . 4 (3): 295-302 . doi : 10.4153/CMB-1961-032-6 .يقترح لامبيك في الملحق الثاني تعريفاً رسمياً لـ "البرنامج". ويشير إلى كتاب ميلزاك (1961) وكلين (1952) مقدمة في ما وراء الرياضيات .
- ميلزاك، ز. أ. (1961). "مقاربة حسابية غير رسمية للحوسبة والحساب". النشرة الرياضية الكندية . 4 (3): 279-293 . doi : 10.4153/CMB-1961-031-9 .لم يقدم ميلزاك أي مراجع ولكنه أقر "بفائدة المحادثات مع الدكاترة ر. هامينغ، د. ماكيلروي، و ف. فيسوتس من مختبرات بيل للهواتف ومع الدكتور هـ. وانغ من جامعة أكسفورد".
- مينسكي، مارفن (1961). "عدم قابلية حل مسألة "الوسم" لبوست بشكل متكرر ومواضيع أخرى في نظرية آلات تورينج". حوليات الرياضيات . 74 (3): 437-455 . doi : 10.2307/1970290 . JSTOR 1970290 .
- مينسكي، مارفن (1967). الحوسبة: الآلات المحدودة واللامحدودة ( الطبعة الأولى). إنجلوود كليفس، نيوجيرسي: برنتيس هول، إنك.انظر تحديدًا الفصل 11: نماذج مشابهة للحواسيب الرقمية ، والفصل 14: أسس بسيطة جدًا للحوسبة . في الفصل الأول، يُعرّف "آلات البرمجة"، وفي الفصل الثاني، يناقش "آلات البرمجة الشاملة ذات سجلين" و"...ذات سجل واحد"، إلخ.
- شيباردسون، جيه سي ؛ ستورجيس، إتش إي (1963). "قابلية حساب الدوال التكرارية" . مجلة رابطة آلات الحوسبة . 10 (2): 217-255 . doi : 10.1145/321160.321170 .ورقة مرجعية قيّمة. في الملحق (أ)، يستشهد المؤلفون بأربعة مراجع أخرى فيما يتعلق بـ "الحد الأدنى من التعليمات المستخدمة في 4.1: مقارنة مع أنظمة مماثلة".
- كافينجست، هاينز (1959). "Eine Abstrakte Programmgesteuerte Rechenmaschine". Zeitschrift für mathatische Logik und Grundlagen der Mathematik . 5 ( 14– 24): 366– 379. دوى : 10.1002/malq.19590051413 .
- إرشوف، ا ف ب (1958). "على خوارزميات المشغل" . دوكلادي أكاديمي ناوك SSSR (بالروسية). 122 (6): 967- 970.الترجمة الإنجليزية، Automat. Express 1 (1959)، 20-23.
- بيتر روزا (1958). "المخططات البيانية والوظائف المتكررة" . ديالكتيك (في المانيا). 12 ( 3– 4): 373– 393. دوى : 10.1111/j.1746-8361.1958.tb01470.x .
- هيرميس، هانز (1954). "Die Universalität Programmgesteuerter Rechenmaschinen". الرياضيات-فيزياء. نصف فصل . 4 . غوتنغن: 42-53 .
- شونهاج، أرنولد (ديسمبر 1973). محاكاة في الوقت الحقيقي لآلات تورينج متعددة الأبعاد بواسطة آلات تعديل التخزين (مذكرة فنية). كامبريدج، ماساتشوستس: مشروع MIT MAC. hdl : 1721.1/148866 .
- شونهاج، أرنولد (1980). "آلات تعديل التخزين". مجلة SIAM للحوسبة 9 ( 3). جمعية الرياضيات الصناعية والتطبيقية: 366-379 . doi : 10.1137/0209036 .حيث يوضح شونهاج تكافؤ SMM الخاص به مع "آلة الوصول العشوائي" (RAM) اللاحقة، إلخ.
- شرويبل، ريتش (1972). "آلة ذات عدادين لا تستطيع حساب 2^ ن " (ملف PDF) . معهد ماساتشوستس للتكنولوجيا، مختبر الذكاء الاصطناعي، مذكرة الذكاء الاصطناعي رقم 257.يشير المؤلف إلى مينسكي 1967 ويلاحظ أن " فرانسيس ياو أثبتت بشكل مستقل عدم قابلية الحساب باستخدام طريقة مماثلة في أبريل 1971".
- فان إمده بواس، بيتر (1989). نماذج ومحاكاة الآلات (ملف PDF) (تقرير فني). الحوسبة ونظرية التعقيد. معهد المنطق واللغة والحوسبة، جامعة أمستردام . تاريخ الاسترجاع: 27 يوليو 2025 .
- فان إمده بواس، بيتر (1990). "نماذج ومحاكاة الآلات". في فان ليوين، يان (محرر). دليل علوم الحاسوب النظرية. المجلد أ: الخوارزميات والتعقيد ( الطبعة الأولى). مطبعة معهد ماساتشوستس للتكنولوجيا/إلسيفير. الصفحات 3-66 . ISBN 9780444880710.يُقدّم فان إمدي بواس تحليله لـ SMMs في الصفحات من 32 إلى 35. يُوضّح هذا التحليل ما ورد في دراسة شونهاج عام 1980، إذ يتبعها عن كثب مع توسيع طفيف لها. وقد يكون من الضروري الرجوع إلى كلا المرجعين لفهمٍ فعّال.
- وانغ، هاو (1957). "صيغة معدلة لنظرية تورينغ لآلات الحوسبة". مجلة ACM . 4 : 63-92 . doi : 10.1145/320856.320867 .تم تقديمها في اجتماع الجمعية، 23-25 يونيو 1954.
للمزيد من القراءة
- وولفرام، ستيفن (2002). نوع جديد من العلوم . وولفرام ميديا، إنك. الصفحات 97-102 . ISBN 1-57955-008-8.
روابط خارجية
- آلات التسجيل
