এখানে একটি ভিন্ন পদ্ধতি, iteratively এই সংখ্যার যে মধ্যে প্রদর্শিত করতে পারবে না খোঁজার উপর ভিত্তি করে { একটি 1 , ... , একটি 6 } । একটি সেট করুন একটি এর কোনো ওভার-দ্য পড়তা একটি যদি আমরা সেটা জানি 's { একটি 1 , ... , একটি 6 } ⊆ একজন । একইভাবে, বি একজন overapproximation হয় খ যদি আমরা জানি যে s ' { খ 1 , ... , খ 6 } ⊆ বি । স্পষ্টতই, ছোট এ{a1,…,a6}Aa{a1,…,a6}⊆ABb{b1,…,b6}⊆BAহয়, এই অতিরিক্ত-অনুমানের পরিমাণ আরও কার্যকর এবং এটি বি এর ক্ষেত্রেও একই রকম । আমার দৃষ্টিভঙ্গি এই অতিরিক্ত-অনুমানকে পুনরায় সংশোধন করার উপর ভিত্তি করে তৈরি করা হয়েছে, অর্থাত্ পুনরায় এই সেটগুলির আকার হ্রাস করা (আমরা যত বেশি সংখ্যক মানকে অসম্ভব বলে প্রমাণ করি)।B
এই পদ্ধতির মূল জন্য একটি পদ্ধতি পরিশোধন : কোনো ওভার-দ্য পড়তা দেওয়া একটি জন্য একটি 's এবং কোনো ওভার-দ্য পড়তা বি জন্য খ ' s, একটি নতুন ওভার পড়তা এটি একটি * জন্য একটি 'র যেমন যে একজন ∗ ⊊ এ । বিশেষ করে, সাধারণত একজন * চেয়ে ছোট হতে হবে একজন , তাই এই আমাদের জন্য ওভার পড়তা পরিমার্জন করতে দেয় একটিAaBbA∗aA∗⊊AA∗Aa 'র।
প্রতিসাম্য দ্বারা, মূলত একই কৌতুক দেওয়া হবে আমাদের জন্য একটা ওভার পড়তা পরিমার্জন খ 'র: কোনো ওভার-দ্য পড়তা দেওয়া একটি জন্য একটি ' s এবং কোনো ওভার-দ্য পড়তা বি জন্য খ 'র যে এটা একটা নতুন ওভার উত্পাদন করা হবে -approximation বি * জন্য খ 's।bAaBbB∗b
সুতরাং, আমি আপনাকে কীভাবে পরিশোধন করতে বলি, তারপরে আমি এই সমস্যাটির জন্য একটি সম্পূর্ণ অ্যালগরিদম পেতে সমস্ত কিছু একসাথে রেখে দেব। এরপরে, ডি পার্থক্যগুলির একাধিক সেট বোঝাতে দিন , যেমন, ডি = { এ আই - বি জ : 1 ≤ i , জে ≤ 6 } ; আমরা একটি পরিশ্রুত ওভার পড়তা খোঁজার মনোনিবেশ করব একজন * দেওয়া একটি , বি ।DD={ai−bj:1≤i,j≤6}A∗A,B
কীভাবে একটি পরিশোধন গণনা করা যায়। একটি একক পার্থক্য বিবেচনা করুন ডি ∈ ডি । সেট বিবেচনা করুন ঘ + + বি = { ঘ + + Y : Y ∈ বি } । আমাদের জ্ঞান যে উপর ভিত্তি করে বি এর কোনো ওভার-দ্য পড়তা হয় খ 'র, আমরা জানি যে অন্তত একটি উপাদান ঘ + + বি এর একটি উপাদান হতে হবে { একটি 1 , ... , একটি 6 } । অতএব, আমরা d + B এর প্রতিটি উপাদানকে চিকিত্সা করতে পারিd∈Dd+B={d+y:y∈B}Bbd+B{a1,…,a6}d+Bএকটি একটি সংখ্যাকে জন্য "প্রস্তাবনা" হিসাবে সম্ভবত অন্তর্ভুক্ত একটি । সুতরাং, এর মিষ্টির উপর সব পার্থক্য দিন ঘ ∈ ডি এবং প্রতিটি জন্য, চিহ্নিত যা সংখ্যার দ্বারা "প্রস্তাব" হয় ঘ ।Ad∈Dd
এখন আমি পালন করা যে সংখ্যা যাচ্ছি একটি 1 এই প্রক্রিয়ার সময় অন্তত 6 বার প্রস্থাবিত করা নিশ্চিত। কেন? কারণ পার্থক্য একটি 1 - খ 1 হয় ডি , এবং যখন আমরা এটিকে প্রক্রিয়া, একটি 1 নম্বর এটা প্রস্তাব দেওয়া এক যেহেতু আমরা নিশ্চিত করছি হতে হবে (অর্থাৎ খ 1 ∈ বি , ( একটি 1 - খ 1 ) + + বি ইচ্ছা অবশ্যই একটি 1 ) অন্তর্ভুক্ত । একইভাবে, পার্থক্য a 1 - b 2 কোথাও উপস্থিত হয়a1a1−b1Da1b1∈B(a1−b1)+Ba1a1−b2ডি , এবং এটি কারণ করব একটি 1 পুনরায় প্রস্তাব করতে হবে। এই ভাবে, আমরা দেখতে যে সঠিক মান একটি 1 প্রস্থাবিত করা হবে না অন্তত 6 বার। একই হিসাবে একটি 2 , এবং একটি 3 , এবং আরওধরে রাখে।Da1a1a2a3
সুতরাং, দিন একটি * সংখ্যার সেট হতে একটি * যে অন্তত 6 বার প্রস্তাব করা হয়েছে। এই একজন ওভার পড়তা হবে নিশ্চিত একটি 'র, উপরোক্ত মন্তব্য।A∗a∗a
একটি অপ্টিমাইজেশান হিসাবে, আমরা সমস্ত পরামর্শ যে উপস্থিত না ফিল্টার করতে পারে একজন অবিলম্বে: অন্য কথায়, আমরা পার্থক্য চিকিৎসা করতে পারে ঘ মূল্যবোধের সব পরামর্শ হিসাবে ( ঘ + + বি ) ∩ একজন । এটি নিশ্চিত করে যে আমাদের A ∗ ⊆ A থাকবে । আশা করছি একজন * থেকে যথাযথভাবে ছোট একটি ; কোনও গ্যারান্টি নেই, তবে যদি সবকিছু ঠিকঠাক হয়, সম্ভবত এটি হবে।Ad(d+B)∩AA∗⊆AA∗A
একসঙ্গে এই স্থাপন আলগোরিদিম পরিমার্জন একটি , বি উত্পাদ একটি * হিসাবে অনুসরণ করে হয়:A,BA∗
যাক এস = ∪ ঘ ∈ ডি ( ঘ + + বি ) ∩ একজন । এটি পরামর্শের বহু সেট।S=∪d∈D(d+B)∩A
এস তে প্রতিটি মান কতবার উপস্থিত হয় তা গণনা করুন । যাক একজন * যে প্রদর্শিত অন্তত 6 বার মূল্যবোধের সেট হতে এস । (এই একটি অ্যারের নির্মাণের দ্বারা দক্ষতার সঙ্গে বাস্তবায়ন করা যাবে একটি প্রাথমিকভাবে সব শূন্য 251 এর প্রথমে, এবং প্রতিটি সময় সংখ্যা গুলি পরামর্শ দেওয়া হয়, আপনি বাড়ায় একটি [ গুলি ] ; শেষে আপনি মাধ্যমে কুড়ান একটি উপাদান যার মান 6 অথবা খুঁজছেন বৃহত্তর)SA∗Sasa[s]a
অনুরূপ একটি পদ্ধতি পরিমার্জন নির্মিত হতে পারে একটি , বি পেতে বি * । আপনি মূলত উপরের জিনিসগুলিকে বিপরীত করে কিছু লক্ষণ উল্টাতে পারেন: যেমন, ডি + বি এর পরিবর্তে আপনি দেখুন - ডি + এ ।A,BB∗d+B−d+A
প্রাথমিক ওভার-অ্যাক্সেসিমিয়েশন কীভাবে গণনা করা যায়। আমাদের প্রাথমিক অতিরিক্ত-অনুমানের পেতে, একটি ধারণা হ'ল (ওলগ) ধরে নেওয়া যায় যে খ 1 = 0 । এটা অনুসরণ করে যে প্রতিটি মান একটি আমি মধ্যে কোথাও প্রদর্শিত হতে হবে ডি এইভাবে পার্থক্যের তালিকা, ডি জন্য আমাদের প্রাথমিক ওভার পড়তা হিসাবে ব্যবহার করা যেতে পারে একটি 'র। দুর্ভাগ্যক্রমে, এটি আমাদের বি এর জন্য খুব কার্যকর ওভার সান্দ্রতা দেয় না ।b1=0aiDDab
আরও ভাল একটি পদ্ধতির অতিরিক্ত একটি এর এর মূল্য অনুমান করা হয় । অন্য কথায়, আমরা (wlog) যে অনুমান খ 1 = 0 , এবং ব্যবহার একটি = ডি এর আমাদের প্রাথমিক ওভার পড়তা হিসাবে একটি 'র। এর পরে, আমরা অনুমান যা এই 36 মান এক প্রকৃতপক্ষে এক একটি 'র বলে একটি 1 । যে তারপর আমাদের কোনো ওভার-দ্য পড়তা দেয় বি = একটি 1 - ডি জন্য খ 'এর। আমরা এই প্রাথমিক ওভার সান্দ্রতা এ , বি ব্যবহার করিab1=0A=Daaa1B=a1−DbA,B, তারপরে এটি পুনরায় সংশোধন পর্যন্ত সংশোধন করুন এবং ফলাফলটি সঠিক কিনা তা পরীক্ষা করুন। আমরা 36 বার পর্যন্ত পুনরাবৃত্তি 36 বিভিন্ন অনুমান সঙ্গে, একটি 1 (গড় 6 অনুমান যথেষ্ট হওয়া উচিত), যতক্ষণ না আমরা যে এক কাজ পাবেন।a1
একটি সম্পূর্ণ অ্যালগরিদম। এখন আমাদের কাছে একটি 1 , … , a 6 , খ 1 , … , বি 6 গণনা করার জন্য একটি সম্পূর্ণ অ্যালগরিদম থাকতে পারে । মূলত, আমরা A এবং B এর জন্য প্রাথমিক ওভার-সান্ধ্যভঙ্গীকরণ পাই , তারপরে পুনরাবৃত্তভাবে পরিমার্জন করি।a1,…,a6,b1,…,b6AB
একটি অনুমান করুন: প্রতিটি জন্য z- র ∈ ডি , অনুমান একটি 1 = z- র । নিম্নলিখিতগুলি করুন:z∈D
প্রাথমিক অতিরিক্ত-অনুমানের: A = D এবং B = z - D সংজ্ঞায়িত করুন ।
আইট্রেটিভ পরিশোধন: একত্রিত হওয়া পর্যন্ত বার বার নিম্নলিখিত প্রয়োগ করুন:
- পরিমার্জন একটি , বি একটি নতুন ওভার পড়তা পেতে বি * এর খ 'এর।
- পরিমার্জন একটি , বি * একটি নতুন ওভার পড়তা পেতে একটি * এর একটি 'র।
- Let A:=A∗ and B:=B∗.
Check for success: If the resulting sets A,B each have size 6, test whether they are a valid solution to the problem. If they are, stop. If not, continue with the loop over candidate values of z.
Analysis.
Will this work? Will it eventually converge on A={a1,…,a6} and B={b1,…,b6}, or will it get stuck without completely solving the problem? The best way to find out is probably to test it. However, for your parameters, yes, I expect it will be effective.
If we use method #1, as long as |A|,|B| are not too large, heuristically I expect the sizes of the sets to monotonically shrink. Consider deriving A∗ from A,B. Each difference d suggests |B| values; one of them correct, and the other |B|−1 can be treated (heuristically) as random numbers. If x is a number that does not appear among the a's, what is the probability that it survives the filtering and is added to A∗? Well, we expect a to be suggested about (|B|−1)×36/251 times in total (on average, with standard deviation about the square root of that). If |B|≤36, the probability that a wrong x survives the filtering should be about p=0.4 or so (using the normal approximation for the binomial, with continuity correction). (The probability is smaller if |B| is smaller; e.g., for |B|=30, I expect p≈0.25.) I expect the size of A∗ to be about p(|A|−6)+6, which will strictly improve the over-approximation since it is strictly smaller than |A|. For instance, if |A|=|B|=36, then based upon these heuristics I expect |A∗|≈18, which is a big improvement over |A|.
Therefore, I predict that the running time will be very fast. I expect about 3-5 iterations of refinement to be enough for convergence, typically, and about 6 guesses at z should probably be enough. Each refinement operation involves maybe a few thousand memory reads/writes, and we do that maybe 20-30 times. So, I expect this to be very fast, for the parameters you specified. However, the only way to find out for sure is to try it and see if it works well or not.