প্যারেন্টেসিস ম্যাচিংয়ের জন্য দ্বি-রাষ্ট্রের ট্যুরিং মেশিন


9

কলেজে আমরা সাধারণভাবে গণনার তত্ত্ব এবং টিউরিং মেশিনগুলি আরও বিশেষভাবে শিখছি। দুর্দান্ত তাত্ত্বিক ফলাফলগুলির মধ্যে একটি হ'ল সম্ভাব্য আকারের বড় বর্ণমালা (চিহ্নগুলি) এর ব্যয়ে, আপনি রাষ্ট্রের সংখ্যা হ্রাস করতে পারেন মাত্র 2 এ।

আমি বিভিন্ন টিউরিং মেশিনের উদাহরণ খুঁজছিলাম এবং উপস্থাপিত একটি সাধারণ উদাহরণ হ'ল প্যারেন্টেসিস ম্যাচার / চেকার। মূলত এটি পরীক্ষা করে যে প্রথম বন্ধনীগুলির একটি স্ট্রিং (()()()))()()()যেমন ভারসাম্যযুক্ত হয় (পূর্ববর্তী উদাহরণটি ভারসাম্যহীনতার জন্য 0 ফিরে আসবে)।

আমি কেবল এটি তিনটি রাষ্ট্রের মেশিন হিসাবে পেতে পারি হিসাবে চেষ্টা করুন। আমি এটি জানতে চাই যে কেউ এটিকে তাত্ত্বিক সর্বনিম্ন 2 এর মধ্যে কমাতে পারে এবং তাদের পদ্ধতির / রাষ্ট্রগুলি / চিহ্নগুলি কী ছিল!

কেবল স্পষ্ট করে বলতে গেলে, প্রথম বন্ধনে ফাঁকা টেপের মধ্যে "স্যান্ডউইচড" তাই উপরের উদাহরণে - - - - - - - (()()()))()()() - - - - - - -টেপের ইনপুট হবে। বর্ণমালা অন্তর্ভুক্ত করা হবে (, ), 1, 0, -, এবং *halt*রাষ্ট্র একটি রাষ্ট্র হিসেবে গণনা করা হয় না।

রেফারেন্সের জন্য আমার কাছে তিনটি রাষ্ট্রের পদ্ধতির নীচে রয়েছে: রাজ্যের বিবরণ:

 State s1: Looks for Closing parenthesis

 State s2: Looks for Open parenthesis

 State s3: Checks the tape to ensure everything is matched

 Symbols: ),(,X

রূপান্তরগুলি তালিকাভুক্ত:

Action: State Symbol NewState WriteSymbol Motion
// Termination behavior
Action: s2 - *halt* 0  -
Action: s1 -  s3    -  r

//Transitions of TM
Action: s1 (  s1  (   l
Action: s1 )  s2  X  r
Action: s1 X  s1  X  l
Action: s2 ( s1 X  l
Action: s2 X  s2 X r
Action: s3 (  *halt* 0 -
Action: s3 X  s3     X r
Action: s3 -  *halt* 1 -

এই সমস্ত লিখতে অনানুষ্ঠানিক উপায় ক্ষমা করুন। আমি এখনও এর পিছনে তাত্ত্বিক নির্মাণগুলি শিখছি।


আমাদের কি আরও বড় বর্ণমালা ব্যবহারের অনুমতি রয়েছে?
রাফায়েল

@ রাফেল তাত্ত্বিক ফলাফল অনুসারে, কেউ বর্ণমালা এবং তদ্বিপরীতগুলির জন্য রাষ্ট্রগুলির বিনিময় করতে পারে। সুতরাং রাজ্যগুলিকে দুটি করে হ্রাস করার অর্থ আপনাকে সম্ভবত একটি বৃহত্তর বর্ণমালা ব্যবহার করতে হবে। হ্যাঁ, সংক্ষিপ্ত উত্তরটি হ'ল বর্ণমালাটি পছন্দ অনুযায়ী বড় হতে পারে
চার_ফুন

আমার মনে হয়, দুটি টেপ টিএম-এ, এটি কোনও অতিরিক্ত চিহ্ন এবং না করে করা যেতে পারে।
ক্যারোলিস জুডেল

@ চার_ফুন আপনি এমআইটি থেকে এসেছেন?

উত্তর:


8

রাফেলের উত্তরের কেবল একটি "উত্স কোড" সংকলন: এটি একটি কার্যকরী সংস্করণ যা একই কৌশলটি ব্যবহার করে (রাজ্য Q1 তে) এবং টেপ বর্ণমালা থাকে:
_ ( ) [ { / \ (যেখানে_ প্রাথমিক ফাঁকা প্রতীক)

q0:  _ -> accept  // accept on empty string and on balanced parenthesis
     ( -> {,R,q1  // mark the first open "(" with "{" and goto q1
     ) -> reject  // reject if found unbalanced ")"
     \ -> /,L,q0  // go left
     / -> \,R,q0  // go right

q1:  ( -> [,R,q1  // replace "(" with "[" and continue ...
     ) -> /,L,q1  // ... until first ")", replace it with "/" and goto left
     [ -> \,R,q1  // found matching "(" bracket, goto right and search for another ")"
     _ -> reject  // no ")" found for the first "{", reject
     { -> \,R,q0  // this must be the last match, goto q0 and check if it is true
     \ -> /,L,q1  // go left
     / -> \,R,q1  // go right

আপনি এটি টিউরিং মেশিন অনলাইন সিমুলেটর ব্যবহার করে কাজে দেখতে পারেন ; উত্স কোডটি হ'ল:

0 _ Y r halt
0 ( { r 1
0 ) N r halt
0 \ / l 0
0 / \ r 0
1 ( [ r 1
1 ) / l 1
1 [ \ r 1
1 _ N r halt
1 { \ r 0
1 \ / l 1
1 / \ r 1

একটি চূড়ান্ত নোট: আপনি যদি দেখতে চান যে এই কৌশলটি কীভাবে সীমাতে চলে যেতে পারে তবে পড়ুন (এবং বুঝতে চেষ্টা করুন :-) "ছোট ইউনিভার্সাল টিউরিং-এ ওয়াই রোগোজন কর্তৃক 2 রাজ্য এবং 18 চিহ্ন সহ ইউনিভার্সাল টুরিং মেশিনের নির্মাণ মেশিন "


আমরা কী সিদ্ধান্ত নিই নি যে কেবল উত্স কোড উপস্থাপন করা উত্তরগুলি কম্পিউটার বিজ্ঞানের পক্ষে ভাল নয় ? ;)
রাফায়েল

1
@ রাফেল: আমি আপনার সাথে একমত, তবে আমার কাছে আপনার বাড়তি সংযোজনের মতো দেখতে পারা যায় (এটি বিশদ মনে হয়, আমি বিশদটি পরীক্ষা না করলেও)। আমি এই সম্পর্কে একটি নোট যোগ করব।
ভোর

1
@ রাফেল: আমি টেপ প্রতীকগুলি হ্রাস করার চেষ্টা করার জন্য কেবল এটি কোড করেছিলাম এবং এটি "মনে হয়" :-) কাজ করে তাই আমি এটি পোস্ট করার সিদ্ধান্ত নিয়েছিলাম।
ভোর

@Vor। এই সমস্যাটিতে আপনার অতিরিক্ত ইনপুট দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ। এই সমস্ত আমাকে বলে যে এই জিনিসগুলিতে আমার আরও অনুশীলন প্রয়োজন। আপনার উত্স কোডটি নির্বিঘ্নে পোস্ট করার জন্য আপনাকে ধন্যবাদ, যদিও তত্ত্বটি আমার পরে ছিল।
চার_ফুন

1
@ চার_ফুন: রোগোহিন ইউনিভার্সাল টিএম (২,১৮) একটি স্ট্যান্ডার্ড টুরিং মেশিন (অর্থাত্ ইনপুট বাদে এর প্রাথমিক টেপটিতে কেবল ফাঁকা চিহ্ন থাকে) যা একটি স্বেচ্ছাসেবী 2-ট্যাগ সিস্টেমকে সিমুলেট করে (যা সর্বজনীন মডেল)। 2 রাষ্ট্র 3 চিহ্নটি একটি দুর্বলভাবে ট্যুরিং মেশিন (প্রাথমিক টেপটি একটি প্যাটার্নের একটি অসীম অনুক্রমের সাথে পূরণ করা প্রয়োজন), এবং সার্বজনীনতা সেলুলার অটোমেটা রুল 110 অনুকরণ করে "পৌঁছেছে" যা টুরিং সম্পূর্ণ প্রমাণিত হয়েছে )। একটি (দাবি?) প্রমাণ আছে যে একটি স্ট্যান্ডার্ড টিএম (2,3) টিউরিং সম্পূর্ণ হতে পারে না।
মাস

7

বোবা উত্তর: আপনার ফলাফলটি প্রতিশ্রুতি দেয় যে দুটি রাষ্ট্রের সাথে একটি সর্বজনীন টুরিং মেশিন রয়েছে। আঁকো কোনো Dyck ভাষার জন্য টি এম, তার সূচক গনা এবং সার্বজনীন মেশিন সেটিকে হার্ডকোড।

তবে এটি অবশ্যই খুব সন্তোষজনক নয়। আপনার দৃষ্টিভঙ্গি আসলে কাজ করে যদি আপনি বর্ণমালার একটি এক্সটেনশনে জোড় জোড়ের মিশ্রণের সময় বাম দিকে সরানো এবং ডানদিকে যাওয়ার মধ্যে পার্থক্যটি "কৌশল" করেন। আমাদের দরকার{#,(,),x} এবং চিহ্নিত সংস্করণ a^ সমস্ত চিহ্ন a

  • প্রাথমিক অবস্থা q0 নিম্নলিখিত হিসাবে কাজ করে।

    চিহ্নহীন চিহ্নগুলি সন্ধান করার সময়, প্রথম অবধি ডানদিকে যান )পাওয়া. এটি করার সময়, সমস্ত চিহ্নগুলি ওভাররাইট করুনa সঙ্গে a^। পাওয়া ওভাররাইট) সঙ্গে x^
    যদি না হয়), অর্থাৎ আমরা ফাঁক চিহ্নকে আঘাত করি #এটি দিয়ে ওভাররাইট করুন x^ এবং স্যুইচ করুন q1

    চিহ্নিত চিহ্নগুলি সন্ধান করার সময়, প্রথম অবধি বাম দিকে সরান (^পাওয়া গেছে, সমস্ত চিহ্ন (চিহ্নযুক্ত) চিহ্নগুলি তাদের চিহ্ন চিহ্নযুক্ত রূপগুলির সাথে ওভাররাইট করা। পাওয়া ওভাররাইট(^ সঙ্গে x
    আমরা যদি একটি)^ অথবা # প্রথম, লুপ / ​​প্রত্যাখ্যান ¹

  • ভিতরে q1, আমরা পরীক্ষা করে দেখি যে সবকিছু মিলে গেছে; এখনও ফর্ম উপসর্গ থাকতে পারে(^+টেপ উপর। এটি, যতক্ষণ আমরা সন্ধান করব ততক্ষণ বাম দিকে সরানx^। যদি আমরা এইভাবে খুঁজে#, গ্রহণ; আমরা যদি অন্য কোনও চিহ্ন পাই তবে x^ প্রথম, লুপ / ​​প্রত্যাখ্যান।


  1. এটি সঠিক কারণ মেশিনটি অভ্যন্তরের বাইরে মেলে; একটি আইনী ইনপুট, শুধুমাত্র আছেx বর্তমানে প্রথম বন্ধনীর জুটির মিল রয়েছে।

আপনি যদি আমাকে জিজ্ঞাসা করতে আপত্তি না করেন তবে আমার সমাধানটি ঠিক কীভাবে দুটি রাষ্ট্রের সাথে সর্বজনীন টিএম প্রতিশ্রুতি দেয়? (খুব স্মার্ট সমাধান বিটিডাব্লু। আপনার ইনপুটটির জন্য আপনাকে ধন্যবাদ)
চার_ফুন

1
@ চার_ফুন: কারণ আপনি আপনার প্রশ্নে বলেছেন: "... দুর্দান্ত তাত্ত্বিক ফলাফলগুলির মধ্যে একটি হ'ল সম্ভাব্য আকারের বড় বর্ণমালা (চিহ্নগুলি) এর ব্যয়ে আপনি রাষ্ট্রের সংখ্যা হ্রাস করতে পারেন মাত্র 2 ..." । .. সুতরাং আপনি একটি স্বেচ্ছাসেবী ইউনিভার্সাল টিউরিং মেশিন বাছাই করতে পারেন এবং রাষ্ট্রগুলির সংখ্যা কেবল ২ এ কমিয়ে দিতে পারেন এবং আপনি যদি কিছু পরীক্ষা-নিরীক্ষা করেন তবে আপনি বুঝতে পারবেন যে একটি স্বেচ্ছাসেবী টিএমকে একটি সমমানের রূপান্তর করে এমন একটি স্বয়ংক্রিয় পদ্ধতি তৈরি করা শক্ত নয় 2 টিএম টিএম (যদি আপনি বর্ণমালার চিহ্নগুলির সংখ্যা হ্রাস করার বিষয়ে চিন্তা করেন না)।
মাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.