منطق درخت محاسباتی

از testwiki
نسخهٔ تاریخ ۱۸ دسامبر ۲۰۲۳، ساعت ۰۹:۵۶ توسط imported>زهرا حسن نتاج (growthexperiments-addimage-summary-summary: 1)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

الگو:ویکی‌سازی

منطق درخت محاسباتی

منطق درخت محاسباتی الگو:انگلیسی یک منطق زمانی است؛ که در آن حالت‌های مختلف سامانه، به صورت راس‌های یک ماشین حالت وجود دارند. این ماشین حالت، به صورت یک درخت زمانی است؛ که هر مجموعه حالت‌های سامانه در طول زمان (تاریخچه آن سامانه) متناظر یک مسیر با شروع از ریشهٔ درخت است. مزیت این منطق بر منطق‌های مشابه؛ مثل منطق خطی زمانی، این است که می‌توان یک مسیر خاص را مشخص کرد. برای مثال این جملات در این منطق(منطق درخت محاسباتی) قابل بیان هستند:

  • حتماً به حالتی خواهیم رسید که در آن شرط q برقرار است.
  • اگر در حالتی باشیم که q درست باشد، ممکن نیست در آینده p برقرار شود.
  • اگر حالتی باشد که q درست نباشد، از آن به بعد همواره p درست است.

منطق کلی این منطق، این است که در هر لحظه، ممکن است آینده‌های متفاوتی داشته باشیم؛ لذا این درخت نامتناهی، تمامی حالت‌های ممکن برای سامانه را در طول زمان نشان می‌دهد. ابداع اولیهٔ آن توسط Clarke و Emerson در سال ۱۹۸۱ بوده و پس از آن، Queille و Sifakis با کمی تفاوت، از آن در وارسی مدل‌ها استفاده کردند. به علت سادگی، کارایی و گستردگی کاربرد این منطق، امروزه در بسیاری از روش‌های درستی‌یابی سیستم‌ها از آن استفاده می‌شود.[۱]

قواعد لغوی

اگر AP مجموعهٔ متغیرهای منطقی باشد، فرمول‌های حالت منطق درخت محاسباتی به این صورت تعریف می‌شوند:

ϕ::=a(¬ϕ1)(ϕ1ϕ2)γγ

که در آن، aAP، ϕ1,ϕ2 یک فرمول حالت و γ یک فرمول مسیر است.

فرمول‌های مسیر هم این‌گونه تعریف می‌شوند:

γ::=Xϕϕ1Uϕ2

که در آن، ϕ1,ϕ2 فرمول‌های حالت هستند. البته در این‌جا، ما یک تعریف مینیمال ارائه دادیم و تعاریف معادلی با استفاده از دیگر عملگرهای زمانی وجود دارد. برای مثال، جملات زیر در منطق درخت محاسباتی هستند:

X(x=1),X(x=1),andx<2x=1

قواعد معنایی

فرض کنید M=(S,,L) یک مدل برای منطق درخت محاسباتی باشد. یعنی M یک سیستم جابجایی است که مجموعهٔ حالت‌های آن S، جابجایی‌ها (که همان قواعد جابجایی از یک حالت به حالت دیگر است) و L نیز مجموعه‌ای است که نشان می‌دهد در هر حالت کدام‌یک از متغیرهای منطقی عضو AP درست هستند.[۲] حال معنای یک عبارت در منطق روی این مدل و با حالت شروع s، برای فرمول‌های حالت به صورت استقرایی با قواعد زیر مشخص می‌شود:

  1. ((,s))((,s)⊭)
  2. ((,s)p)(pL(s))
  3. ((,s)¬ϕ)((,s)⊭ϕ)
  4. ((,s)ϕ1ϕ2)(((,s)ϕ1)((,s)ϕ2))

و اما برای فرمول‌های مسیر، برای مسیر π در این سیستم جابجایی، به صورت زیر:

  1. ((,π)Xϕ)((,π[1])ϕ)
  2. ((,π)ϕ1Uϕ2)(j0.((,π[j])ϕ2(0k<j.(,π[k])ϕ1)))

مثال‌ها

فرض کنید سامانه‌ای داشته باشیم که بتواند حالت‌های ready یا started را داشته باشد. حال می‌توانیم بیان کنیم «ممکن است زمانی برسد که started درست باشد اما ready غلط». این عبارت به صورت EU(started¬ready) است. یا برای مثال، اگر بخواهیم بیان کنیم ready هیچ‌گاه درست نمی‌شود، به صورت ¬Eready است.

ارتباط با دیگران منطق‌ها

همان‌طور که منطق درخت محاسباتی یک منطق زمانی است، منطق خطی زمانی نیز شباهت‌های بسیاری با آن دارد. تفاوت در این‌جاست که در منطق خطی زمانی، امکان مشخص کردن یک مسیر به‌طور خاص وجود ندارد و احکام بیان‌شده در مورد همه یا هیچ‌یک از مسیرهای ممکن است. هرچند عباراتی وجود دارند که فقط در منطق درخت محاسباتی یا فقط در منطق خطی زمانی قابل بیان هستند، هر دوی این منطق‌ها زیرمجموعهٔ منطق CTL* هستند که در آن زبان جملات بیشتری قابل بیان هستند هرچند وارسی مدل‌ها سخت‌تر و پیچیده‌تر از لحاظ محاسباتی است.

منابع

الگو:پانویس الگو:چپ‌چین

  • Micheal Huth, Mark Ryan, Logic in Computer Science, Modeling and reasoning about systems, Cambridge University Press, 2004. الگو:ISBN
  • Christel Baier, Joost-Pieter Katoen, Principles of Model Checking, The MIT Press 2007. الگو:ISBN
  • الگو:Cite book

الگو:پایان چپ‌چین الگو:منطق

الگو:منطق-خرد