আমি কীভাবে যাচাই করব যে একটি ডিএফএ একটি এনএফএ এর সমতুল্য?


10

আমি শিখছি কীভাবে এনএফএগুলিকে ডিএফএতে রূপান্তর করতে হয় এবং আমি নিশ্চিত করতে চাই যে আমি এটি সঠিকভাবে করছি। স্পষ্টতই, অন্য দিকে ফিরে যাওয়া কোনও জিনিস নয়। ডিএফএ একটি এনএফএ এর সমতুল্য কিনা তা পরীক্ষা করতে কেউ কি অ্যালগরিদম সম্পর্কে জানেন?


একটি প্রার্থীর ব্যাখ্যা: একটি এনএফএকে ডিএফএতে রূপান্তর করার সমস্যার জন্য কি "ফলাফল পরীক্ষক" ( ওয়াসারম্যান এবং ব্লামের অর্থে ) আছে? অন্য কথায়, রূপান্তর-অ্যালগরিদমের জন্য একটি কথিত (ইনপুট, আউটপুট) জোড়া দেওয়া, একটি আলেগোরিদম নিজেই রূপান্তরটি করার চেয়ে অ্যাসিপোটোটিকভাবে দ্রুততর, আউটপুটটি সঠিক কিনা তা পরীক্ষা করে?
DW

উত্তর:


7

এটি একটি সমস্যাযুক্ত প্রশ্ন। অটোমাতার সমতুল্যতা যাচাই করার একটি উপায় রয়েছে, যা আমি এখন ব্যাখ্যা করব, তবে আমি ভয় করি যে এটি আপনাকে সাহায্য করবে না, কারণ আপনি শেষে দেখবেন।

মনে রাখবেন যে দুটি সেট এবং B সমান if if A B এবং B A (এটি সেট সমতার সংজ্ঞা)। সুতরাং, এটি যথেষ্ট আপনি যে যাচাই করার জন্য এল ( ডি ) এল ( এন ) এবং এল ( এন ) এল ( ডি ) , যেখানে ডি এবং এন , আপনার DFA তে এবং NFA হয় যথাক্রমে।ABABBAL(D)L(N)L(N)L(D)DN

ABAB¯=B¯B

L(N)L(D)DN

L(D)L(N)N

মূলত, আপনার প্রশ্নের সমস্যাটি আরও গভীর: আপনি যাচাই করতে চান যে আপনি (একটি অপরিজ্ঞাত গণনা মডেল) একটি সঠিকভাবে সংজ্ঞায়িত অ্যালগরিদমকে সঠিকভাবে সম্পাদন করেছেন। সুতরাং এটি আসলে কম্পিউটার-বিজ্ঞানের সমস্যা নয়।

L(D)L(N)22nnN


সুচিন্তিত উত্তরের জন্য আপনাকে ধন্যবাদ। আমি আজ নতুন কিছু শিখেছি. মনে হচ্ছে আমার সেরা বেটটি কেবল আমার কাজকে JFLAP এর সাথে তুলনা করা।
আইএএমঅনস্ট্যাক এক্সচেঞ্জ

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

1
আপনি উভয় মেশিনটি নির্ধারণ এবং ন্যূনতম করতে পারবেন না এবং দুটি মেশিন isomorphic কিনা তা পরীক্ষা করতে পারবেন না?
সাদাতাম

5

এগিয়ে যাওয়ার এক উপায় হল এনএফএকে ডিএফএতে রূপান্তর করা এবং তারপরে দুটি ডিএফএর সমতুল্যতা পরীক্ষা করা, যার জন্য একটি রৈখিক অ্যালগরিদম [1] রয়েছে।

নিম্নলিখিত কাগজ দুটি এনএফএ-এর সমতুল্যতার আরও সাধারণ ক্ষেত্রে বিবেচনা করে (অবশ্যই এটি আপনার ক্ষেত্রেও প্রযোজ্য)।

ফিলিপ্পো বনচি, ড্যামিয়েন পুউস, প্রোগ্রামিং ল্যাঙ্গুয়েজসের মূলসূত্র (পিওপিএল), জানুয়ারী ২০১৩, রোমা, ইতালি পর্যন্ত বিসিএমুলেশনের সাথে এনএফএ সমতা পরীক্ষা করে । এসিএম, পিপি 4657-468, 2013।

বিমূর্ত । আমরা অ-নিরোধক সসীম অটোমেটার ভাষার সমতা প্রমাণ করার কৌশল হিসাবে একত্রিত হয়ে বিসিমুলেশন চালু করি। এই কৌশলটি অন্বেষণ করে আমরা হপক্রফ্ট এবং কার্পের দ্বারা শাস্ত্রীয় অ্যালগরিদমের অপ্টিমাইজেশন তৈরি করেছি [1]। আমরা অন্তর্নিহিত দুটি সমন্বয়মূলক প্রমাণ পদ্ধতিগুলি বিশ্লেষণ করে এবং সম্পর্কিত করে সম্প্রতি প্রবর্তিত এন্টিচাইন অ্যালগরিদমগুলির সাথে আমাদের পদ্ধতির তুলনা করি। আমরা দৃ concrete় উদাহরণ দিই যেখানে অ্যান্টিচেইনগুলির তুলনায় আমরা তাত্পর্যপূর্ণভাবে উন্নতি করি; পরীক্ষামূলক ফলাফলগুলি তদারকযোগ্য উন্নতিগুলি দেখায়।

[1] জে হপক্রফ্ট এবং আরএম কার্প। সীমাবদ্ধ অটোমেটার সমতুল্যতা পরীক্ষা করার জন্য একটি লিনিয়ার অ্যালগরিদম। টিআর 114, কর্নেল ইউনিভ।, ডিসেম্বর 1971।

এই কাগজের ওয়েব পরিশিষ্টগুলিও দেখুন , যাতে ফলাফলগুলির কক প্রুফ স্ক্রিপ্ট রয়েছে, একটি বাস্তবায়নের লিঙ্ক এবং একটি ইন্টারেক্টিভ অ্যাপলেট।


এগিয়ে যাওয়ার এক উপায় হল এনএফএকে ডিএফএতে রূপান্তর করা , পোস্টারের লক্ষ্য হ'ল সেই অ্যালগরিদমের ফলাফল যাচাই করা। দু'বার প্রয়োগ করা আসলে একটি উপায় তবে অ্যালগরিদমের ভুল বোঝাবুঝির প্রতিরোধ নয়। সে কারণেই সম্ভবত একটি চেকিংয়ের পদ্ধতি জিজ্ঞাসা করা হয়েছিল।
এপ্রোগ্রামার

2
@ এপ্রাগ্রামার আমার উত্তরের মূল অংশটি এমন একটি অ্যালগরিদমের জন্য একটি রেফারেন্স, যার জন্য কোক প্রুফ স্ক্রিপ্ট পাওয়া যায়, এটি অবশ্যই আমি সবচেয়ে নিরাপদ চেকিং পদ্ধতিটি ভাবতে পারি।
জে.ই.

1
আমি নিশ্চিত নই যে এনএফএ থেকে ডিএফএর মতো একটি সাধারণ অ্যালগরিদম সম্পর্কে তার বোঝার বিষয়ে কেউ অনিশ্চিত একজন কোক প্রুফ স্ক্রিপ্ট দিয়ে কী করবেন। এটি তৃতীয় গ্রেডারের গণিত সমস্যা সমাধানের জন্য বীজগণিত ব্যবহার করার মতো দেখায়।
এপ্রোগ্রামার

0

এই প্রশ্নটি একটি তাত্ত্বিক প্রশ্নের চেয়ে প্রয়োগের সফ্টওয়্যার পরীক্ষার এবং অনুশীলনে যথার্থতা যাচাইয়ের বিষয়ে বেশি।

  • D1D2¯D2D1¯D¯

  • আপনি আপনার ফলাফল যাচাই করার জন্য পরীক্ষিত পূর্বের পরীক্ষিত সফ্টওয়্যারটির উপর নির্ভর করতে পারেন। যেমন এটিএন্ডটি এফএসএম গ্রন্থাগার

  • অন্য ধারণা: এলোমেলোভাবে পরীক্ষা। আপনার ভাষার মধ্যে এলোমেলো স্ট্রিং চয়ন করুন। স্ট্রিংগুলি ডিএফএ / এনএফএ দ্বারা গৃহীত বা অগ্রহণযোগ্য কিনা তা নির্ধারণ করুন। যদি দুটি সমান না হয় তবে উচ্চ সম্ভাবনার সাথে আপনি সেই স্ট্রিংগুলি দেখতে পাবেন যা মিলছে না।

  • আরেকটি ধারণা: আপনি ডিএফএ এবং এনএফএর সমস্ত শাখা কিছু নির্দিষ্ট গভীরতায় অতিক্রম করতে কোড লিখতে পারেন এবং অমিল খুঁজে পেতে পারেন। এটি প্রদত্ত দৈর্ঘ্যের সমস্ত সম্ভাব্য স্বীকৃত স্ট্রিংগুলি গণনার সমতুল্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.