জিএসএটি অ্যালগরিদম বাস্তবায়ন - কোন আক্ষরিক উল্টাতে হবে তা কীভাবে নির্বাচন করবেন?


20

জিএসএটি অ্যালগরিদম হ'ল বেশিরভাগ অংশের জন্য, সরাসরি এগিয়ে: আপনি সূত্রটি সন্তুষ্ট করে এমন কোনও সমাধান না পাওয়া বা আপনি সর্বাধিক চেষ্টা / সর্বাধিক_ফ্ল্যাপস সীমাতে না পৌঁছা এবং সমাধান না পাওয়া পর্যন্ত আপনি সম্মিলিত স্বাভাবিক আকারে একটি সূত্র পান এবং ক্লজগুলির লিটারালগুলি সরিয়ে দিন।

আমি নিম্নলিখিত অ্যালগরিদম বাস্তবায়ন করছি:

procedure GSAT(A,Max_Tries,Max_Flips)
  A: is a CNF formula
  for i:=1 to Max_Tries do
    S <- instantiation of variables
    for j:=1 to Max_Iter do
      if A satisfiable by S then
        return S
      endif
      V <- the variable whose flip yield the most important raise in the number of satisfied clauses;
      S <- S with V flipped;
    endfor
  endfor
  return the best instantiation found
end GSAT

নিম্নলিখিত লাইনের ব্যাখ্যায় আমার সমস্যা হচ্ছে:

V <- the variable whose flip yield the most important raise in the number of satisfied clauses;

আমরা যা সন্ধান করছি তাতে কি সর্বাধিক সংখ্যক সন্তুষ্ট ধারা নেই? আমার কাছে মনে হচ্ছে সমাধানটি অনুসন্ধানের জন্য আমরা সমাধানটি বা এর কাছাকাছি ব্যবহার করার চেষ্টা করছি।

আমি এটি করার কিছু উপায়ের কথা ভেবেছি তবে অন্য দৃষ্টিকোণগুলি শুনে ভাল লাগবে (অনুমান করা হয় যে একবার পরিবর্তনশীলটি নির্বাচিত হওয়ার পরে এটি উল্টানো হয়)):

  • সমস্ত সম্ভাব্য ফ্লিপ সহ একটি রাষ্ট্রীয় স্থান তৈরি করুন এবং আক্ষরিকের জন্য স্থানটি অনুসন্ধান করুন যা ফলাফলের লক্ষ্যটির সাথে সর্বোত্তম সান্নিধ্য লাভ করে।
  • এলোমেলোভাবে চলকটি নির্বাচন করুন যা আমি প্রচলিত আক্ষরিক সাথে শুরু করে ফ্লিপ করব।
  • একটি এলোমেলো আক্ষরিক চয়ন করুন।

উত্তর:


12

আমরা যা সন্ধান করছি তাতে কি সর্বাধিক সংখ্যক সন্তুষ্ট ধারা নেই?

হ্যাঁ, আমরা এমন একটি অ্যাসাইনমেন্ট সন্ধান করছি যা সর্বাধিক সংখ্যক ক্লজকে সন্তুষ্ট করে (এটি সর্বোপরি সেগুলিই রয়েছে)। এবং এ লক্ষ্যে আমরা আমাদেরকে জিজ্ঞাসা করি "কোন একক ভেরিয়েবল এটিকে উল্টানোর সময় আমাদের এই লক্ষ্যের সবচেয়ে কাছাকাছি নিয়ে আসবে?" এবং তারপরে এটি ফ্লিপ করুন।

আমার কাছে মনে হচ্ছে সমাধানটি অনুসন্ধানের জন্য আমরা সমাধানটি বা এর কাছাকাছি ব্যবহার করার চেষ্টা করছি।

সমাধানটি ব্যবহার করা যদি আমরা জিজ্ঞাসা করি "একাধিক ফ্লিপের কোন সংমিশ্রণটি সেরা ফলাফল দেয়?" বা কেবল "কোন কাজটি সবচেয়ে ভাল হবে?" তবে আমরা যা করছি তা নয়, আমরা কেবল এক ধাপ এগিয়ে দেখছি। সমাধানের একটি আনুমানিক ব্যবহারটি একটি সঠিক বিবরণের মতো মনে হয়। তবে এতে কোনও ভুল নেই। লোভী কৌশলগুলি এভাবেই কাজ করে।

সমস্ত সম্ভাব্য ফ্লিপ সহ একটি রাষ্ট্রীয় স্থান তৈরি করুন এবং আক্ষরিকের জন্য স্থানটি অনুসন্ধান করুন যা ফলাফলের লক্ষ্যটির সাথে সর্বোত্তম সান্নিধ্য লাভ করে।

ঠিক।

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