খুব বড় এনএফএকে ডিএফএতে রূপান্তর করার জন্য অ্যালগরিদম


12

আমার কাছে সত্যই বড় বড় অ-ডিসট্রিমেন্টিক সসীম অটোমেটন রয়েছে এবং এটি ডিএফএতে রূপান্তর করা দরকার।

বড় মাপে আমার অর্থ 40 000+ রাজ্য। এখনও অবধি আমি কিছু পরীক্ষা-নিরীক্ষা করেছি এবং ডিফল্ট অ্যালগরিদমকে প্রোগ্রাম করেছি যা টেবিলের মাধ্যমে অনুসন্ধান করে ( এখানে বর্ণিত হিসাবে ), তবে অপ্টিমাইজেশনের পরেও বেশ ধীর এবং খুব স্মৃতি গ্রাসকারী। আমি এই সত্যটি সম্পর্কে সচেতন, যে রাজ্যের সংখ্যা তাত্ক্ষণিকভাবে বৃদ্ধি পেতে পারে, তবে হ্রাসের পরে, ফলস্বরূপ ডিএফএর প্রায় 9000 রাজ্য রয়েছে এবং এটি বহনযোগ্য।

সুতরাং আমার প্রশ্নটি হ'ল কিছু অ্যালগরিদম আছে কি তা দ্রুত বা আরও মেমরি বন্ধুত্বপূর্ণ হবে?


ভিডিওটি দৃশ্যত স্ট্যান্ডার্ড নির্ধারণকারী অ্যালগরিদমের উপর রয়েছে। উদাহরণস্বরূপ এনএফএ মিনিমাইজেশন
স্ট্যাকওভারফ্লো

আপনি যদি নিষ্পাপ এনএফএ-> ডিএফএ রূপান্তর (পণ্য নির্মাণ ব্যবহার করে) করেন তবে ফলাফল প্রাপ্ত ডিএফএ কত বড়? (সংক্ষিপ্তকরণের আগে)
ডিডাব্লু

2
আপনি ডিএফএ-এর সাথে কী করতে চান? আপনি যদি অন্তর্ভুক্তি পরীক্ষাগুলিতে আগ্রহী হন তবে সরাসরি এটি করার জন্য অ্যালগরিদম রয়েছে।
বিজয় ডি

খুব দ্রুত উত্তরের জন্য আপনাকে ধন্যবাদ। আকারের জন্য, আমার র‌্যামটি ফুরিয়ে যাওয়ার পর থেকে আমি ঠিক বলতে পারি না, তবে আমি এটিকে আরও ঘনিষ্ঠভাবে এবং প্রশ্নের প্রসারকে আরও বাড়িয়ে দেব। আমি যা করতে চাই তার জন্য, আমি নিশ্চিত নই, আমি এটি সম্পর্কে খোলামেলা চ্যাট করতে পারি কিনা, যেহেতু এটি আমার দৃ know় জ্ঞান bit তবে আমি অবশ্যই বলতে পারি, আমার আসলে ফলাফল প্রাপ্ত ডিএফএ দরকার।
জেন্ডাস

1
আপনি কি সদস্যতা এবং সমতুল্য প্রশ্নগুলি থেকে ডিএফএগুলি শেখার জন্য অ্যাংলুইনের অ্যালগরিদম চালানোর চেষ্টা করেছেন? সদস্যতার অংশটি সহজ (কেবল প্রয়োজনীয় স্ট্রিংয়ে আপনার ডিএফএ চালান); সমতা জন্য, আপনি প্রচুর এলোমেলো স্ট্রিং আঁকতে পারেন বা একটি নির্দিষ্ট দৈর্ঘ্য পর্যন্ত সমস্ত স্ট্রিং চেষ্টা করতে পারেন। এটি কেবলমাত্র একটি হিউরিস্টিক কারণ আপনি কখনই শেষ করবেন কখনই বুঝতে পারবেন না, তবে আমি পেয়েছি যে এই কৌশলটি বাস্তবে ভালভাবে কাজ করে ...
আরেহ

উত্তর:


6

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

নিম্নলিখিত কাগজটি প্রাসঙ্গিক বলে মনে হচ্ছে:

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

দৃ N়ভাবে সংযুক্ত উপাদানগুলি (এসসিসি) আপনার এনএফএ (এটি নির্দেশিত গ্রাফ হিসাবে বিবেচনা করে) পচে যাওয়ার মতো দেখতে কেমন? এর কি অনেকগুলি উপাদান রয়েছে, যেখানে কোনও উপাদানই খুব বেশি বড় নয়? যদি তা হয়, তবে আমি অবাক হয়েছি যে কোনও বিভাজন এবং বিজয়ী অ্যালগরিদম তৈরি করা সম্ভব হতে পারে, যেখানে আপনি কোনও একক উপাদান নিয়ে যান, এটি এনএফএ থেকে ডিএফএতে রূপান্তর করুন এবং তারপরে এটি ন্যূনতম করুন এবং তারপরে মূলটিকে নতুন নির্ধারিত সংস্করণ দিয়ে প্রতিস্থাপন করুন। একক-প্রবেশের উপাদানগুলির জন্য এটি সম্ভব হওয়া উচিত (যেখানে component উপাদানটির সমস্ত প্রান্তই একক প্রান্তকে প্রবেশ করে, প্রবেশ ভেরিটেক্স)। স্বেচ্ছাসেবী এনএফএগুলির জন্য এটির মতো কিছু করা সম্ভব হবে কিনা তা আমি তাৎক্ষণিকভাবে দেখতে পাচ্ছি না, তবে যদি আপনি এসসিসির কাঠামোর চেহারাটি পরীক্ষা করেন তবে আপনি নির্ধারণ করতে সক্ষম হবেন যে এই ধরণের দিকটি অন্বেষণ করার উপযুক্ত কিনা? ।


ব্রাজোজস্কির অ্যালগোরিদম আশাব্যঞ্জক বলে মনে হচ্ছে তবে বিভাজন এবং বিজয়ী কৌশলটি আরও বেশি! আমার ক্ষেত্রে এটি করা খুব সহজ এবং বড় কোড পরিবর্তন প্রয়োজন হয় না। আমি এটি করব এবং যদি তা কার্যকর হয় তবে আমি আপনার উত্তরটি গ্রহণ করব।
জেন্ডাস

2
আমি এসেছি, আমি জিজ্ঞাসা করেছি, আমি বিভক্ত হয়েছি, আমি জয়লাভ করেছি
জেন্ডাস

2

এটি "ডিএফএ নির্ধারণ / ডিএফএকে ন্যূনতমকরণ" এর মূল / দীর্ঘ-পূর্ব কৌশল ব্যতীত জ্ঞাত / উপলব্ধ অ্যালগোরিদমগুলির বিবেচনায় দৃশ্যত খুব সু-অধ্যয়নিত সমস্যা নয়। আপনি নির্ধারণের পদক্ষেপটি সমস্যাযুক্ত হিসাবে চিহ্নিত করেছেন বলে মনে হয় তবে এটির সাধারণত একটি বিশেষ ক্ষেত্র / সময় খারাপ পরিস্থিতি রয়েছে given নোট করুন যে বেশ কয়েকটি ডিএফএ মিনিমাইজেশন অ্যালগরিদম রয়েছে যা গড়ে পারফরম্যান্সে উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে।

এটি "নির্ধারণ ছাড়াই এনএফএ হ্রাসকরণ" নামে আরও অনানুষ্ঠানিকভাবে পরিচিত । এটি এই অর্থে কঠোর হিসাবে জানা যায় যে মূলত পি = স্পস্পেস না হওয়া পর্যন্ত মূলত আনুমানিক অ্যালগরিদম নেই তবে এই কাগজটিতে দেখানো হয়েছে:

তবে এই কাগজটি কয়েকটি অ্যালগোরিদমের সাধারণত বিরল অন্বেষণকৃত কেসগুলি বিবেচনা করে যা নির্ধারিত ডিএফএ 1 সন্ধানের ভিত্তিতে নয় :

আমরা ননডেটেরিমেন্টিক অটোমেটাতে রাজ্যের সংখ্যা এবং সংক্রমণ হ্রাস করার জন্য বিভিন্ন কৌশল উপস্থাপন করি। এই কৌশলগুলি বাম এবং ডান ভাষাগুলির অন্তর্ভুক্তির সাথে সম্পর্কিত বিভিন্ন রাজ্যের সংস্থার উপর ভিত্তি করে দুটি পূর্বনির্ধারকের উপর ভিত্তি করে। যেহেতু তাদের নিখুঁত গণনাটি এনপি-হার্ড, তাই আমরা বহুবর্ষীয় অনুমানগুলিতে মনোনিবেশ করি যা এনএফএ হ্রাস করতে সক্ষম হয় all

এটি একটি সাধারণভাবে উপলভ্য প্যাকেজ / বাস্তবায়ন নোট করুন যা সাধারণভাবে দক্ষতার সাথে কার্যকরভাবে দক্ষতার সাথে এনএফএ / ডিএফএ রূপান্তর / মিনিমাইজেশন ইত্যাদি পরিচালনা করতে পারে এটি এন্ড টিটি এফএসএম গ্রন্থাগার

এটির একটি কৌশল রয়েছে fsmcompactযা কখনও কখনও পর্যাপ্ত করতে পারে:

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


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