একটি পুরানো পোস্ট উত্তর দেওয়ার জন্য দুঃখিত।
আমি এটি সম্পর্কে ভাবছিলাম এবং আমি মনে করি যে একটি নির্দিষ্ট বর্ণমালার সমস্যাটিও এনপি-সম্পূর্ণ।
আমি এই শব্দটির সমস্যার জন্য 1-ইন-3 স্যাটকে হ্রাস করতে চলেছি
গতকাল সমস্যাটি সমাধান করার জন্য আইডিয়া নিয়ে আসতে আমার সমস্যা হচ্ছে। আমি আবার প্রশ্নটি না তাকিয়ে প্রতিটি পরিবর্তনশীলকে আলাদা করতে আমার সমস্যা হয়েছিল এবং আমি বুঝতে পেরেছিলাম যে আপনি লাগানো চিহ্নগুলির সাথে স্কোয়ারগুলি রাখার অনুমতি দিয়েছেন। এটি হ্রাস অনেক সরল। আমার অন্যান্য ধারণাটি ছিল প্রতিটি পৃথক ভেরিয়েবলের জন্য বিভিন্ন দৈর্ঘ্যের শব্দ have
নিরসন
এখন আমি যে গ্যাজেটগুলি ব্যবহার করব তা বর্ণনা করতে চলেছি:
পরিবর্তনশীল গ্যাজেট
আমরা প্রতিটি ভেরিয়েবলকে পৃথক সংখ্যাসূচক সূচকের সাথে লেবেল করি এবং প্রতিটি ভেরিয়েবলের জন্য আমাদের আলাদা সংখ্যা থাকবে। আমরা বৃহত্তম সূচকটি বেছে নিয়েছি এবং বাইনারিতে আমরা সংখ্যাটি উপস্থাপন করি, আমরা এই বাইনারি চেইনটিকে ।n
তারপরে আমরা প্রতিটি ভেরিয়েবলের জন্য দুটি পৃথক উল্লম্ব শব্দ তৈরি করি। সমস্ত শব্দের দৈর্ঘ্য(কেবলমাত্র যদি আমরা শব্দের তালিকায় নকল শব্দকে অনুমতি দিই), যেখানেবাইনারি চেইনের দৈর্ঘ্য ।3+|n||n|n
উদাহরণস্বরূপ, বৃহত্তম সূচকটি নম্বর হোক । যখন আমরা বাইনারিতে এই সংখ্যাটি রূপান্তর করি আমরা বাইনারিতে শৃঙ্খলা পাই , এই চেইনের দৈর্ঘ্য তিনটি। সুতরাং প্রতিটি পরিবর্তনশীল শব্দের এই উদাহরণে দৈর্ঘ্য থাকবে ।41006
এখন আমরা প্রতিটি ভেরিয়েবলের জন্য দুটি পৃথক শব্দ তৈরি করি। একটি শব্দের শুরুতে চিহ্ন থাকবে , তারপরে নীচের চিহ্নটি , তারপরে একটি বাইনারি চেইন যা ভেরিয়েবলের সূচকে উপস্থাপন করে এবং আমরা শৃঙ্খলে শূন্যের সাথে প্যাড করি যাতে এটি একই দৈর্ঘ্যের সাথে চেইন এবং অবশেষে প্রতীক শেষে. অবশ্যই প্রতীকগুলি পরিবর্তন করা যেতে পারে।32n3
অন্য শব্দটি প্রায় একই রকম তবে এতে চিহ্নের পরিবর্তে চিহ্ন থাকবে ।43
উদাহরণস্বরূপ, বৃহত্তম সূচকটি নম্বর হোক । আমাদের সূচক সহ ভেরিয়েবলের জন্য নিম্নলিখিত দুটি শব্দ থাকবে :41
320013 এবং420014
আমরা দেখতে পাচ্ছি যে আমরা জিরো দিয়ে নম্বর বাইনারি পুনরাবৃত্তিকে প্যাড করেছি যাতে এটির দৈর্ঘ্য1|n|
আমাদের এই শব্দগুলি বহুবার অনুলিপি করতে হবে, স্যাট উদাহরণে প্রতিটি ভেরিয়েবলের প্রতিটি ঘটনার জন্য আমাদের প্রতিটি শব্দের একটি অনুলিপি লাগবে। এটি শব্দের তালিকায় নকল তৈরি করবে। বাইনারি চেইনে আরেকটি বাইনারি চেইন যোগ করে আমরা নকলগুলি থেকে মুক্তি পেতে পারি যা ভেরিয়েবলটি অনন্যভাবে চিহ্নিত করে। এই নতুন চেইনটি একটি ভেরিয়েবলের প্রতিটি অনুষ্ঠানকে স্বতন্ত্রভাবে সনাক্ত করবে।
এটি করার জন্য, আমরা কেবল ভেরিয়েবলের প্রতিটি ঘনত্বকে অন্য বাইনারি শৃঙ্খলা বরাদ্দ করি এবং আমরা ভেরিয়েবলের বাইনারি উপস্থাপনার শেষে সেই শৃঙ্খলাটিকে ওলেস করি।
এই নতুন বাইনারি শৃঙ্খলা তৈরি করতে প্রথমে আমাদের প্রতিটি ভেরিয়েবলের জন্য আলাদা সূচক তৈরি করতে হবে, আমরা প্রতিটি সূচকে সবচেয়ে বড় নম্বর কল যেখানে প্রতিটি ভেরিয়েবলের জন্য সনাক্তকারী। এর পরে, আমরা সংখ্যাটিকে একটি বাইনারি চেইনে রূপান্তর এবং তারপরে আমরা চেইনের দৈর্ঘ্য গণনা করি, আমরা এই নম্বরটি কল করি | n i | । তারপরে, প্রতিটি সূচকের জন্য, আমরা ভেরিয়েবলের প্রতিটি সংখ্যার জন্য একটি পৃথক বাইনারি সংখ্যা তৈরি করি। আমরা প্যাড শূণ্যসমূহ সঙ্গে সংখ্যা পর্যন্ত বাইনারি শৃঙ্খল দৈর্ঘ্য হয়ে | n i | যাতে ভেরিয়েবলের প্রতিটি সংখ্যার সাথে সম্পর্কিত সমস্ত শব্দগুলির দৈর্ঘ্য একই হয়। i n iniini|ni||ni|
এটি পরিবর্তনশীল শব্দের ভিতরে সদৃশ থেকে মুক্তি পাবে।
উদাহরণস্বরূপ, ধরুন যে ভেরিয়েবল স্যাট উদাহরণে তিনবার উপস্থিত হবে। আমরা নিম্নলিখিত শব্দ তৈরি:x2
42010014 , 32010103 42010104 এবং 32010113 4201011432010013 4201001432010103 4201010432010113 42010114
ক্লজ গ্যাজেট
প্রতিটি ক্লজ গ্যাজেটের জন্য আমরা তিনটি নতুন অনুভূমিক শব্দ তৈরি করব, প্রতিটি অনুচ্ছেদের শব্দের দৈর্ঘ্য স্কোয়ারের হবে (কেবলমাত্র আমরা শব্দের তালিকায় নকল শব্দকে অনুমতি দিই) if এই প্রতিটি শব্দটির জন্য আমরা এই শব্দগুলি তৈরি করব:6
, 535453 এবং 545353535354535453545353
ধারাটি সন্তুষ্ট করার প্রতিটি সম্ভাব্য পদ্ধতির জন্য আমাদের কাছে একটি পৃথক শব্দের শব্দ রয়েছে, প্রতীক সত্যের কাছে একটি আক্ষরিক সেট উপস্থাপন করে এবং প্রতীক 3 মিথ্যাতে আক্ষরিক সেটকে উপস্থাপন করে। 5 নম্বরটি এটি একটি অনুচ্ছেদের শব্দটি বোঝাতে ব্যবহৃত হয়।435
শব্দের তালিকায় বারবার শব্দ থাকবে, আমরা পরিবর্তনশীল শব্দের স্বতন্ত্রভাবে সনাক্ত করতে যে পদ্ধতিটি ব্যবহার করেছি তা ব্যবহার করে পুনরাবৃত্তিগুলি থেকে মুক্তি পেতে পারি। এটি হ'ল আমরা প্রতিটি ধারাটির জন্য একটি পৃথক বাইনারি চেইন তৈরি করি এবং আমরা প্রতিটি শৃঙ্খলে প্রতিটি শৃঙ্খলে সংযোজনীয় শব্দের সাথে যুক্ত করি। যে আমরা ক্লজ জন্য একটি নতুন সূচক তৈরি করুন এবং আমরা সূচক সবচেয়ে বড় সংখ্যা বাছাই করার জন্য, আপনাকে এই নম্বরে কল হবে । আমরা প্রতিনিধিত্ব মি একটি বাইনারি শৃঙ্খল যেমন এবং আমরা যত এই বাইনারি শৃঙ্খল দৈর্ঘ্য কল | মি | । এখন, আমরা প্রতিটি ধারাটির জন্য 1 নম্বর দিয়ে শুরু করে একটি পৃথক বাইনারি নম্বর তৈরি করি এবং আমরা একটি বাইনারি চেইন তৈরির জন্য শূন্যের সাথে সংখ্যাটি প্যাড করি যার দৈর্ঘ্য রয়েছে | মি |mm|m||m|। আমরা প্রতিটি বাইনারি শৃঙ্খলে ক্লজের সাথে যুক্ত ক্লজ শব্দের সাথে যুক্ত করি।
এখন, বোর্ডে একটি ক্লজ গ্যাজেটের ছবি দেখতে দিন:
এই উদাহরণটি ধারাটি উপস্থাপন করে এবং 3 টির মধ্যে 1 টি হ্রাস করা হচ্ছে ( x 1 ∨ x 2 ∨ x 3 ) ∧ ( x 2 ∨ x 3 ∨ x 4 )( এক্স2। X3। X4)( এক্স1। X2। X3) ∧ ( এক্স2। X3। X4)
আমরা দেখতে পাচ্ছি, এখানে স্কোয়ারগুলি রয়েছে। উল্লম্ব কলামগুলিতে শব্দের মধ্যে কোন আক্ষরিক চিহ্ন রয়েছে তা নির্দেশ করার জন্য লিখিত চিহ্ন রয়েছে। কলামের শেষ এবং শুরুটি ফাঁকা স্কোয়ার। এটি প্লেয়ারকে ভেরিয়েবলের মান চয়ন করতে দেয়। অনুভূমিক সারিতে চিহ্নিত চিহ্নগুলি খেলোয়াড়কে সেই সারিটিতে একটি শব্দের শব্দ রাখতে বাধ্য করে। কারণ সমস্ত অনুচ্ছেদের শব্দের কেবল একটিই প্রতীক যার অর্থ ক্লজ গ্যাজেটের অভ্যন্তরে থাকা আক্ষরিক মাত্র একটিতে "সত্য" হিসাবে সেট করা যেতে পারে।4
আমরা যদি শব্দের তালিকার ভিতরে নকলকে অনুমতি না দিয়ে থাকি তবে আমাদের চিত্রটি পরিবর্তন করতে হবে।
চিত্রের ধারাটি সারিটি হয়ে উঠবে: এবং আক্ষরিক কলামগুলি বাম থেকে ডানে হবে:5 বি 5 খ 5 বি 10
, বি 201110 বি এবং বি 21001 খখ 201010 খখ 201110 খখ 21001 খ
যেখানে প্রতীক অর্থ ফাঁকা বর্গক্ষেত্রখ
একটি উদাহরণ দেখুন:
পরিবর্তনশীল ধারাবাহিকতা গ্যাজেট
এটি এমন একটি গ্যাজেট যা নিশ্চিত করে যে প্লেয়ারটি কেবল একটি ভেরিয়েবলের সমস্ত আক্ষরিক কলামের জন্য একই মান সঞ্চার করতে পারে।
আমাদের প্রতিটি ভেরিয়েবলের জন্য একটি নতুন গ্যাজেট থাকবে
আমরা প্রতিটি গ্যাজেটের জন্য দুটি নতুন শব্দ তৈরি করব।
শব্দের দৈর্ঘ্য একটি ভেরিয়েবলের সংখ্যার উপর নির্ভর করবে। একটি শব্দের দৈর্ঘ্য যেখানে k হল একটি ভেরিয়েবলের সংখ্যার সংখ্যা। সুতরাং ভেরিয়েবল এক্স 2 যদি স্যাট ইন দৃষ্টান্তে দু'বার উপস্থিত হয় তবে শব্দটির দৈর্ঘ্য চারটি হবে। দুটি শব্দের মধ্যে একটি চ্যানেলটি 63৩ কে বার পুনরাবৃত্তি করে গঠিত হয় , যেখানে k হল ভেরিয়েবলের সংখ্যার সংখ্যা। অন্য শব্দটি 64 কে বার শৃঙ্খলা পুনরাবৃত্তি করে গঠিত হয় , যেখানে কে স্যাট উদাহরণের মধ্যে পরিবর্তনশীল সংখ্যার সংখ্যা হ্রাস পাচ্ছে।2 ∗ কেটএক্স263 ট64 ট
উদাহরণস্বরূপ, যদি কোনও ভ্যারিয়েবল এর দুটি অ্যাকুরিয়েন্স থাকে তবে সংশ্লিষ্ট ভেরিয়েবল অ্যাসাইনমেন্ট গ্যাজেটের সাথে সম্পর্কিত শব্দগুলি হ'ল:এক্স2
এবং 646463636464
যদি আমরা বারবার শব্দগুলি এড়াতে চাই তবে লক্ষ্য করুন যে প্রতিটি ধারাবাহিকতা গ্যাজেটটি একটি ভিন্ন ভেরিয়েবলের অন্তর্গত। সুতরাং আমরা বাইনারি চেইন যুক্ত করতে পারি যা এই গ্যাজেটের জন্য আমরা যে দুটি শব্দ তৈরি করেছি তার প্রতিটি ভেরিয়েবলকে চিহ্নিত করে identif
এখন আসুন এই গ্যাজেটের উদাহরণ চিত্রটি দেখুন:
এক্স2( এক্স1। X2। X3) ∧ ( এক্স2। X3। X4)
3434। আমরা এই গ্যাজেডের বাকী শব্দটি অন্য সারিতে রাখতে পারি
আমরা যদি শব্দের তালিকায় নকলকে অনুমতি না দিয়ে থাকি তবে উদাহরণ চিত্রের ভিতরে থাকা শব্দগুলি হ'ল:
সারিগুলির জন্য:
6 খ 6 খ 0106 খ 6 খ 010
কলামগুলির জন্য:
খ 201001 খখ 201010 খ
যেখানে প্রতীক খখ
একটি উদাহরণ দেখুন:
ক্লজ ডাম্প গ্যাজেট
এটি একটি গ্যাজেট যা অব্যবহৃত ধারা শব্দের জন্য তৈরি করা হয়েছে। এটি করার জন্য, আমাদের বোর্ডের খালি অংশে প্রতিটি ক্লজ শব্দের জন্য কেবল দুটি সারি রাখতে হবে। এই সারিগুলি অন্য কোনও সারি বা কলামের সাথে সংযুক্ত নয়।
এটির সাহায্যে আমরা হ্রাসটি শেষ করেছি, কারণ আমরা দাবি করেছি যে হ্রাসের জন্য আমাদের কেবল 6 টি প্রতীক প্রয়োজন।
উদাহরণ
পূর্ববর্তী ব্যাখ্যাটি যদি বিভ্রান্তিকর হয় তবে এখানে 3 স্যাট-এর 1 পজেটিভ উদাহরণের উদাহরণ রয়েছে যা এই শব্দের সমস্যায় হ্রাস পেয়েছে:
যদি আমরা বারবার শব্দগুলি অস্বীকার করি:
হ্রাস করা উদাহরণটি হ'ল:
( এক্স1। X2। X3) ∧ ( এক্স2। X3। X4)