Presentation is loading. Please wait.

Presentation is loading. Please wait.

مقدمه ای بر ماشین تورینگ و نظریه محاسبه پذیری

Similar presentations


Presentation on theme: "مقدمه ای بر ماشین تورینگ و نظریه محاسبه پذیری"— Presentation transcript:

1 مقدمه ای بر ماشین تورینگ و نظریه محاسبه پذیری
مقدمه ای بر ماشین تورینگ و نظریه محاسبه پذیری پیام سراجی IPM, Isfahan branch, Farvardidin 1396

2 نخستین سوالی که باید به آن پاسخ دهیم این است که «محاسبه» چیست؟

3 جمع:

4 تشخیص اعداد اول: ۲۷ ………اول نیست ۳۱………… اول است

5 حل معادلات : :حل معادله 2𝑥−6=1 جواب: 𝑥= 7 2

6 محاسبه مشتق مسئله: مشتق تابع 𝑦= 𝑥 3 +𝑥 را حساب کنید. جواب : 𝑦=3 𝑥 2 +1

7

8

9

10

11 نقطه مشترک در همه این مثال ها برای «محاسبه»
این است که یک (یا چند) دنباله متناهی از نمادها به عنوان ورودی داده شده و (پس از انجام عملیات لازم) یک دنباله از نمادها (به عنوان جواب) در خروجی چاپ می شود.

12 یک مجموعه متناهی تعریف : فرض کنید Σ={ 𝑎 1 ,… 𝑎 𝑛 } از نمادها باشد. مجموعه همه دنباله های متناهی از این نمادها را با Σ ∗ نشان می دهیم.

13 مثال: اگر آنگاه Σ= 0,1 Σ ∗ ={𝜆,0,1,00,01,10,11,000,001,…}

14 تعریف : به هر زیر مجموعه روی « زبان» یک 𝐿⊆ Σ ∗
الفبای Σ گوییم.

15 یک محاسبه در زبان 𝐿 : 𝑓: 𝐿 𝑛 ⟶𝐿

16 یک مسله «تصمیم» محاسبه تابعی به این صورت است:
𝑓 𝑥 = 𝑦𝑒𝑠 𝑥∈𝐴 𝑁𝑜 𝑥∉𝐴 (𝐴⊆𝐿)

17 ماشین تورینگ

18 Σ={ 𝑠 0 ,…, 𝑠 𝑚 } { 𝑞 0 ,…, 𝑞 𝑛 } 𝑞 𝑖 𝑠 𝑗 𝑠 𝑘 𝑞 𝑙 𝑋
اجزای یک ماشین تورینگ Σ={ 𝑠 0 ,…, 𝑠 𝑚 } الفبای زبان { 𝑞 0 ,…, 𝑞 𝑛 } مجموعه حالت های درونی مجموعه ای از دستور ها به صورت : 𝑞 𝑖 𝑠 𝑗 𝑠 𝑘 𝑞 𝑙 𝑋

19

20 𝑞 𝑖 𝑠 𝑗 𝑠 𝑘 𝑞 𝑙 𝑋 اگر ماشین در حالت درونی 𝑞 𝑖 بود و هد ماشین در روبروی
𝑞 𝑖 𝑠 𝑗 𝑠 𝑘 𝑞 𝑙 𝑋 اگر ماشین در حالت درونی 𝑞 𝑖 بود و هد ماشین در روبروی یک نماد 𝑠 𝑗 بود آنگاه نماد 𝑠 𝑘 را به جای آن بنویس. حالت درونی را به 𝑞 𝑙 تغییر بده و اگر 𝑋=𝑅 هد را یک خانه به سمت راست و اگر X=L هد را یک خانه به سمت چپ حرکت بده.

21 𝑞 0 𝑞 𝑞 3 𝑅

22 𝑞 3

23 قرار داد: در ابتدا هد ماشین در برابر اولین نماد ورودی از سمت چپ قرار دارد. به جز خانه هایی که ورودی بر روی آنها نوشته شده بقیه خانه ها سفید هستند و ماشین در وضعیت درونی 𝑞 0 قرار دارد.

24

25 مثال : ماشین تورینگی روی الفبای 0,1,𝐵
بنویسید که به انتهای هر دنباله از صفر و یک دو عدد 1 اضافه کند. 110 11011

26 𝑞 𝑞 0 𝑅 𝑞 𝑞 0 𝑅 𝑞 0 𝐵 1 𝑞 1 𝑅 𝑞 1 𝐵 1 𝑞 2 𝑅

27 1 𝑛 =11…1 (n times) تعریف: تابع 𝑓:ℕ⟶ℕ را محاسبه پذیر تورینگ گوییم اگر یک ماشین تورینگ M وجود داشته باشد به طوری که برای هر 𝑛∈ℕ که 𝑓(𝑛) تعریف شده باشد این ماشین با ورودی 1 𝑛 متوقف شده و خروجی 1 𝑓(𝑛) را تحویل دهد.

28 ماشین متوقف نمی شود) f(n) (در حالتی که

29 𝑓 𝑛 =𝑛+2 𝑞 𝑞 0 𝑅 𝑞 0 𝐵 1 𝑞 1 𝑅 𝑞 1 𝐵 1 𝑞 2 𝑅

30 𝑓(𝑚,𝑛)

31 تابع f محاسبه پذیر با یک ماشین تورینگ است
تابع f توسط یک برنامه به زبان C محاسبه پذیر است

32 مجموعه ماشین های تورینگ شمارا است
𝑀 0 , 𝑀 1 ,…, 𝑀 𝑛 ,….

33 مجموعه ماشین های تورینگ شمارا ی کارامد است
𝑀 0 , 𝑀 1 ,…, 𝑀 𝑛 ,….

34 یک ماشین تورینگ جهانی وجود دارد. یعنی ماشینی
که می تواند عملکرد هر ماشین دیگر را شبیه سازی کند

35 کانتور(۱۸۷۰) ℕ={0,1,2,3,….} ℤ ℚ مجموعه ℝ (0,1) {𝑓:ℕ⟶ℕ} شمارا:
نا شمارا: (0,1) {𝑓:ℕ⟶ℕ}

36 اثبات کانتور برای ناشمارا بودن اعداد حقیقی:

37

38

39 𝑓 𝑥 = 𝑀 𝑛 𝑛 +1 𝑖𝑓 𝑀 𝑛 (𝑛)↓ 0 𝑖𝑓 𝑀 𝑛 (𝑛)↑

40 𝑀 1 1 ↓ ⇒ 𝑓 1 = 𝑀 ≠ 𝑀 1 1 𝑀 1 1 ↑ ⇒ 𝑓 1 =0 پس در هر صورت تابع f نمی تواند برابر تابعی باشد که توسط 𝑀 1 محاسبه می شود

41 با استدلال مشابه نتیجه می شود که f توسط هیچ یک
تورینگی محاسبه پذیر نیست.

42 𝑓 𝑥 = 𝑀 𝑛 𝑛 +1 𝑖𝑓 𝑀 𝑛 (𝑛)↓ 0 𝑖𝑓 𝑀 𝑛 (𝑛)↑
ولی با توجه به تعریف تابع f واضح است که اگر الگوریتمی برای تعیین توقف یا عدم توقف 𝑀 𝑛 (𝑛) داشتیم آنگاه تابع f محاسبه پذیر می شد: 𝑓 𝑥 = 𝑀 𝑛 𝑛 𝑖𝑓 𝑀 𝑛 (𝑛)↓ 𝑖𝑓 𝑀 𝑛 (𝑛)↑

43 پس مسیله توقف «حل پذیر الگوریتمی» نیست. یعنی الگوریتمی
وجود ندارد که بتواند توقف یا عدم توقف هر الگوریتم دلخواه را مشخص کند!

44 پارادکس دروغگو: این جمله درست نیست!

45 1−𝑖𝑛𝑝𝑢𝑡 𝑥 2- if 𝑀 𝑥 (𝑥)↓ then goto 4 3- if 𝑀 𝑥 (𝑥)↑ then stop
الگوریتم زیر را در نظر بگیرید: 1−𝑖𝑛𝑝𝑢𝑡 𝑥 2- if 𝑀 𝑥 (𝑥)↓ then goto 4 3- if 𝑀 𝑥 (𝑥)↑ then stop 4- goto 4

46 فرض کنید 𝑀 𝑛 0 ماشین تورینگی باشد که این الگوریتم را اجرا می کند. حال اندیس را 𝑛 0 به عنوان ورودی به خود این برنامه می دهیم! حال عملکرد الگوریتم چنین خواهد بود : این الگوریتم متوقف می شود اگر و فقط اگر همین الگوریتم متوقف نشود!

47 𝑀 𝑛 0 ( 𝑛 0 ) ↑ 2- if 𝑀 𝑛 0 ( 𝑛 0 )↓ then goto 4 3- if 𝑀 𝑛 0 ( 𝑛 0 )↑ then stop 4- goto 4 𝑀 𝑛 0 ( 𝑛 0 )↓ پس در هر صورت به تناقض می رسیم!

48 تصمیم ناپذیری منطق محمولات
Σ⊢𝛼 Σ⊬𝛼

49

50 𝐷⊢𝐻⟺ 𝑀 𝑛 (m)↓ برای هر ماشین 𝑀 𝑛 و ورودی 𝑚 مجموعه 𝐷 از فرمولهل
برای هر ماشین 𝑀 𝑛 و ورودی 𝑚 مجموعه 𝐷 از فرمولهل (در زبان منطق محمولات) و فرمول 𝐻 را به طوری می سازیم که : 𝐷⊢𝐻⟺ 𝑀 𝑛 (m)↓

51 برای هر حالت درونی 𝑞 𝑖 یک محمول 𝑄 𝑖 (t,x) در نظر می گیریم، به این معنا که ماشین
برای هر نماد 𝑠 𝑖 یک محول 𝐴 𝑖 (t,x) به این معنا که ماشین در زمان t در خانه شماره x نماد 𝑠 𝑖 قراردارد. 0, 𝑠 𝑥 ,

52 𝑄 0 0,0 ∧ 𝐴 1 0,0 ∧ 𝐴 1 0, 1 ∧ ∀𝑥 (𝑥≠0 ∧𝑥≠ 1 → 𝐴 0 0,𝑥 ) 𝐴 0 …………𝐵
𝐴 1 ………….1 𝑄 0 0,0 ∧ 𝐴 1 0,0 ∧ 𝐴 1 0, 1 ∧ ∀𝑥 (𝑥≠0 ∧𝑥≠ 1 → 𝐴 0 0,𝑥 )

53 𝑞 𝐵 𝑞 3 𝑅 ∀𝑥,𝑡( 𝑄 0 (𝑡,𝑥)∧ 𝐴 1 (𝑡,𝑥)→ 𝑄 3 𝑠 𝑡 ,𝑠 𝑥 ∧ 𝐴 0 𝑠 𝑡 ,𝑥 ∧ ∀𝑧≠𝑥( 𝐴 1 (𝑡,𝑧)→ 𝐴 1 (𝑠 𝑡 ,𝑧) ∧ 𝐴 0 (𝑡,𝑧)→ 𝐴 0 (𝑠 𝑡 ,𝑧))

54 توقف ماشین: ∃𝑡,𝑥( 𝑄 3 𝑡,𝑥 ∨ 𝑄 0 𝑡,𝑥 ∧ 𝐴 0 𝑡,𝑥 )

55

56 مسائل تقلیل پذیر به مسئله توقف:
1-مسئله هم ارز بودن دو الگوریتم: دو الگوریتم زیر را در نظر بگیرید:

57 input(n) If n=1 then print “NO” and stop. for i:=2 to n-1 do { if (n mod i)=0 then print “NO” and stop} Print “YES” and stop.

58 input(n) If n=1 then print “NO” and stop. for i:=2 to round(sqrt(n))+1 do { if (n mod i)=0 then print “NO” and stop} Print “YES” and stop.

59 دو الگوریتم فوق در واقع هم ارزند ، به دلیل اینکه هر عدد غیر اول
n حتما یک مقسوم علیه کمتر یا مساوی 𝑛 دارد.

60 آیا دو ماشین تورینگ (برنامه به زبان C ) داده شده معادل هستند؟

61 وجود الگوریتم برای مسئله معادل بودن
وجود الگوریتم برای مسئله توقف

62 برای هر ماشین تورینگ دلخواه 𝑀 𝑛 ماشین تورینگی
برای هر ماشین تورینگ دلخواه 𝑀 𝑛 ماشین تورینگی می سازیم که الگوریتم زیر را اجرا کند: 1-input(i) 2- perfom 𝑀 𝑛 (n), for i steps and if it halted, then print(0) and stop. 3- print(1) 1-input(i) 2- print(1) سوال: آیا دو الگوریتم فوق معادلند؟

63 مسئلع توقف «تقلیل پذیر» (reducable) به مسئله معادل بودن است
دوالگوریتم معادلند 𝑀 𝑛 (𝑛)↑ مسئلع توقف «تقلیل پذیر» (reducable) به مسئله معادل بودن است

64 𝑥 2 +5𝑥+3=0 مسئله وجود ریشه برای معادلات چند جمله ای
آیا معادلات زیر ریشه حقیقی داند: 𝑥 2 +5𝑥+3=0 𝑥 7 +7 𝑥 4 −8 𝑥 3 −𝑥+1=0

65 آیا معادلات زیر ریشه طبیعی داند:
𝑥 2 + 𝑦 2 = 𝑧 2 𝑥 3 −2𝑥𝑦= 𝑦 4 +5

66 مسئله دهم هیلبرت: برای یک معادله چند جمله ای
داده شده (با ضرایب صحیح) مشخص کنید که آیا در اعداد طبیعی ریشه دارد یا خیر؟ ماتیاسویچ در 1970 نشان داد که این مسئله حل پذیر نیست! (با کمک روش تقلیل به مسئله توقف)

67 بازی حیات کانوی

68 1- هر نقطه مسکونی که کمتر از دو همسایه داشته باشد در مرحله بعد خالی
از جمعیت می شود. 2- هر نقطه مسکونی که دارای دو یا سه همسایه مسکونی باشد در مرحله بعد هم مسکونی باقی می ماند. 3- هر نقطه مسکونی که بیش از سه همسایه مسکونی داشته باشد در مرحله بعد خالی از جمعیت می شود. 4- هر نقطه غیر مسکونی که دقیقا سه همسایه مسکونی داشته باشد در محله بعد مسکونی می شود.

69

70

71 مسئله :آیا با شروع از یک حالت اولیه داده شده به یک دوره تناوب
می رسیم یا خیر؟

72 آیا از یک حالت اولیه داده شده می توان به حالت دوم (داده شده )
رسید یا خیر؟

73 قضیه رایس : فرض کنید A یک خاصیت در مورد الگوریتمها باشد به طوری که: 1- اگر دو الگوریتم M و N معادل باشند، آنگاه یا هردو خاصیت A را دارند و یا هردو خاصیت A را ندارند. 2- حداقل یک الگوریتم هست که دارای خاصیت A است و حداقل یک الگوریتم هم هست که دارای خاصیت A نیست. در این صورت این مسئله که یک الگوریتم (ماشین تورینگ) داده شده دارای خاصیت A هست یا خیر، حل ناپذیر است.

74 ویروس کامپیوتری: برنامه ای است که خود را تکثیر می کند
خاصیت «خود تکثیری» در شرایط قضیه رایس صدق می کند، تشخیص اینکه یک برنامه ویروس است یا خیر، یک مسئله حل پذیر (توسط یک الگوریتم ثابت و مشخص ) نیست، بلکه باید الگوریتمهای تشخیص ویروس مرتبا با اطلاعات جدید به روز شوند.


Download ppt "مقدمه ای بر ماشین تورینگ و نظریه محاسبه پذیری"

Similar presentations


Ads by Google