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

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

وصف الخوارزمية


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

t n + 1 = التركيبة [ التجريد [ خصم [t n ]]] ؛ t 0 = s؛ t n ، s ∈ S ؛ ن ∈ ن

حساب هذه الوظيفة هو التفكير. كما ترون ، يظهر ثلاثة مشغلين في السجل:
تكوين [] ، التجريد [] ، خصم [] ؛ هناك أيضًا: المتغير الأساسي s ∈ S ، مجموعة الصفوف الخاصة بالنموذج S ورقم الخطوة n ∈ N. بعد ذلك ، نعتبر بالتفصيل كل قطع غيار. نبدأ مع مجموعة S وعناصرها.

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

() ≡ ∅ عبارة عن سلسلة فارغة.
(أ) - سلسلة تحتوي على واحد من فن الإستذكار " أ ".
(أأ) - سلسلة تحتوي على حالتين من فن الإستذكار " أ ".
(ab) عبارة عن سلسلة تحتوي على اثنين من فن الإستذكار " a " و " b ".
((أ) (أ)) - يحتوي الخط على نسختين من فن الإستذكار " a " ومستويات متداخلة من الأقواس.

في بعض الأحيان ، تسمى الأقواس المغلقة ، بالإضافة إلى محتوياتها ، بالإضافة إلى فن الإستذكار الفردي ، "مكونات السلسلة" ، في الحالات التي يتطلب فيها التعميم المناسب. على سبيل المثال ، يحتوي السطر ((a) ab) على أربعة مكونات ، من بينها: مكونان " a " ، مكون واحد " (a) " ومكون واحد " b ".

تعتبر سجلات الأوتار التي تتطابق مع إعادة ترتيب المكونات داخل السلسلة متطابقة. أمثلة على خطوط متطابقة:

(أ ب) ≡ (با) .
((أ) (ب)) ≡ ((ب) (أ)) .
(abc) ≡ (bac) ≡ (cba) ≡ (acb) ≡ (bca) ≡ (cab) .
((a) (ab)) ≡ ((a) (ba)) ≡ ((ab) (a)) ≡ ((ba) (a)) .

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

(أأ) ≡ (2 أ) .
(aabb) ≡ (2a2b) .
((أ) (أ)) ≡ (2 (أ)) .
((أأ) (أأ)) ≡ (2 (2a)) .
(aa (bb) (bb) (ccc) (ccc) (ccc)) ≡ (2a2 (2b) 3 (3c)) .

في تلك الحالات التي تحتوي فيها السلسلة على مكونات فارغة ، على سبيل المثال (أ ()) ، (أ () () (ب)) ، فإن الهويات تحتفظ: (أ ()) )) ≡ (a (b)) ، أي يتم التخلص من المكونات الفارغة.

التعريف تتكون المجموعة S من جميع السلاسل الممكنة التي تفي بمعايير بناء الجملة أعلاه ، بما في ذلك سلسلة فارغة.

يتم تحديد عوامل الاستنباط والتجريد والتركيب في المجموعة S. تتم الإشارة إلى وسيطات المشغل في أقواس مربعة [] ، لأن الأقواس محجوزة لبناء جملة السلسلة. مصطلح "المشغل" مرادف لمصطلح "وظيفة".

مشغل خصم . التعريف ∀s ∈ S ، خصم k [s] ∈ S ، k ∈ N ، k> 1 ، خصم [s] ≝ خصم 2 [s] . يأخذ السلسلة s من S كوسيطة. نتيجة لذلك ، تُرجع سلسلة من S. العمل. يكرر عامل التشغيل k مرات كل مكون من السلسلة والسلسلة بأكملها. الهيكل الناتج مؤطر بأقواس خارجية مشتركة. الازدواجية تبدأ بأعمق المكونات من حيث التعشيش. يتم تكرار الصف بأكمله الأخير. لأغراض عملية فورية ، يكفي أن يكون k = 2 ، لذلك حددت حالة خاصة للخصم [s] ≝ خصم 2 [s] . يشير استخدام الاستنتاج [] إلى أن k = 2 ، أي نتيجة لعامل الاستنتاج [s] ، يتم مضاعفة جميع مكونات السلسلة s . أمثلة:

خصم [(أ)] = ((أأ) (أأ)).
خصم [(aa)] = ((aaaa) (aaaa))
خصم [(ab)] = ((aabb) (aabb)).
خصم [(a (b))] = ((aa (bb) (bb)) (aa (bb) (bb))).
خصم [((a) (b))] = (((aa) (aa) (bb) (bb)) ((aa) (aa) (bb) (bb))).
خصم [((a) (b (cc)))] = (((aa) (aa) (bb (cccc) (cccc)) (bb (cccc) (cccc))) ((aa) (aa) ( bb (cccc) (cccc)) (bb (cccc) (cccc))))) .

عامل التجريد . التعريف ∀s ∈ S ، التجريد [s] ⊂ S. يأخذ السلسلة s من S كوسيطة. نتيجة لذلك ، تقوم بإرجاع العديد من الصفوف. مبدأ العمل. ينشئ عامل التجريد الكثير من الخطوط من خط المصدر باستخدام عملية خاصة - قوس مكونات متماثلة. تنطبق عملية وضع الأقواس فقط على الأقواس المتداخلة الموجودة في نفس مستوى التعشيش. المبدأ العام بين قوسين. إذا كانت المكونات نفسها موجودة داخل الأقواس ، في أي مجموعة من الأقواس الموجودة في نفس المستوى ، يمكن وضع أي مجموعة من المكونات نفسها بين قوسين ، ويجب دمج المكونات التي بقيت سليمة تحت نفس الأقواس العامة من نفس المستوى. النظر في مثال. سلسلة ((ab) (ac)) . على هذا الخط ، يوجد سلسلتان أساسيتان في نفس المستوى: (ab) و (ac) ، يوجد بداخلهما نفس المصطلحات " a " ، ويمكن وضع هذا المصطلحات من بين قوسين وتكون النتيجة (a (bc)) . كما ترون ، يتم الجمع بين فن الإستذكار المتبقي " b " و " c " بين أقواس مشتركة. النظر في مثال أقل وضوحا. تحتوي السلسلة ((aa) (aa)) على سلاسل (aa) و (aa) ، وفي هذه الحالة يوجد خياران مختلفان لوضع الأقواس. في المتغير الأول ، يمكن الاستغناء عن كلمة "cnonics" واحدة فقط بين قوسين من كل سلسلة فرعية ، وفي البديل الثاني ، يمكن الاستغناء عن مجموعة من فن الإستذكار " aa ". دعونا النظر في كلا الخيارين بمزيد من التفاصيل.

الخيار الأول ، مظاهرة خطوة بخطوة:

  1. الخطوة الأولى ، اختر ( أحمر ) ما يجب أخذه ((أ) (أ)) .
  2. الخطوة الثانية ، حدد ( a (... a) (... a)) .
  3. الخطوة الثالثة ، ادمج الباقي بين قوسين عاديين ( أ (... أ ... أ)) .
  4. النتيجة (أ (أ)) .

الخيار الثاني ، في الخطوات:

  1. الخطوة الأولى ، اختر ما يجب أخذه (( أأ ) ( أأ )) .
  2. الخطوة الثانية ، قم بتحديد ( aa (...) (...)) .
  3. الخطوة الثالثة ، ادمج الباقي بين قوسين عاديين ( أأ (...)) .
  4. الخطوة الرابعة ، تخلص من المكونات الفارغة ( أأ ) .
  5. النتيجة (أأ) .

دعونا تعقيد المثال. دعه يعطى السلسلة ((aa) (aab) (aab)) ، له ثلاثة سلاسل فرعية موجودة في نفس المستوى: (aa) ، (aab) ، (aab) ، الثلاثة لديهم نفس المحتوى. لا تلزمنا قاعدة الأقواس بتنفيذ العملية لجميع العناصر الثلاثة دفعة واحدة. لعملية التجميع ، يمكنك تحديد أي مجموعة من سلاسل فرعية.

في هذه الحالة ، هناك ثلاثة خيارات غير متطابقة لتجميع سلاسل فرعية:

  1. (أأ) ، (آاب) .
  2. (aab) ، (aab) .
  3. (aa) ، (aab) ، (aab) .

نقوم بتنفيذ جميع العبارات الممكنة لكل خيار من خيارات التجميع ، خطوة بخطوة.

التجمع (أأ) ، (آاب) . السلسلة ((aa) (aab) (aab)) .

الخيار الأول:

  1. حدد المحتوى (( أ ) (أ) (أ)) .
  2. نحن نخرج ( a (... a) (... ab) (aab)) .
  3. الجمع ( a (... a ... ab) (aab)) .
  4. النتيجة رقم 1 (a (aab) (aab)) .

الخيار الثاني:

  1. حدد المحتوى (( aa ) ( aa b) (aab)) .
  2. نحن نخرج ( أأ (...) (... ب) (أأب)) .
  3. الجمع ( aa (... ب) (aab)) .
  4. النتيجة رقم 2 (a (b) (aab)) .

التجميع (aab) ، (aab) . السلسلة ((aa) (aab) (aab)) .

الخيار الأول:

  1. حدد المحتوى ((aa) ( a ab) ( a ab)) .
  2. نحن نخرج ((أأ) ((أ)) (... أ)) .
  3. اجمع ((aa) a (... ab ... ab)) .
  4. النتيجة رقم 3 (a (aa) (aabb)) .

الخيار الثاني:

  1. حدد المحتوى ((أأ) ( أأ ب) ( أأ ب)) .
  2. نحن نخرج ((أأ) أأ (... ب) (... ب)) .
  3. الجمع ((أأ) أ (... ب ... ب)) .
  4. النتيجة رقم 4 (أأ (أأ) (ب ب)) .

الخيار الثالث:

  1. حدد المحتوى ((aa) (a ab ) (a ab )) .
  2. نحن نخرج ((أأ) أب (... أ) (... أ)) .
  3. الجمع ((أأ) أب (... أ ... أ)) .
  4. النتيجة رقم 5 (ab (aa) (aa)) .

الخيار الرابع:

  1. حدد المحتوى ((أأ) (أأ ب ) (أأ ب )) .
  2. نحن نخرج ((أأ) ب (... أأ) (... أأ)) .
  3. الجمع ((أأ) ب (... أأ ... أأ)) .
  4. النتيجة رقم 6 (b (aa) (aaaa)) .

الخيار الخامس:

  1. حدد المحتوى ((aa) ( aab ) ( aab )) .
  2. نحن نخرج ((aa) aab (...) (...)) .
  3. الجمع ((أأ) aab (...)) .
  4. النتيجة رقم 7 (aab (aa)) .

التجميع (aa) ، (aab) ، (aab) . السلسلة ((aa) (aab) (aab)) .

الخيار الأول:

  1. حدد المحتوى (( أ ) (أ) (أ)) .
  2. نحن نخرج ( a (... a) (... ab) (... ab)) .
  3. الجمع ( a (... a ... ab ... ab)) .
  4. النتيجة رقم 8 (a (aaabb)) .

الخيار الثاني:

  1. حدد المحتوى (( أأ ) ( أأ ب) ( أأ ب)) .
  2. نحن نخرج ( أ) (...) (... ب) (... ب)) .
  3. الجمع ( أأ (... ب ... ب)) .
  4. النتيجة رقم 9 (aa (bb)) .

عمل مشغل التجريد . كما ترى من المثال ، بالنسبة للصف الأصلي ((aa) (aab) (aab)) ، هناك تسعة خيارات مختلفة لوضع شيء ما بين الأقواس ، وتسعة خطوط ناتجة تتوافق مع هذه الخيارات. هذه هي الطريقة التي يتصرف بها عامل التجريد - يتكرر على جميع الخيارات الممكنة لإخراج الأقواس ويصمم المجموعة المقابلة من الصفوف الناتجة. علاوة على ذلك ، يبحث مشغل التجريد عن خيارات لصنع ليس فقط في خط المصدر ، ولكن أيضًا في جميع خطوط النتائج الناتجة. بمعنى آخر ، يتم تطبيق عامل التجريد بشكل متكرر على نتائجه ، وهكذا حتى يتم استنفاد جميع الخيارات الممكنة. لأسباب واضحة ، لأي خط نهائي ، فإن عدد خيارات الإزالة المحتملة محدود أيضًا.

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

النتيجة رقم 1 (a (aab) (aab)) :

1.1. (a ( a ab) ( a ab)) => (a a aabb)) .
1.2. (a ( aa b) ( aa b)) => (a a (bb)) .
1.3. (a (a ab ) (a ab )) => (a ab (aa)) . * رقم 7
1.4. (a ( aab ) ( aab )) => ( aab ) .
1.5. (a (aa b ) (aa b )) => (a b (aaaa)) .
النتيجة رقم 2 (a (b) (aab)) :
2.1. (a ( b ) (aa b )) => (a b (aa)) .
النتيجة رقم 3 (a (aa) (aabb)) :
3.1. (a ( a ) ( a abb)) => ( a (aabb)) . * رقم 1.1
3.2. (a ( aa ) ( aa bb)) => (a a (bb)) . * رقم 1.2
النتيجة رقم 4 (أأ (أأ) (ب ب)) .
النتيجة رقم 5 (ab (aa) (aa)) :
5.1. (ab ( a ) ( a a)) => ( a ab (aa)) . * رقم 7 ، * رقم 1.3
5.2. (ab ( aa ) ( aa )) => ( aa ab) . * رقم 1.4
النتيجة رقم 6 (b (aa) (aaaa)) :
6.1. (b ( a a) (aaa)) => ( a b (aaaa)) . * رقم 1.5
6.2. (b ( aa ) ( aa aa)) => ( aa b (aa)) . * رقم 7 ، * رقم 1.3 ، * رقم 5.1
النتيجة رقم 7 (aab (aa)) .
النتيجة رقم 8 (a (aaabb)) .
النتيجة رقم 9 (aa (bb)) .

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

التجريد [((aa) (aab) (aab))] =
{
(a (aab) (aab)) ، (aa (aabb)) ، (aaa (bb)) ، (aaab) ، (a (b) (aab)) ، (ab (aa)) ، (a (aa) (aabb)) ، (aa (aa) (bb)) ، (ab (aa) (aa)) ، (b (aa) (aaaa)) ، (ab (aaaa)) ، (aab (aa)) ، ( a (aaabb)) ، (aa (bb))
}

من أجل الوضوح ، فكر في بضعة أمثلة أخرى.

السلسلة ((a (b)) (a (b))) . خيارات الأقواس. التكرار الأول:

(( a (b)) ( a (b))) => ( a ((b) (b))) ، النتيجة رقم 1.
((أ (ب) ) (أ (ب) )) => ( (ب) (أأ)) ، النتيجة رقم 2.
((( أ (ب) ) ( أ (ب) )) => ( أ (ب) ) ، النتيجة رقم 3.
في النتيجة الأولى ، يمكن اتخاذ قرار آخر. التكرار الثاني:
(a (( b ) ( b ))) => (a ( b )) ، تتوافق النتيجة رقم 1.2 مع النتيجة رقم 3.

المجموع: التجريد [((a (b)) (a (b)))] = {(a ((b) (b))) ، ((b) (aa)) ، (a (b))}

مثال رائع:
التجريد [ خصم [(a (b))]] = التجريد [((aa (bb) (bb)) (aa (bb) (bb))]] =>
1. ((aa ( b b) ( b b)) (aa (bb) (bb))) => ((aa b (b)) (aa (bb) (bb))) .
1.1. (( a ab (b)) ( a (bb) (bb))) => ( a (aab (b) (bb) (bb))) .
1.1.1. (a (aab ( b ) ( b b) (bb))) => (a (aab b (b) (bb))) .
1.1.1.1. (a (aabb ( b ) ( b b))) => (a (aabb b (b))) .
1.1.2. (a (aab ( b ) ( b b) ( b b))) => (a (aab b (bb))) .
1.1.3. (a (aab (b) ( b b) ( b b))) => (a (aab b (b) (bb))) .
1.1.3.1. (a (aabb ( b ) ( b b))) => (a (aabb b (b))) .
1.1.4. (a (aab (b) ( bb ) ( bb ))) => (a (aab bb (b))) .
1.2. (( أأ ب (ب)) ( أأ (ب ب) (ب ب))) => ( أ أ (ب (ب) (ب ب) (ب ب))) .
1.2.1. (aa (b ( b ) ( b b) (bb))) => (aa (b b (b) (bb))) .
1.2.1.1. (aa (bb ( b ) ( b b))) => (aa (bb b (b))) .
1.2.2. (aa (b ( b ) ( b b) ( b b))) => (aa (b b (bb))) .
1.2.3. (aa (b (b) ( b b) ( b b))) => (aa (b b (b) (bb))) .
1.2.3.1. (aa (bb ( b ) ( b b))) => (aa (bb b (b))) .
1.2.4. (aa (b (b) ( bb ) ( bb ))) => (aa (b bb (b))) .
1.3. ((aab (b)) (aa ( b b) ( b b))) => ((aab (b)) (aa b (bb))) .
1.3.1. (( a ab (b)) ( a ab (bb))) => ( a (aabb (b) (bb))) .
1.3.1.1. (a (aabb ( b ) ( b b))) => (a (aabb b (b))) .
1.3.2. (( aa b (b)) ( aa b (bb))) => ( aa (bb (b) (bb))) .
1.3.2.1. (aa (bb ( b ) ( b b))) => (aa (bb b (b))) .
1.3.3. (( aab (b)) ( aab (bb))) => ( aab ((b) (bb))) .
1.3.3.1. (aab (( b ) ( b b))) => (aab ( b (b))) .
1.3.4. ((a ab (b)) (a ab (bb))) => ( ab (aa (b) (bb))) .
1.3.4.1. (ab (aa ( b ) ( b b))) => (ab (aa b (b))) .
1.3.5. ((aa b (b)) (aa b (bb))) => ( b (aaaa (b) (bb))) .
1.3.5.1. (b (aaaa ( b ) ( b b))) => (b (aaaa b (b))) .
1.4. ((aab (b)) (aa ( bb ) ( bb ))) => ((aab (b)) (aa bb )) .
1.4.1. (( a ab (b)) ( a abb)) => ( a (aabbb (b))) .
1.4.2. (( aa b (b)) ( aa bb)) => ( aa (bbb (b))) .
1.4.3. (( aab (b)) ( aab b)) => ( aab (b (b))) .
1.4.4. ((a ab (b)) (a ab b)) => ( ab (aab (b))) .
1.4.5. ((aa b (b)) (aa b b)) => ( b (aaaab (b))) .
2. ((aa ( bb ) ( bb )) (aa (bb) (bb))) => ((aa bb ) (aa (bb) (bb))) .
2.1. ((aabb) (aa ( b b) ( b b))) => ((aabb) (aa b (bb))) .
2.1.1. (( a abb) ( a ab (bb))) => ( a (aabbb (bb))) .
2.1.2. (( aa bb) ( aa b (bb))) => ( aa (bbb (bb))) .
2.1.3. (( aab b) ( aab (bb))) => ( aab (b (bb))) .
2.1.4. ((a ab b) (a ab (bb))) => ( ab (aab (bb))) .
2.1.5. ((aa b b) (aa b (bb))) => ( b (aaaab (bb))) .
2.2. ((aabb) (aa ( bb ) ( bb ))) => ((aabb) (aa bb )) .
2.2.1. (( a abb) ( a abb)) => ( a (aabbbb)) .
2.2.2. (( aa bb) ( aa bb)) => ( aa (bbbb)) .
2.2.3. (( aab b) ( aab b)) => ( aab (bb)) .
2.2.4. ((a abb ) (a abb )) => ( abb (aa)) .
2.2.5. (( aabb ) ( aabb )) => ( aabb ) .
2.2.6. ((a ab b) (a ab b)) => ( ab (aabb)) .
2.2.7. ((aa b b) (aa b b)) => ( b (aaaabb)) .
2.2.8. ((aa bb ) (aa bb )) => ( bb (aaaa)) .
2.3. (( a abb) ( a (bb) (bb))) => ( a (aabb (bb) (bb))) .
2.3.1. (a (aabb ( b b) ( b b))) => (a (aabb b (bb))) .
2.3.2. (a (aabb ( bb ) ( bb ))) => (a (aabb bb )) .
2.4. (( aa bb) ( aa (bb) (bb))) => ( aa (bb (bb) (bb))) .
2.4.1. (aa (bb ( b b) ( b b))) => (aa (bb b (bb))) .
2.4.2. (aa (bb ( bb ) ( bb ))) => (aa (bb bb )) .
3. (( a (bb) (bb)) ( a (bb) (bb))) => ( a (aa (bb) (bb) (bb) (bb))) .
3.1. (a (aa ( b b) ( b b) (bb) (bb))) => (a (aa b (bb) (bb) (bb))) .
3.1.1. (a (aab ( b b) ( b b) (bb))) => (a (aab b (bb) (bb))) .
3.1.1.1. (a (aabb ( b b) ( b b))) => (a (aabb b (bb))) .
3.1.1.2. (a (aabb ( bb ) ( bb ))) => (a (aabb bb )) .
3.1.2. (a (aab ( b b) ( b b) ( b b))) => (a (aab b (bbb))) .
3.1.3. (a (aab ( bb ) ( bb ) (bb))) => (a (aab bb (bb))) .
3.1.4. (a (aab ( bb ) ( bb ) ( bb ))) => (a (aab bb )) .
3.2. (a (aa ( bb ) ( bb ) (bb) (bb))) => (a (aa bb (bb) (bb))) .
3.2.1. (a (aabb ( b b) ( b b))) => (a (aabb b (bb))) .
3.2.2. (a (aabb ( bb ) ( bb ))) => (a (aabb bb )) .
3.3. (a (aa ( b b) ( b b) ( b b) (bb))) => (a (aa b (bbb) (bb))) .
3.3.1. (a (aab ( b bb) ( b b))) => (a (aab b (bbb))) .
3.3.2. (a (aab ( bb b) ( bb ))) => (a (aab bb (b))) .
3.4. (a (aa ( b b) ( b b) ( b b) ( b b))) >> (a (aa b (bbbb))) .
3.5. (a (aa ( bb ) ( bb ) ( bb ) (bb))) => (a (aa bb (bb))) .
3.6. (a (aa ( bb ) ( bb ) ( bb ) ( bb ))) => (a (aa bb )) .
4. (( aa (bb) (bb)) ( aa (bb) (bb))) >> ( aa ((bb) (bb) (bb) (bb))) .
4.1. (aa (( b b) ( b b) (bb) (bb))) => (aa ( b (bb) (bb) (bb))) .
4.1.1. (aa (b ( b b) ( b b) (bb))) => (aa (b b (bb) (bb))) .
4.1.1.1. (aa (bb ( b b) ( b b))) => (aa (bb b (bb))) .
4.1.1.2. (aa (bb ( bb ) ( bb ))) => (aa (bb bb )) .
4.1.2. (aa (b ( b b) ( b b) ( b b))) => (aa (b b (bbb))) .
4.1.3. (aa (b ( bb ) ( bb ) (bb))) => (aa (b bb (bb))) .
4.1.4. (aa (b ( bb ) ( bb ) ( bb ))) => (aa (b bb )) .
4.2. (aa (( bb ) ( bb ) (bb) (bb))) => (aa ( bb (bb) (bb))) .
4.2.1. (aa (bb ( b b) ( b b))) => (aa (bb b (bb))) .
4.2.2. (aa (bb ( bb ) ( bb ))) => (aa (bb bb )) .
4.3. (aa (( b b) ( b b) ( b b) (bb))) => (aa ( b (bbb) (bb))) .
4.3.1. (aa (b ( b bb) ( b b))) => (aa (b b (bbb))) .
4.3.2. (aa (b ( bb b) ( bb ))) => (aa (b bb (b))) .
4.4. (aa (( b b) ( b b) ( b b) ( b b))) >> (aa ( b (bbbb))) .
4.5. (aa (( bb ) ( bb ) ( bb ) (bb))) => (aa ( bb (bb))) .
4.6. (aa (( bb ) ( bb ) ( bb ) ( bb ))) => (aa ( bb )) .
5. ((aa (bb) (bb)) (aa (bb) (bb))) => ( (bb) (aaaa (bb) (bb))) .
5.1. ((bb) (aaaa ( b b) ( b b))) => ((bb) (aaaa b (bb))) .
5.1.1. (( b b) (aaaa b (bb))) => ( b (aaaab (bb))) .
5.2. ((bb) (aaaa ( bb ) ( bb ))) => ((bb) (aaaa bb )) .
5.2.1. (( b b) (aaaa b b)) => ( b (aaaabb)) .
5.2.2. (( bb ) (aaaa bb )) => ( bb (aaaa)) .
6. ((aa (bb) (bb) ) (aa (bb) (bb) )) => ( (bb) (bb) (aaaa)) .
6.1. (( b b) ( b b) (aaaa)) => ( b (bb) (aaaa)) .
6.2. (( bb ) ( bb ) (aaaa)) => ( bb (aaaa)) .
7. ((a (bb) (bb)) (a (bb) (bb))) => ( a (bb) (aa (bb) (bb))) .
7.1. (a (bb) (aa ( b b) ( b b))) => (a (bb) (aa b (bb))) .
7.1.1. (a ( b b) (aa b (bb))) => (a b (aab (bb))) .
7.2. (a (bb) (aa ( bb ) ( bb ))) => (a (bb) (aa bb )) .
7.2.1. (a ( b b) (aa b b)) => (a b (aabb)) .
7.2.2. (a ( bb ) (aa bb )) => (a bb (aa)) .
8. (( aa (bb) (bb)) ( aa (bb) (bb))) => ( aa (bb) ((bb) (bb))) .
8.1 (aa (bb) (( b b) ( b b))) => (aa (bb) ( b (bb))) .
8.1.1. (aa ( b b) ( b (bb))) => (aa b (b (bb))) .
8.2. (aa (bb) (( bb ) ( bb ))) => (aa (bb) ( bb )) .
8.2.1. (aa ( b b) ( b b)) => (aa b (bb)) .
8.2.2. (aa ( bb ) ( bb )) => (aa bb ) .
9. ((a (bb) (bb) ) (a (bb) (bb) )) => ( a (bb) (bb) (aa)) .
9.1. (a (aa) ( b b) ( b b)) => (a b (aa) (bb)) .
9.2. (a (aa) ( bb ) ( bb )) => (a bb (aa)) .
10. (( aa (bb) (bb) ) ( aa (bb) (bb) )) => ( a (bb) (bb) ) .
10.1. (a ( b b) ( b b)) => (a b (bb)) .
10.2. (a ( bb ) ( bb )) => (a bb ) .

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


مشغل التكوين . التعريف ∀U ⊂ S ، U ≠ ∅ ، التكوين [U] ≠ ∅ ، التكوين [U] ∈ S. يقبل العديد من أسطر الإدخال ، ويعيد سطر واحد. العمل. يقوم المشغل بإعداد المحتوى للتكرار التالي للخوارزمية. بعد إجراء عامل التجريد ، تظهر العديد من الخطوط ، وفي مرحلة التكوين ، يحدث اختيار وتسلسل الخطوط للتكرار التالي للخوارزمية. بمزيد من التفصيل ، سأنظر في هذه المشكلة في أقسام التحسين والاستخدام العملي. في أبسط الحالات ، يقوم مشغل التركيب بإجراء تسلسل بسيط لجميع نتائج التجريد. لذلك نحن نحددها. مثال: التركيبة [ التجريد [((a (b)) (a (b))]]] = التكوين [{(a (b ((b))) ، ((b) (aa)) ، (a ( ب))}] = ((أ ((ب) (ب))) ((ب) (أأ)) (أ (ب))) .

خصائص الخوارزمية


الخوارزمية تنتج سلاسل. مجموعة من جميع الخطوط التي يتم تشكيلها نتيجة للتكرار التكراري للخلية ستسمى "إخراج الخوارزمية" أو ببساطة "إخراج". تعريف الاستدلال. T s ≝ {t n | t n + 1 = التركيبة [ التجريد [ الاستنتاج [t n ]]] ؛ t 0 = s؛ t n ، s ∈ S ؛ n ∈ N }. T s هو ناتج البذرة. في تلك الحالات التي يكون فيها T بدون معلمة ، نتحدث عن استنتاج أي بذرة. خاصية الاستدلال: ∀s و e ∈ S و s ≠ ∅ و e ≠ ∅ و s ≠ e و T sT e = ∅ . هذا يعني أن كل عنصر إخراج يتوافق بشكل فريد مع البذرة. نتيجة لذلك ، الاستنتاج فريد لكل بذرة.

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

تطبيق عملي


“ ”. , “”. . , — , . “ ”. , , .

. , . , :

  1. .
  2. .
  3. , S .
  4. , - , S .

, . .

S NextThought(S prevThought, S ExternalSignal, int exposure = 1) { S t = composition[prevThought, ExternalSignal]; for (int i = 0; i < exposure; i++) t = composition[abstraction[deduction[t]]]; return t; } EnvironmentModel e; S s = encode(e.GetState()); S o = ∅; while (0) { S o = NextThought(o, s); e.ImpactTool.perform(decode(o)); s = encode(e.GetState()); } 

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

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

1. شظايا مع المفردات غير معروفة.
2. بناء جملة غير معروف.
3. دلالات غير معروفة.
4. شظيا وتصحيح شظايا صحيحة.

محتوى كل هذه الفئات هو تعسفي وفقا لطريقة الحدوث. هذا هو ، حتى في حالة الشظايا الصحيحة نحويًا - هذا حادث وليس معروفًا ما الذي يعنيه كوليا لهم ، لأن معناه الداخلي لا يمكن الوصول إليه إلا لنفسه. في البداية ، لا توجد معايير لربط أفكار Kolya بشكل صحيح والإجراءات المقابلة للأداة. وفي هذا الأمر يبقى الاعتماد فقط على كوليا نفسه. إن سلوكه تعسفي وأنه فقط يمكنه فهم دوافعه مع زيادة درجة تنظيم تفكيره. في هذه الحالة ، سيكون أي مخطط منطقي للرد على أفكار Kolya مقبولًا ومثمرًا ، والسؤال الوحيد هو الفعالية النسبية لمختلف المخططات. الخيار الأساسي هو الرد على جميع الأجزاء الصحيحة نحويًا حتى لو كانت سخيفة في المحتوى. بشكل عام ، كل شيء يمكن تحويله إلى شروط الترميز الأصلي يجب أن يتحول ويتفاعل. وهكذا إلى أن "يحل" كول لردود فعل ذات معنى. وبالطبع ، فإن النموذج الأكثر البلاستيك للبيئة مع عدد كبير من درجات الحرية ستكون مفيدة. الوسيط ، بطريقة ما ، سيصبح جثة كوليا.

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

1. في مرحلة التكوين ، ليس من الضروري أن تدرج في النتيجة جميع التجريدات الكثيرة. لكي تحتفظ الخوارزمية بخصائصها الأساسية ، يكفي أن تختار من الصفين الناتجين المستقلين فقط من المجموعة. معيار الاستقلال هو الفرق غير الصفر للأرقام الأولى في الترقيم الهرمي لنتائج التجريد. ننتقل إلى المثال العظيم ، وهو أعلى تحت المفسد. يتم ترقيم جميع الأسطر وفقًا لمبدأ abcd .. يتم استدعاء زوج من الأسطر مع الفهارس a1.b1.c1.d1 ... ، a2.b2.c2.d2 ... مستقلة إذا a1 ≠ a2 . وهذا يعني أنه من الممكن تقسيم نتيجة التجريد بأكملها إلى أزواج مستقلة ولكل زوج في الخطوة التالية ، ابدأ فرع حسابي خاص به. علاوة على ذلك ، ليست هناك حاجة لاستخدام جميع نتائج التجريد. في الحالة الأدنى ، يمكنك تحديد زوج واحد فقط من الخطوط ، وتجاهل جميع الباقي (تفقد بشكل لا رجعة فيه) وسيتم الحفاظ على جميع مبادئ التفكير. بالنظر إلى القدرة على فقدان النتائج ، من الممكن تنظيم مرحلة اختيار إضافية ، والتي بطريقة ما ، على سبيل المثال ، وفقًا للدلالة الإحصائية ، لتحديد المحتوى لإجراء مزيد من العمليات الحسابية.

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

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

التفسير والتعليق


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

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

وجهات نظر إضافية على الخوارزمية . خوارزمية التفكير هي ، بما في ذلك:

1. التنفيذ البناء للاستعارة. التفكير هو مجازي في الأساس. لا توجد معاني أخرى بجانب المجاز (ممكن). ومع ذلك ، بالمعنى المجازي ، المعاني الحرفية (الخوارزميات) ممكنة.
2. نموذج التنظيم الذاتي للفوضى المطلقة. نموذج للعفوية المفاهيمية.
3. نموذج لسلوك مستقل ذات دوافع ذاتية. نموذج الإبداع.
4. لغة التنظيم الذاتي.
5. نموذج التقريب البناء ، للدلالات غير البناءة ، الممكنة الدلالة.

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

lim n → ∞ [t n + 1 = التركيبة [ التجريد [ خصم [t n ]]]] ؛ t 0 = s؛ t n ، s ∈ S ؛ ن ∈ ن

Source: https://habr.com/ru/post/ar440424/


All Articles