المنطق والشرح والتفاهم المستقبلي

اكتشاف يتعلق بالمنطق


المنطق هو أساس أشياء كثيرة. ولكن ما هي أسس المنطق نفسه؟

في المنطق الرمزي ، يتم تقديم رموز مثل p و q للإشارة إلى عبارات (أو "مقترحات") من النوع "هذا مقال مثير للاهتمام". لا تزال هناك قواعد منطقية معينة ، على سبيل المثال ، بالنسبة لأي p و أي q فإن التعبير NOT (p AND q) يشبه (NOT p) أو (NOT q).

لكن من أين تأتي "قواعد المنطق" هذه؟ المنطق هو نظام رسمي. مثل الهندسة الإقليدية ، يمكن بناؤها على البديهيات. ولكن ما هي البديهيات؟ يمكنك أن تبدأ بعبارات مثل p AND q = q AND p ، أو NOT NOT p = p. ولكن كم من البديهيات مطلوبة؟ كيف يمكن أن تكون بسيطة؟

هذا السؤال منذ فترة طويلة مؤلمة. لكن في الساعة 20:31 يوم الأحد 29 يناير 2000 ، ظهرت البديهية الوحيدة على شاشة جهاز الكمبيوتر الخاص بي. لقد أظهرت بالفعل أنه لا يوجد شيء أكثر بساطة ، لكنني سرعان ما أثبتت أن هذه البديهية الصغيرة كانت كافية لإنشاء كل المنطق:


كيف عرفت أنها كانت صحيحة؟ لأنني جعلت الكمبيوتر يثبت ذلك. وإليك الدليل الذي طبعته في كتاب " نوع جديد من العلوم " (متوفر بالفعل في مستودع بيانات Wolfram ):


باستخدام أحدث إصدار من Wolfram Language ، يمكن لأي شخص إنشاء هذا الدليل في مدة لا تزيد عن دقيقة واحدة. وكل خطوة له من السهل التحقق منها . ولكن لماذا ستكون النتيجة صحيحة؟ كيف أشرح ذلك؟

يتم طرح أسئلة مماثلة بشكل متزايد حول جميع أنواع أنظمة الحوسبة والتطبيقات المتعلقة بالتعلم الآلي والتعلم الذكي. نعم ، نرى ما يحدث. ولكن هل يمكننا فهم هذا؟

أعتقد أن هذه القضية لها أهمية جوهرية - وهي ذات أهمية حاسمة بالنسبة لمستقبل العلوم والتكنولوجيا ، وبالنسبة لمستقبل التنمية الفكرية.

ولكن قبل أن نتحدث عن هذا ، دعونا نناقش البديهية التي اكتشفتها.

القصة


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

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

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


ولكن هل ، أو ، أو ليست ضرورية حقًا للمنطق؟ بعد العقد الأول من القرن العشرين ، اكتشف العديد من الأشخاص أن العملية الوحيدة التي نسميها الآن NAND ستكون كافية ، وعلى سبيل المثال ، يمكن حساب p OR q على أنها (p NAND p) NAND (q NAND q). يمكن أن يظل "الاكتمال الوظيفي" لـ NAND غريبًا إلى الأبد إن لم يكن لتطوير تقنية أشباه الموصلات - فهو ينفذ جميع مليارات العمليات المنطقية في معالجات دقيقة باستخدام مزيج من الترانزستورات التي تؤدي وظيفة NAND فقط أو NOR المرتبطة بها.

حسنًا ، إذن كيف تبدو بديهيات المنطق من حيث NAND؟ هذه هي النسخة الأولى المعروفة منها ، التي سجلها هنري شيفر في عام 1913 (هنا تشير النقطة إلى NAND):


في عام 1910 ، قام Principia Mathematica ، وهو عمل من ثلاثة مجلدات حول منطق وفلسفة الرياضيات لمؤلفي Alfred North Whitehead و Bertrand Russell ، بتعميم فكرة أنه ربما يمكن استنتاج كل الرياضيات من المنطق. بالنظر إلى ذلك ، كان من المثير للاهتمام دراسة مسألة مدى بساطة البديهيات في المنطق. تم تنفيذ العمل الأكثر أهمية في هذا المجال في لفيف ووارسو (ثم كانت هذه المدن جزءًا من بولندا) ، ولا سيما يان لوكاسيفيتش (كأثر جانبي لعمله في عام 1920 ، اخترع سجلاً "بولنديًا" لا يحتاج إلى أقواس). في عام 1944 ، في سن ال 66 ، فر لوكاسيفيتش من الجيش السوفيتي المتقدم وفي عام 1947 انتهى الأمر في أيرلندا.

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

بحلول عام 1949 ، اكتشفت ميريديث نظامًا ثنائي البديهية:


بعد حوالي 20 عامًا ، في عام 1967 ، تمكن من تبسيط هذا إلى:


هل من الممكن تبسيط هذا أكثر؟ تم Meredith العبث مع هذا لسنوات ، معرفة مكان آخر يمكنك إزالة NAND إضافية. ولكن بعد عام 1967 ، لم يتقدم أكثر (وتوفي في عام 1976) ، على الرغم من أنه في عام 1969 وجد نظامًا ثلاثي البديهيات:


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

بعد أن أمضيت التسعينيات في محاولة لفهم عمومية هذه الظاهرة ، أردت في النهاية أن أرى كيف يمكن تطبيقها على الرياضيات. في الرياضيات ، نبدأ في الواقع في العمل مع البديهيات (على سبيل المثال ، في الحساب ، في الهندسة ، في المنطق) ، ثم نحاول إثبات مجموعة كاملة من النظريات المعقدة على أساسها.

ومع ذلك ، كيف يمكن أن تكون البديهيات بسيطة؟ هذا ما أردت تأسيسه في عام 1999. كمثال أول ، قررت دراسة المنطق (أو ، معادلة ، الجبر المنطقي). إن دحض كل توقعاتي وتجربتي مع automata الخلوية وآلات Turing والأنظمة الأخرى - بما في ذلك المعادلات التفاضلية الجزئية - تشير إلى أنه يمكنك ببساطة البدء في سرد ​​أبسط الحالات الممكنة ورؤية شيء ما في وقت ما مثيرة للاهتمام.

ولكن هل من الممكن "فتح المنطق" بهذه الطريقة؟ لم يكن هناك سوى طريقة واحدة لقول هذا. وفي نهاية عام 1999 ، رتبت كل شيء لبدء استكشاف مساحة جميع أنظمة البديهية الممكنة ، بدءًا من أبسطها.

بمعنى من المعاني ، فإن أي نظام من البديهيات يحدد مجموعة من القيود ، على سبيل المثال ، ص. إنها لا تقول ماهية p ، q ، إنها تعطي فقط الخصائص التي يجب على p * q أن تفي بها (على سبيل المثال ، يمكنها أن تقول أن q · p = p · q). والسؤال المطروح هنا هو ما إذا كان من الممكن اشتقاق كل هذه النظريات من نظريات المنطق المنطقي عندما يكون p · q هو Nand [p، q]: لا أكثر ولا أقل.

شيء يمكن التحقق منه مباشرة. يمكننا أن نأخذ نظام البديهيات ونرى الأشكال التي ترضي البديهيات ، إذا كانت p و q ، على سبيل المثال ، صحيحة وكاذبة. إذا كان نظام البديهيات هو أن q · p = p · q ، ثم نعم ، يمكن أن تكون p * q Nand [p، q] - لكن ليس بالضرورة. كما يمكن أن يكون And [p، q] أو Equal [p، q] ، أو العديد من الخيارات الأخرى التي لا تفي بنفس مستويات وظيفة NAND في المنطق. ولكن بحلول الوقت الذي نصل فيه إلى نظام البديهيات {((p * p) · q) · (q · p) = q} ، نصل إلى الحالة التي فيها Nand [p، q] (وما يعادله Nor [p ، q]) تبقى نماذج p · q الوحيدة العاملة - على الأقل إذا افترضنا أن q و p لها فقط قيمتان ممكنتان.

هل هذا إذن نظام من البديهيات للمنطق؟ رقم لأنه يعني ، على سبيل المثال ، وجود متغير حيث p و q له ثلاث قيم ، لكن هذا ليس في المنطق. ومع ذلك ، فإن حقيقة أن هذا النظام من البديهيات من البديهية واحد ما نحتاجه يدل على أنه يستحق البحث عن بديهيه واحده التي يستنسخ منها المنطق. هذا هو بالضبط ما فعلته في يناير 2000 (في وقتنا هذا ، تم تسهيل هذه المهمة بفضل الوظيفة الجديدة والمريحة للغاية لـ Wolfram Language، Groupings).

كان من السهل إلى حد ما التحقق من أن البديهيات التي يوجد بها 3 NANDs أو أقل (أو "مشغلي النقاط") لا تعمل. بحلول الساعة 5 من صباح يوم الأحد 29 يناير (نعم ، ثم كنت بومة) ، وجدت أن البديهيات التي تحتوي على 4 NANDs لن تعمل أيضا. عندما توقفت عن العمل في حوالي الساعة 6 صباحًا ، كان لدي 14 مرشحًا في يدي مع خمسة NANDs. لكن مع الاستمرار في العمل مساء الأحد وإجراء اختبارات إضافية ، اضطررت إلى التخلي عنها جميعًا.

وغني عن القول ، كانت الخطوة التالية للتحقق من البديهيات مع 6 NAND. كان هناك 288684 منهم ، لكن شفرتي عملت بكفاءة ، ولم يمر الكثير من الوقت قبل ظهور التالي على الشاشة (نعم ، من Mathematica الإصدار 4):


في البداية لم أفهم ما فعلت. لم أكن أعلم إلا أن لدي 25 من البديهيات غير المكافئة مع 6 NANDs التي تمكنت من التقدم أكثر من البديهيات مع 5 NANDs. ولكن هل كانت هناك البديهيات التي ولدت المنطق؟ كان لدي طريقة تجريبية قادرة على التخلص من البديهيات غير الضرورية. ولكن الطريقة الوحيدة لمعرفة اليقين من صحة البديهية المعينة كانت إثبات قدرتها على التكاثر بنجاح ، على سبيل المثال ، بديهيات شايفر من أجل المنطق.

استغرق الأمر بعض الوقت مع البرامج ، لكن بعد بضعة أيام وجدت أن معظم البديهيات الـ 25 التي تم تلقيها لم تنجح. نتيجة لذلك ، نجا اثنان:



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

بعد فترة وجيزة ، اكتشفت أنظمة من البديهيات مع 6 NANDs بشكل عام ، والتي ، كما أثبتت ، قادرة على إعادة إنتاج المنطق:



وإذا أخذنا التبادلية p · q = q · p كأمر مسلم به ، فيمكن الحصول على المنطق من البديهية التي تحتوي على 4 NAND فقط.

لماذا هذا مهم


حسنًا ، دعنا نقول إنه لأمر رائع أن تكون قادرًا على القول بأن شخصًا ما "أكمل العمل الذي بدأه أرسطو" (أو على الأقل Boole) واكتشف أبسط نظام ممكن من البديهيات للمنطق. هل هو مجرد وسيلة للتحايل ، أم أن هذه الحقيقة لها عواقب مهمة؟

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

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

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

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

لكن اكتشافي لنظام البديهية أجاب على السؤال "إلى أي مدى هو المنطق؟" بالنسبة لأشياء مثل الإضافات الخلوية ، من السهل جدًا ترقيم (كما فعلت في الثمانينيات) جميع الأوتوماتيكية الخلوية الممكنة. من الصعب جدًا القيام بذلك باستخدام أنظمة البديهية - ولكن ليس كثيرًا. في أحد الأساليب ، يمكن أن تشير البديهية إلى 411 ؛ 3 ؛ 7 ؛ 118 - أو بلغة Wolfram:


وعلى الأقل في مساحة الأشكال الوظيفية الممكنة (مع مراعاة توصيف المتغيرات) ، يوجد تمثيل مرئي لموقع هذه البديهية:


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

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

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


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

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

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

بمعنى ما ، في العصور الوسطى ، بدا المنطق على هذا النحو - عندما تم تمثيل المقاطع اللغوية الممكنة (أنواع مقبولة من الحجج) في شكل فن الإستذكار اللاتيني مثل bArbArA و cElErAnt. لذلك ، من المثير للاهتمام الآن أن نجد تمثيلًا بسيطًا لما نعرفه الآن باعتباره أبسط نظام من البديهيات للمنطق.

بدءاً من ((p · q) · r) · (p · ((p · r) · p)) = r ، يمكن تمثيل كل p · q كبادئة أو إدخال بولندي (عكس "الإدخال البولندي العكسي" لآلة حاسبة HP ) في شكل Dpq - وبالتالي ، يمكن كتابة البديهية بأكملها كـ = DDDpqrDpDDprpr. يوجد أيضًا برنامج تذكير بالإنجليزية حول هذا الموضوع - قائمة انتظار OuT ، حيث يتم لعب الأدوار p ، q ، r بواسطة u ، r ، e. أو يمكنك إلقاء نظرة على الأحرف الأولى من الكلمات في الجملة التالية (حيث B هي عامل تشغيل ، و p ، q ، r هي a ، p ، c): "شيئًا فشيئًا ، برنامج محسوب من قبل Boolean algebra أفضل بديلة ثنائية تغطي جميع الحالات" [ أفضل البديهية الثنائية للجبر Boolean المحسوبة عن طريق برنامج يصف تدريجيا جميع الحالات].

ميكانيكا الإثبات


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


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


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


بشكل عام ، أثبتت سلسلة كاملة من الليمون المتوسطة هنا ، مما يسمح لنا باستنتاج النتيجة النهائية. بين lemmas هناك شبكة كاملة من التبعيات المتبادلة:


لكن الشبكات المشاركة في اشتقاق كل البديهيات الثلاثة في نظام البديهية Scheffer - بالنسبة للأخير ، يتم استخدام 504 خطوة لا تصدق:


نعم ، من الواضح أن هذه الشبكات مربكة للغاية. ولكن قبل مناقشة ما يعنيه هذا التعقيد ، دعونا نتحدث عما يحدث في كل خطوة من هذه الأدلة.

الفكرة الرئيسية بسيطة. تخيل أن لدينا بديهية مكتوبة ببساطة كـ p · q = q · p (وهذا يعني رياضيا أن المشغل تبديلي). بتعبير أدق ، تقول البديهية أن أي تعبيرات p و q ، p · q تعادل q · p.

حسنًا ، دعنا نقول أننا نريد أن نستنتج من هذه البديهية أن (أ) ب) · (ج · د) = (د · ج) · (ب · أ). يمكن القيام بذلك باستخدام البديهية لتحويل d · c إلى c · d و b · a إلى a b ؛ وأخيراً (c · d) · (a · b) إلى (a · b) · (c · d )

يقوم FindEquationalProof بنفس الشيء ، على الرغم من أنه لا يتبع هذه الخطوات بنفس الترتيب تمامًا ، كما يغير الجانب الأيسر من المعادلة واليمين.


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

يمكن للمرء أن يقرر: لماذا لا نجرب كل المتواليات الممكنة ، وإذا كان هناك تسلسل عامل بينها ، فعندئذ يجب أن يتم العثور عليه في النهاية؟ , . .

, , . ,


: , :


لماذا تعمل؟ , , , . ?

. , , , «» . 1970- ( - ), , «» , .

, FindEquationalProof ( , «master of trees»). .. « », , , . - , , , , , , , . , , :


4 :


. , :


:


?


, ? , . , . , , . 1931 , , , .

, . , (, - ). .


قد يتقرر أنه إذا كان النظام يعتمد على قاعدة بسيطة ، فيجب أن يكون هناك طريقة سريعة لفهم ما يقوم به النظام. لكن هذا ليس كذلك. , , , , . , , , , .

: , , . , , -, . , , , .

- , -. , , , , , , . , , . – , , , .

, – , , – , , , , .

, – , .

? , , . ( - ). , – .

?


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

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

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

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

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

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

ماذا عن الدليل؟ هل هناك أي طرق واضحة ودقيقة لكتابة الأدلة؟ نعم محتمل ، رغم أن هذا ليس بالأمر السهل. على الرغم من أن مؤسسة Wolfram Language موجودة منذ 30 عامًا ، إلا أنه ظهر اليوم فقط طريقة معقولة لتقديم أدلة مباشرة هيكلية ، مثل واحدة من البديهيات أعلاه.

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

خلق وضوح


معظم الوقت ، الأشخاص الذين يستخدمون Wolfram Language أو Wolfram | Alpha ، يريدون حساب شيء ما. إنهم بحاجة إلى الحصول على النتيجة ، وليس فهم سبب حصولهم على هذه النتائج. ولكن في Wolfram | Alpha ، خاصة في مجالات مثل الرياضيات والكيمياء ، تتمثل إحدى السمات الشائعة بين الطلاب في إنشاء حلول "خطوة بخطوة".


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

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

ماذا عن الحصول على إصدارات واضحة من الأشياء الأخرى؟ على سبيل المثال ، عمل البرامج في الحالة العامة. أو دليل على نظام البديهية الخاص بي.

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

يجب بذل الجهود لجعل برنامج Wolfram Language وصفًا جيدًا للعملية ، ولجعل النص الإنجليزي العادي وصفًا جيدًا للعملية. ومع ذلك ، يمكنك الحصول على جزء من رمز Wolfram Language الذي يشرح بوضوح تام كيف يعمل كل شيء بمفرده.

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

في هذه الحالة ، وجدت أن مقالات الحوسبة المقدمة كدفاتر Wolfram هي أداة رائعة لشرح ما يحدث. من المهم أن تكون Wolfram Language ، تسمح لك بتشغيل حتى أصغر أجزاء البرامج بشكل منفصل (مع التعبيرات الرمزية المقابلة مثل بيانات المدخلات والمخرجات). بعد ذلك ، يمكنك تخيل تسلسل خطوات البرنامج كسلسلة من عناصر الحوار التي تشكل أساس دفتر الحوسبة.

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

بالطبع ، إنشاء تصورات جيدة أقرب إلى الفن. ولكن في Wolfram Language ، قمنا بالكثير من العمل لأتمتة هذا الفن - غالبًا بمساعدة التعلم الآلي المعقدة وغير ذلك من الخوارزميات التي تؤدي أشياء مثل تخطيط الشبكات أو العناصر الرسومية.

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

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

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

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

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

طبيعة التفسير


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

ما المطلوب من الناس من أجل فهم شيء ما؟ نحن بحاجة إلى تحقيق ذلك بطريقة أو بأخرى. خذ نموذج آلي خلوي مع سلوك معقد. لا يواجه الكمبيوتر أي مشاكل من أجل متابعة كل خطوة في تطوره. مع الجهود الهائلة والعمل الجاد ، يمكن للشخص إنتاج عمل الكمبيوتر.

ولكن لا يمكن القول أنه في هذه الحالة "يفهم" الشخص ما يفعله إنسان آلي. لهذا ، يجب على الشخص أن يتحدث بسهولة عن سلوك الأوتوماتيكي الخلوي على مستوى عالٍ. أو بعبارة أخرى ، ينبغي أن يكون الشخص قادرًا على "سرد قصة" حول سلوك الأوتوماتون الذي يمكن أن يفهمه الآخرون.

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

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

وإذا كنا نريد أن نبدأ في "شرح" سلوك الأوتوماتيكي الخلوي ، فسنبدأ بتسمية الهياكل ، وبعد ذلك سنتحدث عن ما يحدث من وجهة نظر هذه الهياكل.


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

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

هذا مشابه لضغط المعلومات: نستخدم إنشاءات رمزية لإيجاد طريقة أقصر لوصف الأشياء التي تهمنا.

لنفترض أننا أنشأنا بنية عملاقة ، على سبيل المثال ، بنية رياضية:


الخطوة الأولى هي خلق نوع من التمثيل الداخلي الرفيع المستوى. على سبيل المثال ، يمكننا اكتشاف الهياكل القابلة لإعادة الاستخدام. ويمكننا أن نعطيهم أسماء. ثم اظهر "الهيكل العظمي" للهيكل كله بمساعدتهم:


نعم ، هذا المخطط ، على غرار "ضغط القاموس" ، مفيد للوصول إلى المستوى الأول من التفسير.

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

ماذا يمكنك أن تفعل؟ نحن بحاجة إلى التوصل إلى نوع من الوصف لمستوى أعلى. ماذا يمكن أن يكون؟

مفهوم المفاهيم


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

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

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

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

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

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

بصراحة ، إن ما يحدث لـ FeatureSpacePlot - كما هو الحال في عملية التنمية الفكرية للإنسان - هو ، إلى حد ما ، عملية خطوة بخطوة. لتوزيع الكائنات حسب مساحة الميزة ، تستخدم FeatureSpacePlot الميزات التي تعلمتها لاستخراجها من محاولات التصنيف السابقة.

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

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

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

مشكلة التعلم


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

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

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

المشكلة هي: في أي لحظة في التاريخ ، هناك مجموعة معينة من المفاهيم المهمة للحياة في العالم في هذه الفترة. ونعم ، مع تطور الحضارة ، يتم الكشف عن مفاهيم جديدة وإدخال مفاهيم جديدة. : , .

. , . , . – , , , .

, , Wolfram Language . , ( , ) .

, , , ( , ). , .

, - , . – , , – . : , . , , - .

? , , ? ( ), , .

, , , , « », . , , , , , , , , , - .

, – , , XIX , XX-.


, , . , , , .

. , . , – , , , , , , , , .

? , , . , . , , – , , - .

? . , . – , eπ163. : « » - « »?

. ( ) , - , ?

, , . . , , , , « » , .

, , , . , - -, , « » .

, , – . , ( , P = NP, ..) .

, , ? , , , , - , . , , , , , , , , .

, « » , . , , .

« »? , . « » , - – – .

, 30 . , (, ). .

– (). , XIII , , 1980- .

: , , , .

, : , . ? , . , . .

, ? , . – , , , – , .

, - , : ( «»), , , – .


. ? . , , . « -». . , -.

, , ( , , , ). , , , , .

?

, - , . , , «» , .

, . (- 2007 ) « ». , «». , , – .

, , , . , , . , «» . , - , .

. Wolfram Language, « », . , , , .

– – . « », , . , . , , .

Wolfram Language, , ( , ).

, . , - « », , « » .

« »? , , , ( ) , , .

, , , . ,
( , p = p , p AND p = p – , ..). . , .

, , , . : 14 , , , , ( AND – ∧, OR ∨, NOT ¬.)


, , «» , . , - , , , , – , .

NAND, , , ? -, , , :


NAND , AND, OR NOT. , , , NAND . NAND NAND. , : a = (a · a) · (a · a) , a = (a · a) · (a · b) , (a · a) · b = (a · b) · b «», .

, « » NAND, ? , « » .

, . , , , FindEquationalProof. , NAND a · a = a · ((a · a) · a), (a · ((a · a) · a)) · (a · (a · ((a · a) · a))) = a.

? , FindEquationalProof. , , .

, ? a · b = b · a , . (a · a) · (a · a) = a , . , (a · a) · (b · a) = a.

? . NAND , ( , FindEquationalProof):


a · b = b · a , 100 . (a · a) · (a · a) = a ; « » FindEquationalProof, , ( ). (a · a) · (b · a) = a , , a · b = b · a. , a · b = b · a, .

, , , . , « » a · b = b · a (a · a) · (b · a) = a, – , , «».


?


. , , , . , , , .

; . , .

«, » ? « » – . , , , .

, – , – -. , , «», .

? - , . , , . ?

. , , , , .

, , : , («», «», ..). , . , (- " "), .

? . , « ?» , . , , . .

, , , , . . , , . , .

-, , - , , , , .

, ? , , .

, . , , , . , ( , ). , , , « », , « ».

, , .


, , , . . , , , , , , .

, . , . , . , , « » .

, , . , , .

, , ?

, . , , . ?

, , – , .

? , « », , . , . , «». , « » , «».


?

, , . . , , .

– , , – . , , , .

, , , . , , , , .

, , , , . , , , «» «» .

? , , . , , . , , .

, ? , , . – , – , .

«»? , . , . , .

- , . . , , , – – .

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


All Articles