কোনও ভাষা নিয়মিত কিনা তা পরীক্ষা করার জন্য কি অ্যালগরিদম / পদ্ধতিগত পদ্ধতি আছে?
অন্য কথায়, বীজগণিত আকারে নির্দিষ্ট একটি ভাষা দেওয়া হয়েছে ( L = { a n b n : n ∈ N like এর মতো কিছু মনে করুন )), ভাষা নিয়মিত কিনা তা পরীক্ষা করে দেখুন। কল্পনা করুন যে আমরা ছাত্রদের তাদের সমস্ত হোমওয়ার্কগুলি সাহায্য করার জন্য একটি ওয়েব পরিষেবা লিখছি; ব্যবহারকারী ভাষাটি নির্দিষ্ট করে এবং ওয়েব পরিষেবা "নিয়মিত", "নিয়মিত নয়", বা "আমি জানি না" দিয়ে সাড়া দেয়। (আমরা ওয়েব সার্ভিসটিকে "আমি জানি না" যতটা সম্ভব সম্ভব উত্তর দেওয়ার জন্য চাই this) এটি স্বয়ংক্রিয় করার জন্য কোনও ভাল পন্থা আছে কি? এই ট্র্যাকটেবল? এটি কি স্থিরযোগ্য (যেমন, "গ্যারান্টি দেওয়া কি সম্ভব যে আমাদের কখনই" আমি জানি না "উত্তর দেওয়ার দরকার নেই)? এই সমস্যাটি সমাধানের জন্য কি যুক্তিসঙ্গতভাবে দক্ষ অ্যালগরিদম রয়েছে, এবং অনুশীলনে সম্ভবত বেশিরভাগ / বেশিরভাগ ভাষার জন্য "জানেন না" ছাড়া কোনও উত্তর সরবরাহ করতে সক্ষম হবেন?
কোনও ভাষা নিয়মিত নয় তা প্রমাণ করার জন্য ক্লাসিক পদ্ধতি হ'ল পাম্পিং লেমা। যাইহোক, দেখে মনে হচ্ছে কোনও পর্যায়ে ম্যানুয়াল অন্তর্দৃষ্টি প্রয়োজন (উদাহরণস্বরূপ, পাম্প করার জন্য শব্দটি বেছে নেওয়া), সুতরাং এটিকে অ্যালগরিদমিক কিছুতে রূপান্তর করা যায় কিনা সে সম্পর্কে আমি পরিষ্কার নই।
কোনও ভাষা নিয়মিত তা প্রমাণ করার জন্য একটি সর্বোত্তম পদ্ধতি হ'ল মাইহিল – নেরোড উপপাদ্যকে একটি সীমাবদ্ধ-রাষ্ট্র অটোমেটনের জন্য ব্যবহার করা। এটি একটি প্রতিশ্রুতিবদ্ধ পদ্ধতির মতো দেখায়, তবে এটির জন্য বীজগণিত আকারে ভাষাতে মৌলিক ক্রিয়াকলাপ সম্পাদন করার ক্ষমতা প্রয়োজন requires বীজগণিত আকারে ভাষায় প্রয়োজনীয় সমস্ত অপারেশনগুলি প্রতীকীভাবে সম্পাদন করার পদ্ধতিগত উপায় আছে কিনা তা আমার কাছে পরিষ্কার নয়।
এই প্রশ্নটি ভালভাবে উত্থাপিত করার জন্য, আমাদের সিদ্ধান্ত নিতে হবে যে ব্যবহারকারী কীভাবে ভাষাটি নির্দিষ্ট করবেন। আমি পরামর্শের জন্য উন্মুক্ত, তবে আমি এরকম কিছু ভাবছি:
যেখানে একটি শব্দ-প্রকাশ এবং এস নিম্নোক্ত সংজ্ঞা সহ দৈর্ঘ্য-ভেরিয়েবলের তুলনায় লিনিয়ার বৈষম্যের একটি ব্যবস্থা:
প্রতিটিই একটি শব্দ-প্রকাশ। (এগুলি ভেরিয়েবলগুলি উপস্থাপন করে যা any ∗ এর যে কোনও শব্দ নিতে পারে take )
প্রতিটি একটি শব্দ-এক্সপ্রেশন। (এখানে x আর স্ট্রিং x এর বিপরীত উপস্থাপন করে ))
প্রত্যেকটি একটি শব্দ প্রকাশ হয়। (স্পষ্টতই, Σ = { a , b , c , … } , সুতরাং a , b , c , … অন্তর্নির্মিত বর্ণমালায় একটি একক প্রতীক উপস্থাপন করে।)
প্রতিটিই একটি শব্দ-প্রকাশ, যদি η দৈর্ঘ্য-পরিবর্তনশীল হয়।
শব্দ-প্রকাশের সংমিশ্রণটি একটি শব্দ-প্রকাশ expression
প্রত্যেকটি দৈর্ঘ্য-পরিবর্তনশীল। (এগুলি এমন কোনও ভেরিয়েবলের প্রতিনিধিত্ব করে যা কোনও প্রাকৃতিক সংখ্যায় নিতে পারে))
প্রত্যেকে | এক্স | , | y | , | z | , … একটি দৈর্ঘ্য-পরিবর্তনশীল। (এগুলি সংশ্লিষ্ট শব্দের দৈর্ঘ্যের প্রতিনিধিত্ব করে))
পাঠ্যপুস্তকের অনুশীলনে আমরা যে অনেকগুলি কেস দেখি তা পরিচালনা করার জন্য এটি যথেষ্ট বিস্তৃত বলে মনে হয়। অবশ্যই, আপনার যদি আরও ভাল পরামর্শ থাকে তবে আপনি বীজগণিত আকারে কোনও ভাষা নির্দিষ্ট করার জন্য অন্য কোনও পাঠ্য পদ্ধতির বিকল্প তৈরি করতে পারেন।