حساب الأحداث

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

يمثل حساب الأحداث حالة العالم في أي وقت من خلال مجموعة جميع الحقائق (المسماة بالعوامل المؤثرة ) التي تسري في ذلك الوقت. تبدأ الأحداث العوامل المؤثرة وتنهيها.

يُعتبر الأمر سلساً في وقت ما إذا تم بدء الأمر السلس بواسطة حدث يحدث في وقت سابق ولم يتم إنهاء الأمر السلس بواسطة أي حدث يحدث في هذه الأثناء.

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

صِيغت النسخة الأصلية من حساب الأحداث، التي قدمها روبرت كوالسكي ومارك سيرجوت عام 1986، [ 1 ] كبرنامج منطقي وطُوِّرت لتمثيل السرديات وتحديثات قواعد البيانات. [ 2 ] أوضح كاف إشغي كيفية استخدام حساب الأحداث في التخطيط، [ 3 ] وذلك باستخدام الاستدلال الاستنباطي لتوليد إجراءات افتراضية لتحقيق حالة مرغوبة.

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

أظهر فان لامبالجن وهام كيف يمكن استخدام صياغة حساب الأحداث كبرنامج منطقي مقيد لإعطاء دلالات خوارزمية للزمن والجانب في اللغة الطبيعية. [ 5 ]

الطليقات والأحداث

في حساب الأحداث، تُجسّد المتغيرات . وهذا يعني أن المتغيرات تُمثَّل بمصطلحات . على سبيل المثال،حoلدsأت(oن(زرهـهـن_بلoجك،تأبلهـ)،1){\displaystyle {\mathit {holdsAt}}(on(green\_block,table),1)}يعبر عن أنزرهـهـن_بلoجك{\displaystyle {\mathit {green\_block}}}موجود فيتأبلهـ{\displaystyle {\mathit {table}}}في ذلك الوقت1{\displaystyle 1}. هناحoلدsأت{\displaystyle {\mathit {holdsAt}}}هو مسند، بينماoن(زرهـهـن_بلoجك،تأبلهـ){\displaystyle {\mathit {on(green\_block,table)}}}هو مصطلح. بشكل عام، الصيغة الذرية

حoلدsأت(ولuهـنت،تأنامهـ){\displaystyle {\mathit {holdsAt}}(fluent,time)}يعبر عن أنولuهـنت{\displaystyle {\mathit {fluent}}}يعقد فيتأنامهـ.{\displaystyle {\mathit {الوقت.}}}

كما يتم تجسيد الأحداث وتمثيلها بمصطلحات. على سبيل المثال،حأصصهـنsأت(مovهـ(زرهـهـن_بلoجك،رهـد_بلoجك)،3){\displaystyle {\mathit {happensAt}}(move(green\_block,red\_block),3)}يعبر عن أنزرهـهـن_بلoجك{\displaystyle {\mathit {green\_block}}}يتم نقله إلىرهـد_بلoجك){\displaystyle {\mathit {red\_block)}}}في ذلك الوقت3{\displaystyle 3}. على العموم:

حأصصهـنsأت(هـvهـنت،تأنامهـ){\displaystyle {\mathit {happensAt}}(event,time)}يعبر عن أنهـvهـنت{\displaystyle {\mathit {event}}}يحدث فيتأنامهـ.{\displaystyle {\mathit {الوقت.}}}

كما يتم تمثيل العلاقات بين الأحداث والعوامل التي تبدأها وتنهيها بواسطة الصيغ الذرية:

أنانأناتأناأتهـs(هـvهـنت،ولuهـنت،تأنامهـ){\displaystyle {\mathit {initiates}}(event,fluent,time)}يعبر عن ذلك إذا كانهـvهـنت{\displaystyle {\mathit {event}}}يحدث فيتأنامهـ{\displaystyle {\mathit {time}}}ثمولuهـنت{\displaystyle {\mathit {fluent}}}يصبح ذلك صحيحاً بعدتأنامهـ{\displaystyle {\mathit {time}}}.
تهـرمأنانأتهـs(هـvهـنت،ولuهـنت،تأنامهـ){\displaystyle {\mathit {terminates}}(event,fluent,time)}يعبر عن ذلك إذا كانهـvهـنت{\displaystyle {\mathit {event}}}يحدث فيتأنامهـ{\displaystyle {\mathit {time}}}ثمولuهـنت{\displaystyle {\mathit {fluent}}}يتوقف هذا عن كونه صحيحًا بعدتأنامهـ{\displaystyle {\mathit {time}}}.

بديهية مستقلة عن المجال

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

توجد العديد من صيغ حساب الأحداث. لكن يمكن التعبير عن البديهية الأساسية لإحدى أبسط الصيغ وأكثرها فائدة كبديهية واحدة مستقلة عن المجال:

حoلدsأت(F،تي2){\displaystyle {\mathit {holdsAt}}(F,T2)\leftarrow }
[حأصصهـنsأت(هـ1،تي1)أنانأناتأناأتهـs(هـ1،F،تي1)(تي1<تي2){\displaystyle [{\mathit {happensAt}}(E1,T1)\wedge {\mathit {initiates}}(E1,F,T1)\wedge (T1<T2)\wedge }
¬هـ2،تي[حأصصهـنsأت(هـ2،تي)تهـرمأنانأتهـs(هـ2،F،تي)(تي1تي<تي2)]{\displaystyle \neg \exists E2,T[{\mathit {happensAt}}(E2,T)\wedge {\mathit {terminates}}(E2,F,T)\wedge (T1\leq T<T2)]}

تنص البديهية على أن

بطلاقةF{\displaystyle F} يحجز في وقت واحدتي2{\displaystyle T2}لو
حدثهـ1{\displaystyle E1}يحدث في وقتتي1{\displaystyle T1}و
هـ1{\displaystyle E1}المبادرونF{\displaystyle F}فيتي1{\displaystyle T1}و
تي1{\displaystyle T1}قبل تي2{\displaystyle T2}و
ليس الأمر كما لو أن هناك حدثاً ماهـ2{\displaystyle E2}ووقتتي{\displaystyle T}بحيث
هـ2{\displaystyle E2}يحدث فيتي{\displaystyle T}و
هـ2{\displaystyle E2}إنهاءF{\displaystyle F}فيتي{\displaystyle T}و
تي1{\displaystyle T1}يكون ذلك قبل أو في نفس الوقتتي{\displaystyle T}و
تي{\displaystyle T}قبلتي2{\displaystyle T2}.

يحل حساب الأحداث مشكلة الإطار من خلال تفسير هذه البديهية في منطق غير رتيب ، مثل منطق الرتبة الأولى مع التقييد [ 8 ] أو، كبرنامج منطقي ، في منطق جملة هورن مع النفي كفشل . [ 1 ] في الواقع، التقييد هو أحد الدلالات العديدة التي يمكن إعطاؤها للنفي كفشل، [ 9 ] وهو يرتبط ارتباطًا وثيقًا بدلالات الإكمال للبرامج المنطقية [ 10 ] (التي تفسر if على أنها if and only if ).

تحدد بديهية حساب الأحداث الأساسية ما يلي:حoلدsأت{\displaystyle holdAt} المسند من حيثحأصصهـنsأت{\displaystyle happensAt}،أنانأناتأناأتهـs{\displaystyle يبدأ}،تهـرمأنانأتهـs{\displaystyle terminates}،<{\displaystyle <}و{\displaystyle \leq }المسندات. لتطبيق حساب الأحداث على مشكلة معينة، يجب تعريف هذه المسندات الأخرى أيضًا.

يتوافق حساب الأحداث مع تعريفات مختلفة للمسندات الزمنية<{\displaystyle <}و{\displaystyle \leq }في معظم التطبيقات، يتم تمثيل الأوقات بشكل منفصل، بالأعداد الطبيعية، أو بشكل متصل، بالأعداد الحقيقية غير السالبة. ومع ذلك، يمكن أيضًا ترتيب الأوقات جزئيًا.

البديهيات المعتمدة على المجال

لتطبيق حساب الأحداث في مجال مشكلة معينة، من الضروري تحديدأنانأناتأناأتهـs{\displaystyle يبدأ}وتهـرمأنانأتهـs{\displaystyle terminates}المسندات الخاصة بهذا المجال. على سبيل المثال، في مجال عالم المكعبات ، حدثمovهـ(يابجهـجت،Pلأجهـ){\displaystyle move(Object,Place)}إن نقل جسم إلى مكان ما يبدأ عملية الانسيابيةoن(يابجهـجت،Pلأجهـ){\displaystyle on(Object,Place)}، مما يعبر عن أن الشيء موجود في المكان وينهي اللغة السلسةoن(يابجهـجت،Pلأجهـ1){\displaystyle on(Object,Place1)}وهذا يعبر عن أن الشيء موجود في مكان مختلف:

أنانأناتأناأتهـs(مovهـ(يابجهـجت،Pلأجهـ)،oن(يابجهـجت،Pلأجهـ)،تيأنامهـ).{\displaystyle {\mathit {initiates}}(move(Object,Place),on(Object,Place),Time).}
تهـرمأنانأتهـs(مovهـ(يابجهـجت،Pلأجهـ)،oن(يابجهـجت،Pلأجهـ1)،تيأنامهـ)دأناووهـرهـنت(Pلأجهـ1،Pلأجهـ).{\displaystyle {\mathit {terminates}}(move(Object,Place),on(Object,Place1),Time)\leftarrow different(Place1,Place).}

إذا أردنا أن نمثل حقيقة أنFلuهـنت{\displaystyle Fluent}إذا كانت الحالة الابتدائية ثابتة، ولتكن عند الزمن 1، فمع البديهية الأساسية البسيطة المذكورة أعلاه، نحتاج إلى حدث، ولتكنأنانأناتأناألأناsهـ(Fلuهـنت){\displaystyle التهيئة(طلاقة)}، مما يبدأFلuهـنت{\displaystyle Fluent}في أي وقت:

أنانأناتأناأتهـs(أنانأناتأناألأناsهـ(Fلuهـنت)،Fلuهـنت،تيأنامهـ).{\displaystyle {\mathit {initiates}}(initialise(Fluent),Fluent,Time).}

البديهيات المعتمدة على المشكلة

لتطبيق حساب الأحداث، بالنظر إلى تعريفاتحoلدsأت{\displaystyle holdAt}،أنانأناتأناأتهـs{\displaystyle يبدأ}،تهـرمأنانأتهـs{\displaystyle terminates}،<{\displaystyle <}و{\displaystyle \leq }من الضروري تحديد المسنداتحأصصهـنsأت{\displaystyle happensAt}المسندات التي تصف السياق المحدد للمشكلة.

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

حأصصهـنsأت(أنانأناتأناألأناsهـ(oن(رهـد_بلoجك،زرهـهـن_بلoجك)،0){\displaystyle {\mathit {happensAt}}(initialise(on(red\_block,green\_block),0)}
حأصصهـنsأت(أنانأناتأناألأناsهـ(oن(زرهـهـن_بلoجك،تأبلهـ)،0){\displaystyle {\mathit {happensAt}}(initialise(on(green\_block,table),0)}
حأصصهـنsأت(مovهـ(رهـد_بلoجك،تأبلهـ)،1){\displaystyle {\mathit {happensAt}}(move(red\_block,table),1)}
حأصصهـنsأت(مovهـ(زرهـهـن_بلoجك،رهـد_بلoجك)،3){\displaystyle {\mathit {happensAt}}(move(green\_block,red\_block),3)}

تطبيق برولوج

يُمكن تطبيق حساب الأحداث بشكل طبيعي في لغة برولوج النقية (دون أي ميزات لا تُفسَّر منطقيًا). على سبيل المثال، يُمكن تطبيق سيناريو عالم المكعبات المذكور أعلاه (مع تعديلات طفيفة) بواسطة البرنامج التالي:

holdsAt ( Fluent , Time2 ) :- before ( Time1 , Time2 ), happensAt ( Event , Time1 ), initiates ( Event , Fluent , Time1 ), not ( clipped ( Fluent , Time1 , Time2 )).clipped ( Fluent , Time1 , Time2 ) :- terminates ( Event , Fluent , Time ), happensAt ( Event , Time ), before ( Time1 , Time ), before ( Time , Time2 ).يبدأ ( تهيئة ( Fluent Fluent ، الوقت ). يبدأ ( تحريك ( الكائن ، المكان على ( الكائن ، المكان الوقت ). ينهي ( تحريك ( الكائن ، المكان على ( الكائن ، المكان 1 الوقت ).يحدث عند ( تهيئة ( على ( الكتلة_الخضراء ، الجدول ))، 0 ). يحدث عند ( تهيئة ( على ( الكتلة_الحمراء ، الكتلة_الخضراء ))، 0 ). يحدث عند ( تحريك ( الكتلة_الحمراء ، الجدول 1 ). يحدث عند ( تحريك ( الكتلة_الخضراء ، الكتلة_الحمراء 3 ).

يختلف برنامج Prolog عن الصيغة الرسمية السابقة في الطرق التالية:

  • تمت إعادة كتابة البديهية الأساسية باستخدام مسند مساعد. تتيح إعادة الكتابة هذه التخلص من المحددات الوجودية، بما يتوافق مع اتفاقية Prolog التي تنص على أن جميع المتغيرات يتم تحديدها كميًا بشكل شامل.clipped(Fact,Time1,Time2).
  • تم تغيير ترتيب الشروط في جسم البديهية الأساسية (البديهيات الأساسية) لتوليد إجابات على الاستفسارات بترتيب زمني.
  • المساواة في الشرطتي1تي{\displaystyle T1\leq T}تمت إزالة هذا الشرط من الشرط المقابل. وهذا يُنشئ افتراضًا مُبسطًا مفاده أن الأحداث لا تبدأ وتنهي نفس العملية في آنٍ واحد. ونتيجةً لذلك، فإن تعريف before(Time1,Time).تهـرمأنانأتهـs{\displaystyle terminates}تم تبسيط المسند عن طريق حذف الشرط الذيدأناووهـرهـنت(Pلأجهـ1،Pلأجهـ){\displaystyle different(Place1,Place)}.

بافتراض تعريف مناسب [ ملاحظة 1 ] للمسند، يقوم برنامج Prolog بتوليد جميع الإجابات على الاستعلام " ما الذي يتحقق متى؟" بالترتيب الزمني:before(Time1,Time2),

?- holdsAt ( Fluent , Time ). Fluent = on ( green_block , table ), Time = 1. Fluent = on ( red_block , green_block ), Time = 1. Fluent = on ( green_block , table ), Time = 2. Fluent = on ( red_block , table ), Time = 2. Fluent = on ( green_block , table ), Time = 3. Fluent = on ( red_block , table ), Time = 3. Fluent = on ( red_block , table ), Time = 4. Fluent = on ( green_block , red_block ), Time = 4. Fluent = on ( red_block , table ), Time = 5. Fluent = on ( green_block , red_block ), Time = 5.

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

timePoint ( 1 ). timePoint ( 2 ). timePoint ( 3 ). timePoint ( 4 ). timePoint ( 5 ).fluent ( on ( red_block , green_block )). fluent ( on ( green_block , red_block )). fluent ( on ( red_block , table )). fluent ( on ( green_block , table )).?- timePoint ( T ), fluent ( F ), not ( holdingAt ( F , T )). F = on ( green_block , red_block ), T = 1. F = on ( red_block , table ), T = 1. F = on ( red_block , green_block ), T = 2. F = on ( green_block , red_block ), T = 2. F = on ( red_block , green_block ), T = 3. F = on ( green_block , red_block ), T = 3. F = on ( red_block , green_block ), T = 4. F = on ( green_block , table ), T = 4. F = on ( red_block , green_block ), T = 5. F = on ( green_block , table ), T = 5.

أدوات الاستدلال

بالإضافة إلى لغة برولوج ومتغيراتها، تتوفر أيضاً العديد من الأدوات الأخرى للاستدلال باستخدام حساب الأحداث:

الإضافات

تشمل التوسعات البارزة لحساب الأحداث المتغيرات القائمة على شبكات منطق ماركوف [ 12 ] ، والاحتمالية [ 13 ] ، والمعرفية [ 14 ] ، ومجموعاتها. [ 15 ]

انظر أيضاً

مراجع

  1. 1 2 كوالسكي، روبرت؛ سيرجوت، ماريك (1986-03-01). "حساب منطقي للأحداث" . الحوسبة من الجيل الجديد . 4 (1): 67-95 . doi : 10.1007/BF03037383 . ISSN 1882-7055 . S2CID 7584513 .  
  2. كوالسكي، روبرت (1992-01-01). "تحديثات قواعد البيانات في حساب الأحداث" . مجلة البرمجة المنطقية . 12 (1): 121-146 . doi : 10.1016/0743-1066(92)90041-Z . ISSN 0743-1066 . 
  3. إشغي، كيف (1988). "التخطيط الاستنباطي باستخدام حساب الأحداث" . Iclp/SLP : 562–579 .
  4. ميلر، روب؛ شاناهان، موراي (2002)، "بعض الصيغ البديلة لحساب الأحداث" ، في كاكاس، أنتونيس سي؛ صدري، فريبا (محرران)، المنطق الحسابي: البرمجة المنطقية وما بعدها: مقالات تكريمًا لروبرت أ. كوالسكي، الجزء الثاني ، سلسلة محاضرات في علوم الحاسوب، برلين، هايدلبرغ: سبرينغر، ص 452-490 ، doi : 10.1007/3-540-45632-5_17 ، ISBN  978-3-540-45632-2تم الاطلاع عليه بتاريخ 2020-10-05
  5. لامبالجن، هام (2005). المعالجة السليمة للأحداث . مالدن، ماساتشوستس: بلاكويل للنشر. ISBN 978-0-470-75925-7. OCLC 212129657 . 
  6. ج. مكارثي وب. هايز (1969). بعض المشكلات الفلسفية من منظور الذكاء الاصطناعي . في ب. ميلتزر ود. ميتشي، محررين، ذكاء الآلة ، 4: 463-502. مطبعة جامعة إدنبرة، 1969.
  7. ر. رايتر (1991). مشكلة الإطار في حساب المواقف: حل بسيط (أحيانًا) ونتيجة اكتمال لانحدار الهدف. في: فلاديمير ليفشيتز (محرر)، الذكاء الاصطناعي والنظرية الرياضية للحوسبة: أوراق بحثية تكريمًا لجون مكارثي ، الصفحات 359-380، سان دييغو، كاليفورنيا، الولايات المتحدة الأمريكية. أكاديميك برس بروفيشنال، 1991.
  8. شاناهان، م. (1997) حل مشكلة الإطار: دراسة رياضية لقانون القصور الذاتي المنطقي . مطبعة معهد ماساتشوستس للتكنولوجيا.
  9. جيلفوند، م.؛ برزيموسينسكا، هـ.؛ برزيموسينسكي، ت. (1989). "حول العلاقة بين التحديد والنفي كفشل". الذكاء الاصطناعي . 38 (1): 75-94 . doi : 10.1016/0004-3702(89)90068-4 .
  10. كلارك، ك. ل. (1977). "النفي كفشل". المنطق وقواعد البيانات . بوسطن، ماساتشوستس: سبرينغر الولايات المتحدة. ص 293-322 . doi : 10.1007/978-1-4684-3384-5_11 . ISBN  978-1-4684-3386-9.
  11. داسارو، فابيو أوريليو؛ بيكاكس، أنتونيس؛ ديكنز، لوك؛ ميلر، روب (2024). "تطبيق قائم على برمجة مجموعة الإجابات لحساب الأحداث الاحتمالية المعرفية" . المجلة الدولية للاستدلال التقريبي . 165 109101. doi : 10.1016/j.ijar.2023.109101 . ISSN 0888-613X . 
  12. سكارلاتيديس، أناستاسيوس؛ باليوراس، جورجيوس؛ أرتيكيس، ألكسندر؛ فوروس، جورج أ. (17 فبراير 2015). "حساب الأحداث الاحتمالي للتعرف على الأحداث" . معاملات ACM في المنطق الحسابي . 16 (2): 11:1–11:37. arXiv : 1207.3270 . doi : 10.1145/2699916 . ISSN 1529-3785 . S2CID 6389629 .  
  13. سكارلاتيديس، أناستاسيوس؛ أرتيكيس، ألكسندر؛ فيليبو، جيسون؛ باليوراس، جورجيوس (مارس 2015). "حساب أحداث البرمجة المنطقية الاحتمالية" . نظرية وممارسة البرمجة المنطقية . 15 (2): 213-245 . arXiv : 1204.1851 . doi : 10.1017/S1471068413000690 . ISSN 1471-0684 . S2CID 5701272 .  
  14. ما، جيفي؛ ميلر، روب؛ مورغنسترن، ليورا؛ باتكوس، ثيودور (28-07-2014). "حساب الأحداث المعرفي للاستدلال القائم على ASP حول معرفة الماضي والحاضر والمستقبل" . سلسلة EPiC في الحوسبة . 26. EasyChair: 75-87 . doi : 10.29007/zswj .
  15. داسارو، فابيو أوريليو؛ بيكاكس، أنتونيس؛ ديكنز، لوك؛ ميلر، روب (2020-10-01). "الاستدلال الاحتمالي حول سرديات الفعل المعرفي" . الذكاء الاصطناعي . 287 103352. doi : 10.1016/j.artint.2020.103352 . ISSN 0004-3702 . S2CID 221521535 .  

للمزيد من القراءة

Notes

  1. For example:
    before(Time1,Time2):-timeline(Eternity),append(Before,[Time2|After],Eternity),member(Time1,Before).timeline([0,1,2,3,4,5]).