একটি ভাষা দেওয়া হয়েছে , আমি কীভাবে সরাসরি বলতে পারি, উত্পাদনের নিয়মগুলি না দেখে, এই ভাষাটি নিয়মিত নয়?
আমি পাম্পিং লেমা ব্যবহার করতে পারি তবে কিছু লোক কেবল ব্যাকরণের দিকে তাকিয়ে বলছে যে এটি নিয়মিত নয়। কিভাবে এটা সম্ভব?
একটি ভাষা দেওয়া হয়েছে , আমি কীভাবে সরাসরি বলতে পারি, উত্পাদনের নিয়মগুলি না দেখে, এই ভাষাটি নিয়মিত নয়?
আমি পাম্পিং লেমা ব্যবহার করতে পারি তবে কিছু লোক কেবল ব্যাকরণের দিকে তাকিয়ে বলছে যে এটি নিয়মিত নয়। কিভাবে এটা সম্ভব?
উত্তর:
ডিএফএ / এনএফএর প্রধান সম্পত্তি হ'ল সীমাহীন স্মৃতির অভাব। আপনি যদি কোনও ভাষা এবং একমাত্র অ্যালগরিদম (যা পরে ফিনাইট অটোমেটনে অনুবাদ করা উচিত) দিকে নজর দেন তবে এই সম্পত্তিটির প্রয়োজন হিসাবে এটি আপনি মনে করতে পারেন, যে কোনও অ্যালগরিদম যা এটি স্বীকৃতি দেয় তাকে একটি নির্বিচারে বৃহত সংখ্যক জিনিস মনে রাখা দরকার ( আপনার উদাহরণের মতো ) এর পরে সেই ভাষা সম্ভবত নিয়মিত নয়।
অবশ্যই, আপনার সর্বদা মনে রাখা উচিত যে গাণিতিক স্বজ্ঞাততা ভুল হতে পারে এবং আপনার স্বজ্ঞাততা সম্পর্কে নিশ্চিত হওয়ার একমাত্র উপায় এটি প্রমাণ করা।
সম্পাদনা: জায়গাগুলির অভাবে আমি এখানে মন্তব্যগুলিতে শেষ প্রশ্নের উত্তর দেব।
আপনি ছেলেরা সীমাহীন স্মৃতি সম্পর্কে কথা বলছেন যার অর্থ এটি নিয়মিত না হওয়ার কারণ। তবে আমি চাইলে একটি ^ nb ^ m আনবাউন্ডেড মেমোরিও রাখতে পারি, তাই না? এটি এখনও আমাকে শান্তি দিচ্ছে না।
শব্দটি কত বড় পেতে পারে তা নয় (আপনি সাধারণত অসীম নিয়মিত ভাষাগুলির মুখোমুখি হবেন, কারণ প্রতিটি সীমাবদ্ধ ভাষা নিয়মিত, এবং এটি বেশ বিরক্তিকর) তবে ডিএফএকে কতটা মনে রাখা দরকার।
ইন উদাহরণস্বরূপ, মনে রাখা কোন প্রয়োজন নেই । আলগোরিহমকে কেবল এটি নিশ্চিত করা দরকার যে তারা ইতিবাচক এবং শব্দটি সঠিকভাবে অর্ডার করা হয়েছে। এটি একটি সীমাবদ্ধ তালিকা এবং তালিকার প্রতিটি আইটেমের জন্য অবিচ্ছিন্ন মেমরির প্রয়োজন।
এই তুলনা , যার জন্য একটি সহজ alogrithm মনে রাখা যে নম্বর আবশ্যক 's এর সংখ্যা সমান
's। এটি আনবাউন্ডেড মেমরির প্রয়োজন হবে। যখন আমি কোনও ভাষার দিকে লক্ষ্য করি এবং দেখি যে যে কোনও অ্যালগরিদম আমি সীমাহীন মেমরির প্রয়োজন মনে করতে পারি, তখন ভাষাটি নিয়মিত নয় এমন আমার অন্তর্নিহিত আরও দৃ stronger় হয়। আমি যদি কোনও "স্মার্ট" অ্যালগরিদম খুঁজে পাই না (যিনি একটানা পরিমাণ মেমরির প্রয়োজন) আপনার পক্ষে কতটুকু সময় যুক্তিযুক্ত তা প্রমাণ করার চেষ্টা করব ভাষাটি নিয়মিত নয়।
আশা করি এটি কিছুটা পরিষ্কার হয়ে যায়।
আমি পাম্পিং লেমা ব্যবহার করতে পারি
যথাযথভাবে। আপনি পাম্পিং লেমা বা অন্য কোনও কৌশল দু'বার (কয়েক ডজন) বার ব্যবহার করার পরে, আপনি সেই ভাষাগুলিতে এমন নিদর্শনগুলি দেখতে শুরু করবেন যা নিয়মিত হতে নিষেধ করে। হ'ল একটি বুনিয়াদ যা আপনি সম্ভবত ইতিমধ্যে আয়ত্ত করেছেন। সুতরাং এটি কেবল অভিজ্ঞতার বিষয় নয় কেবল স্বজ্ঞাততাও।
আপনার স্বজ্ঞাততা পরীক্ষা করার একটি ভাল উপায় এই ভাষাগুলিটির দিকে নজর দিচ্ছে:
কোনটি প্রসঙ্গমুক্ত?
কোনও ভাষা সম্পূর্ণ প্রমাণ না করে মোটামুটি সরল গণনা ব্যবহার করে নিয়মিত কিনা তা আপনি আসলেই সিদ্ধান্ত নিতে পারেন। আপনাকে কেবল একটি খুব শক্তিশালী মানদণ্ড প্রয়োগ করতে হবে: একটি ভাষা নিয়মিত হয় যদি এবং কেবলমাত্র এর চূড়ান্তভাবে অনেকগুলি ভাগ থাকে।
স্বজ্ঞাতভাবে, একটি ভাগফল হ'ল ইনপুট অংশ ইতিমধ্যে পড়া পরে আপনি একটি শব্দ সম্পূর্ণ করতে হবে। আরো আনুষ্ঠানিকভাবে, একটি ভাষা বাম ভাগফল দ্বারা একটি স্ট্রিং , লিখিত স্ট্রিং সেট যেমন যে । উদাহরণস্বরূপ, যদি , তবে , যখন । আমরা সহজেই দেখতে পাই যে। ফর্মটির অসীম অনেকগুলি ভাগ রয়েছে, সুতরাং এটি অবিলম্বে অনুসরণ করে যে নিয়মিত নয়।
আমরা একটি DFA তে গঠন করা এমন এল সিদ্ধান্ত নেন, এবং অঙ্গরাজ্য হব পড়ার পর , তারপর দ্বারা নির্ধারিত ভাষা রাষ্ট্র শুরু আছে রুপান্তরিত । এই একই ধারণাটি সরাসরি সর্বনিম্ন ডিএফএ তৈরির জন্য ব্যবহার করা যেতে পারে যা এর সংজ্ঞা থেকে একটি নিয়মিত ভাষার সিদ্ধান্ত নেয়।