ক্ষুদ্রতম অনুসন্ধানের ব্যবহার না করে দুটি শব্দ পৃথককারী সবচেয়ে ছোট ডিএফএ সন্ধান করছেন?


23

দুটি স্ট্রিং x এবং y দেওয়া, আমি ন্যূনতম আকারের ডিএফএ তৈরি করতে চাই যা এক্স গ্রহণ করে এবং y প্রত্যাখ্যান করে। এটি করার একটি উপায় হ'ল নৃশংস বাহিনী অনুসন্ধান। আপনি ডিএফএর শুরুটি সবচেয়ে ছোট দিয়ে শুরু করুন। আপনি এক্সটি গ্রহণ করে এবং y প্রত্যাখ্যান করে এমন কোনও সন্ধান না করা পর্যন্ত আপনি প্রতিটি ডিএফএ চেষ্টা করে দেখেন।

আমি জানতে চাই যে ন্যূনতম আকারের ডিএফএ সন্ধান বা বিল্ড করার কোনও অন্য কোনও উপায় আছে যা এক্স গ্রহণ করে এবং y প্রত্যাখ্যান করে। অন্য কথায়, আমরা কী জাল ফোর্স সন্ধান করতে পারি?

আরো বিস্তারিত:

(1) আমি একটি ন্যূনতম মাপের ডিএফএ নয়, একটি ন্যূনতম আকারের ডিএফএ খুঁজে পেতে সত্যিই একটি অ্যালগরিদম চাই want

(২) ন্যূনতম ডিএফএ কত বড় বা ছোট তা আমি কেবল জানতে চাই না।

(3) এই মুহুর্তে, আমি কেবলমাত্র আপনার ক্ষেত্রে x এবং y দুটি স্ট্রিং থাকায় এই বিষয়ে দৃষ্টি নিবদ্ধ করছি।


সম্পাদনা করুন :

আগ্রহী পাঠকের জন্য অতিরিক্ত তথ্য:

ধরুন এবং y দৈর্ঘ্যের বাইনারি স্ট্রিং সর্বাধিক n হয় । এটি একটি পরিচিত ফলাফল যে একটি ডিএফএ রয়েছে যা এক্স গ্রহণ করে এবং y কে সর্বাধিক with দিয়ে প্রত্যাখ্যান করে xynxy রাজ্যগুলি। লক্ষ করুন যে প্রায়nare রয়েছেn বাইনারি বর্ণমালা এবং সর্বাধিক D এর সাথে ডিএফএরnn রাজ্যগুলি। অতএব, নিষ্ঠুর বলের পদ্ধতির জন্য আমাদেরnmore এর বেশি গণনার প্রয়োজন হবে নাn ডিএফএ এর। এটি অনুসরণ করে যে ব্রুট ফোর্স পদ্ধতিরn n এরচেয়ে বেশি কিছু নিতে পারে নাnn সময়।nn

যে স্লাইডগুলি আমি সহায়ক বলে মনে করেছি: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf


2
@ AndrásSalamon এটি এখনও দ্বারা NP-সম্পূর্ণ তা সেট করে প্রতিটি কেবল একটি স্ট্রিং দ্বারা গঠিত আলাদা করা তাহলে কি হবে? এটি আমার কাছে মনে হয় এটি যথাযথভাবে ট্র্যাকটেবল হওয়া উচিত।
মুহম্মে 12'15

6
@ সমস্যাটি হ'ল এখানে অনেকগুলি নিয়মিত ভাষা রয়েছে যা দুটি স্ট্রিংকে আলাদা করে - ডিএফএ মিনিমাইজেশন এই ভাষার যে কোনও একটির জন্য সেরা অটোমেটনের সন্ধান করবে তবে অন্য পৃথককারী ভাষার জন্য এটি অটোমাতার সাথে তুলনা করার জন্য কিছুই করবে না।
ডেভিড এপস্টেইন

4
তাহলে এবং ওয়াই বিভিন্ন লেন্থ, দৈর্ঘ্য বড় সঙ্গে আছে এন , এটা সহজ দ্রুত সঙ্গে একটি DFA তে এটি হে ( লগ ) বলে যে, আলাদা তাদের: শুধু দৈর্ঘ্য একটি চক্র ব্যবহার পি , যেখানে পি ডিভাইড না | এক্স | - | y | । এই পি চেষ্টা করে 2 , 3 , 5 , ... অর্ডার পর্যন্ত আপনি উপযুক্ত খুঁজে পেতে পি । যদি x এবং y একই দৈর্ঘ্য হয় তবে xynO(logn)pp|x||y|p2,3,5,pxy১৯৯ 1996 সালে একটি কাগজে রবসন নির্মাণ একটি সাধারণ মেশিন দেয় যা আকার(এন) এরসন্ধান দ্বারা পাওয়া যায়। উভয়ই নির্মাণের ক্ষুদ্রতম ডিএফএ হওয়ার নিশ্চয়তা নেই। O(n)O(n)
জেফ্রি শালিত

3
শ্যালিতের নোটগুলি উপরের লিঙ্কে দরকারী পর্যবেক্ষণকে অন্তর্ভুক্ত করেছে যে বর্ণমালা দ্বিখণ্ডিত হলে পৃথকীকরণের সমস্যার জন্য সবচেয়ে খারাপ পরিস্থিতি ঘটে: বৃহত্তর বর্ণমালাগুলিকে দুটি উপ-বিভাগে বিভাজন করা সম্ভব হয় যা এখনও দুটি ইনপুট শব্দকে পৃথক করে এবং বাইনারি অটোমেটনের সন্ধান করে যা চিকিত্সা করে একটি সাবসেটে 0 এর হিসাবে অক্ষর এবং অন্য সাবসেটের 1 টি হিসাবে অক্ষর। তবে ন্যূনতম পৃথকীকরণ অটোমেটনের সন্ধানের জন্য এটি সাহায্য করবে বলে মনে হয় না, কারণ আপনি বাইনারি বর্ণমালার ম্যাপিংয়ের চেয়ে আপনি মূল বর্ণমালার অতিরিক্ত তথ্য ব্যবহারের চেয়ে আরও ভাল করতে সক্ষম হতে পারেন।
ডেভিড এপস্টিন

3
এই অন্যান্য সাম্প্রতিক প্রশ্নের একটি বিশেষ ক্ষেত্রে যেখানে ইন-সেট এবং আউট-সেট মাপ সমান ১। ন্যূনতম সসীম অটোমেটা ইন-শব্দ এবং আউট-শব্দের দেওয়া । এই উত্তরটিতে কিছু শিক্ষণীয় সাহিত্যের তালিকা রয়েছে কিছু হিউরিস্টিক্স।
vzn

উত্তর:


9

যদি অনুশীলনে আমার এটি করতে হয় তবে আমি একটি স্যাট সমাধানকারী ব্যবহার করব।

সাথে ডিএফএ রয়েছে কিনা তা প্রশ্নে এক্স গ্রহণ করে এবং y প্রত্যাখ্যান করে তা সহজেই স্যাট উদাহরণ হিসাবে প্রকাশ করা যেতে পারে। উদাহরণস্বরূপ, একটি উপায় হ'ল 2 কে 2 বুলিয়ান ভেরিয়েবলগুলি থাকে: z s , b , t সত্য হয় যদি ডিএফএ রাষ্ট্রের গুলি থেকে ইনপুট বিট বি তে রাষ্ট্রের t তে রূপান্তর করে । তারপর জোরদার করা এই একটি DFA তে কয়েকটি ক্লজ যোগ করুন, এবং কিছু ভেরিয়েবল ও ক্লজ জোরদার করা এটি গ্রহণ এক্স এবং প্রত্যাখ্যান Ykxy2k2zs,b,tstbxy

এখন বাইনারি অনুসন্ধান ব্যবহার ক্ষুদ্রতম এটি যেমন যে এই একটি DFA তে সাজানোর বিদ্যমান। সম্পর্কিত সমস্যার বিষয়ে আমি কাগজপত্রগুলিতে যা পড়েছি তার ভিত্তিতে, আমি আশা করব যে এটি বাস্তবে কার্যকরভাবে কার্যকর হতে পারে।kk


এসএটি হিসাবে এর অন্যান্য এনকোডিংগুলি সম্ভব। উদাহরণস্বরূপ, আমরা একটি ট্রেস এনকোডিং ব্যবহার করতে পারি:

  • তাহলে দৈর্ঘ্য হল মি , আপনি যোগ করতে পারিনি মি এলজি বুলিয়ান ভেরিয়েবল: লেট গুলি 0 , গুলি 1 , ... , গুলি মি ইনপুট ভেদকরেখার রাজ্যের ক্রম হতে এক্স , এবং প্রতিনিধিত্ব প্রতিটি গুলি আমি ব্যবহার এলজি বুলিয়ান ভেরিয়েবল।xmmlgks0,s1,,smxsilgk

  • এখন প্রত্যেকের জন্য যেমন যে এক্স আমি = এক্স , আপনি বাধ্যতা আছে গুলি আমি - 1 = গুলি - 1i,jxi=xjsi1=sj1si=sj

  • এরপরে, হ্যান্ডেল করার জন্য এটি প্রসারিত করুন : যাক t 0 , , t n ইনপুট y এর উপর ট্র্যাশড স্টেটগুলির ক্রম হতে হবে এবং lg k বুলিয়ান ভেরিয়েবলগুলি ব্যবহার করে প্রতিটি টি জে উপস্থাপন করুন । প্রত্যেকের জন্য আমি , যেমন যে Y আমি = Y , বাধ্যতা যোগ করুন যে T আমি - 1 = টি - 1yt0,,tnytjlgki,jyi=yjti1=tj1ti=tj

  • একইভাবে, প্রত্যেকের জন্য যেমন যে x আমি = Y , বাধ্যতা যে যোগ গুলি আমি - 1 = টি - 1i,jxi=yjsi1=tj1si=tj

  • উভয় ট্রেস একই আদ্যস্থল থেকে শুরু করতে হবে, তাই প্রয়োজন যে যোগ (WLOG আপনি প্রয়োজন হতে পারে গুলি 0 = T 0 = 0 )।s0=t0s0=t0=0

  • যে DFA তে শুধুমাত্র ব্যবহার নিশ্চিত করার জন্য রাজ্যের প্রয়োজন যে 0 গুলি আমি < এবং 0 টি < সবার জন্য আমি , k0si<k0tj<ki,j

  • অবশেষে, প্রয়োজন এনকোড যে গৃহীত এবং Y প্রত্যাখ্যাত হয়, প্রয়োজন যে গুলি মিটি এনxysmtn

এই সমস্ত প্রয়োজনীয়তা স্যাট ধারা হিসাবে এনকোড করা যেতে পারে।

আগের মতো, আপনি সবচেয়ে ছোট কে খুঁজে পেতে বাইনারি অনুসন্ধান ব্যবহার করবেন যার জন্য এই জাতীয় ডিএফএ বিদ্যমান রয়েছে।kk


3
নোট করুন সমস্যাটিতে কিছু নির্দিষ্ট প্রতিসাম্য রয়েছে এবং তারা সমাধানকারী দ্বারা স্বীকৃত থাকলে তবে বর্তমানে সেগুলি সনাক্তকরণ / বিচ্ছিন্ন করা (মানব বা মেশিনের জন্যই) অসুবিধাজনক হতে পারে তবে এটি জঘন্য বল অনুসন্ধানের চেয়ে আরও ভাল হবে। সন্তুষ্টিযোগ্যতা মডুলো তত্ত্ব এবং উত্তর সেট প্রোগ্রামিংয়ের কিছু নতুন / সম্পর্কিত "প্রযুক্তি" রয়েছে যার মধ্যে কিছু কিছু "বিল্ট-ইন" গ্রাফ ভবিষ্যদ্বাণী করে বা তাদের সংজ্ঞাগুলি সমর্থন করতে পারে।
vzn
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.