সুডোকুতে একটি কৃত্রিম বুদ্ধিমত্তা-ভিত্তিক সমাধান

সুডোকুতে একটি কৃত্রিম বুদ্ধিমত্তা-ভিত্তিক সমাধান

উত্স নোড: 3091242

29শে জানুয়ারী হল জাতীয় ধাঁধা দিবস, এবং উদযাপনে, আমরা একটি মজার ব্লগ তৈরি করেছি যেটিতে কৃত্রিম বুদ্ধিমত্তা (AI) ব্যবহার করে সুডোকু কীভাবে সমাধান করা যায় তার বিশদ বিবরণ রয়েছে৷

ভূমিকা

সামনে শব্দ, দ্য সুডোকু ধাঁধা রাগ ছিল এবং এটা এখনও খুব জনপ্রিয়. সাম্প্রতিক বছরগুলিতে, ব্যবহার অপ্টিমাইজেশান ধাঁধা সমাধানের পদ্ধতি একটি প্রভাবশালী থিম হয়েছে। দেখা "আরকিভাতে অপ্টিমাইজেশন ব্যবহার করে সুডোকু ধাঁধা সমাধান করা".

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

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

সুডোকুর বেসিক

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

টেবিল 1 একটি উদাহরণ সমস্যা আছে. মোট 9টি ঘরের জন্য 9টি সারি এবং 81টি কলাম রয়েছে। প্রতিটিতে 1 থেকে 9 এর মধ্যে নয়টি পূর্ণসংখ্যার মধ্যে একটি এবং শুধুমাত্র একটি থাকার অনুমতি রয়েছে। প্রারম্ভিক সমাধানে, একটি কক্ষের হয় একটি একক মান থাকে - যা এই কক্ষের মানটিকে সেই মানের সাথে ঠিক করে, অথবা ঘরটি ফাঁকা থাকে যা নির্দেশ করে যে আমাদের প্রয়োজন এই ঘরের জন্য একটি মান খুঁজে পেতে. সেল (1,1) এর মান 2 এবং সেল (6,5) এর মান 6। সেল (1,2) এবং সেল (2,3) ফাঁকা, এবং অ্যালগরিদম এই ঘরগুলির জন্য একটি মান খুঁজে পাবে।

জটিলতা

এক এবং শুধুমাত্র একটি সারি এবং কলামের অন্তর্গত ছাড়াও, একটি ঘর একটি এবং শুধুমাত্র 1 বাক্সের অন্তর্গত। এখানে 9টি বাক্স রয়েছে এবং সেগুলিকে সারণী 1-এ রঙ দ্বারা নির্দেশিত করা হয়েছে৷ সারণী 2 প্রতিটি বাক্স বা গ্রিড সনাক্ত করতে 1 এবং 9 এর মধ্যে একটি অনন্য পূর্ণসংখ্যা ব্যবহার করে৷ (1, 2 বা 3) সারির মান এবং (1, 2 বা 3) কলামের মান সহ ঘরগুলি বক্স 1 এর অন্তর্গত। বক্স 6 হল সারি মান (4, 5, 6) এবং কলামের মান (7, 8) , 9)। বক্স আইডি সূত্র BOX_ID = {3x(floor((ROW_ID-1) /3)} + সিলিং (COL_ID/3) দ্বারা নির্ধারিত হয়। ঘরের জন্য (5,7), 6 = 3x(floor(5-1) ))/3) + সিলিং (8/3) = 3×1 + 3 = 3+3।

ধাঁধা হৃদয়

প্রতিটি অজানা ঘরের জন্য 1 থেকে 9 এর মধ্যে একটি পূর্ণসংখ্যার মান খুঁজে বের করতে যেমন 1 থেকে 9 পূর্ণসংখ্যা প্রতিটি কলাম, প্রতিটি সারি এবং প্রতিটি বাক্সের জন্য একবার এবং শুধুমাত্র একবার ব্যবহার করা হয়।

আসুন সেল (1,3) দেখি যা ফাঁকা। সারি 1 এর ইতিমধ্যেই 2 এবং 7 মান রয়েছে৷ এই কক্ষে এগুলি অনুমোদিত নয়৷ কলাম 3 এর ইতিমধ্যেই 3, 5,6, 7,9 মান রয়েছে। এগুলো অনুমোদিত নয়। বক্স 1 (হলুদ) এর মান 2, 3 এবং 8 আছে। এগুলো অনুমোদিত নয়। নিম্নলিখিত মান অনুমোদিত নয় (2,7); (3, 5, 6, 7, 9); (2, 3, 8)। অনুমোদিত অনন্য মানগুলি হল (2, 3, 5, 6, 7, 8, 9)। শুধুমাত্র প্রার্থীর মান হল (1,4)।

একটি সমাধান পদ্ধতি হল অস্থায়ীভাবে সেল (1) এ 1,3 বরাদ্দ করা এবং তারপর অন্য ঘরের জন্য প্রার্থীর মান খুঁজে বের করার চেষ্টা করা।

একটি ব্যাকট্র্যাকিং সমাধান: প্রারম্ভিক উপাদান

অ্যারে স্ট্রাকচার

প্রারম্ভিক স্থান হল একটি অ্যারে কাঠামোর উপর সিদ্ধান্ত নেওয়ার জন্য সোর্স সমস্যা সঞ্চয় করা এবং অনুসন্ধানকে সমর্থন করা। টেবিল 3 এই অ্যারে গঠন আছে. কলাম 1 প্রতিটি কক্ষের জন্য একটি অনন্য পূর্ণসংখ্যা আইডি। মান 1 থেকে 81 পর্যন্ত। কলাম 2 হল ঘরের সারি ID। কলাম 3 হল ঘরের কলাম আইডি। কলাম 4 হল বক্স আইডি। কলাম 5 হল ঘরের মান। একটি মান ছাড়া একটি ঘর পর্যবেক্ষণ করুন ফাঁকা বা শূন্যের পরিবর্তে মান শূন্য দেওয়া হয়। এটি একটি "পূর্ণসংখ্যা শুধুমাত্র অ্যারে" রাখে - কর্মক্ষমতা জন্য অনেক উচ্চতর.

APL-এ, এই অ্যারেটি একটি 2-ডাইমেনশনাল অ্যারেতে সংরক্ষিত হবে যেখানে আকৃতিটি 81 বাই 5। ধরুন সারণি 3-এর উপাদানগুলি পরিবর্তনশীল MAT-তে সংরক্ষিত আছে। উদাহরণ ফাংশন হল:

MAT[1 2 3;] কমান্ডটি MAT-এর প্রথম 3টি সারি দখল করে
1 1 1 1 2
2 1 2 1 0
3 1 3 1 0
MAT[1 2 3; 4 5] সারি 1, 2, 3 এবং শুধুমাত্র কলাম 4 এবং 5 সুরক্ষিত করে
1
1
1
(MAT[;5]=0)/MAT[;1] একটি মান প্রয়োজন এমন সমস্ত কক্ষ খুঁজে পায়।

সারণী সন্নিবেশ করুন 3

স্যানিটি চেক: ডুপ্লিকেট

অনুসন্ধান শুরু করার আগে, স্যানিটী চেক করা গুরুত্বপূর্ণ! এটাই হল সম্ভাব্য সমাধান। সুডোকুর জন্য সম্ভাব্য, এখন কোন সারি, কলাম, বা বাক্সে সদৃশ আছে। বর্তমান প্রারম্ভিক সমাধান, উদাহরণস্বরূপ, 1 সম্ভাব্য। সারণি 4 এর একটি উদাহরণ রয়েছে যেখানে প্রারম্ভিক সমাধানটির সদৃশ রয়েছে। সারি 1 এর দুটি মান রয়েছে 2। এলাকা 1 এর দুটি মান রয়েছে 2। ফাংশন "SANITY_DUPE" এই যুক্তিটি পরিচালনা করে।

স্যানিটি চেক: মূল্যহীন কোষের জন্য বিকল্প

তথ্যের একটি খুব সহায়ক অংশ একটি মান ছাড়া একটি ঘর জন্য সম্ভাব্য মান সব হবে. যদি কোন প্রার্থী না থাকে, তাহলে এই ধাঁধাটি সমাধানযোগ্য নয়। একটি কক্ষ এমন একটি মান গ্রহণ করতে পারে না যা ইতিমধ্যে তার প্রতিবেশী দ্বারা দাবি করা হয়েছে৷ ঘরের জন্য টেবিল 1 ব্যবহার করা হচ্ছে (1,3,'1' - এই শেষ 1 হল বক্সাইড), এর প্রতিবেশী হল সারি 1, কলাম 3 এবং বক্স 1। সারি 1 এর মান রয়েছে (2,7); কলাম 3-এর মান রয়েছে (3,5,6,7,9); বক্স 1-এর মান রয়েছে (2,3,8)। সেল (1,3.1) নিম্নলিখিত মানগুলি (2,3,5,6,7,8,9) নিতে পারে না। ঘরের জন্য একমাত্র বিকল্প (1,3,1) হল (1,4)। সেল (4,1,2) এর জন্য মান 1, 2, 3, 5, 6, 7, 9 ইতিমধ্যেই সারি 4, কলাম 1, এবং/অথবা বক্স 4 তে ব্যবহার করা হয়েছে। শুধুমাত্র প্রার্থীর মানগুলি হল (4,8) . "SANITY_CAND" এই যুক্তিটি পরিচালনা করে।

সারণি 5 প্রার্থীদের দেখায়, উদাহরণস্বরূপ, অনুসন্ধান প্রক্রিয়ার শুরুতে 1। যদি একটি ঘর ইতিমধ্যেই প্রারম্ভিক অবস্থার (সারণী 1) একটি মান বরাদ্দ করা হয়, তাহলে এই মানটি পুনরাবৃত্তি করা হয় এবং লাল রঙে দেখানো হয়। যদি একটি কক্ষের একটি মান প্রয়োজন শুধুমাত্র একটি বিকল্প আছে, এটি সাদা দেখানো হয়. সেল (8,7,9) এর একক মান 7 সাদা। (2,5,8,4,3) প্রতিবেশী কলাম 7 দ্বারা দাবি করা হয়েছে। (1, 2, 9) সারি 8 দ্বারা। (3,2,6) বক্স 9 দ্বারা। শুধুমাত্র মান 7 দাবি করা হয়নি।

স্যানিটি চেক: দ্বন্দ্ব খুঁজছেন

যে সকল কক্ষের জন্য একটি মান প্রয়োজন (সারণী 4-এ পোস্ট করা হয়েছে) সেগুলির জন্য সমস্ত বিকল্প সনাক্তকারী তথ্য, অনুসন্ধান প্রক্রিয়া শুরু করার আগে একটি দ্বন্দ্ব সনাক্ত করতে আমাদের সক্ষম করে। একটি দ্বন্দ্ব ঘটে যখন দুটি কক্ষের যেগুলির একটি মান প্রয়োজন শুধুমাত্র একজন প্রার্থী থাকে, প্রার্থীর মান একই হয় এবং দুটি ঘর প্রতিবেশী হয়৷ সারণি 4 থেকে আমরা জানি যে একমাত্র সেলটির একটি মান প্রয়োজন এবং শুধুমাত্র একটি প্রার্থী আছে সেল (8,7,9)। উদাহরণস্বরূপ 1, কোন বিরোধ নেই।

দ্বন্দ্ব কি হবে? যদি ঘরের জন্য একমাত্র সম্ভাব্য মান (3,7,3) 7 হয় (1, 6, 7 এর পরিবর্তে), তাহলে একটি দ্বন্দ্ব আছে। সেল (8,7) এবং সেল (3,7) হল প্রতিবেশী - একই কলাম। যাইহোক, যদি ঘরের জন্য একমাত্র সম্ভাব্য মান (4,9,2) 7 হয় (1, 2, 7 এর পরিবর্তে) এটি একটি বিরোধ হবে না। এই কোষগুলি প্রতিবেশী নয়।

স্যানিটি চেক সারাংশ

  1. যদি ডুপ্লিকেট থাকে, তাহলে শুরুর সমাধান সম্ভব নয়।
  2. যদি একটি সেল যার একটি মান প্রয়োজন, তার কোনো প্রার্থী না থাকে, তাহলে এই ধাঁধার কোনো সম্ভাব্য সমাধান নেই। প্রতিটি কক্ষের জন্য প্রার্থীর মানগুলির তালিকাটি অনুসন্ধানের স্থান কমাতে ব্যবহার করা যেতে পারে - ব্যাকট্র্যাকিং এবং অপ্টিমাইজেশন উভয়ের জন্যই।
  3. দ্বন্দ্ব খুঁজে বের করার ক্ষমতা ধাঁধাটিকে চিহ্নিত করে তা সম্ভব নয় – এর কোন সমাধান নেই – অনুসন্ধান প্রক্রিয়া ছাড়া। উপরন্তু, এটি "সমস্যা কোষ" সনাক্ত করে।

একটি ব্যাকট্র্যাকিং সমাধান: অনুসন্ধান প্রক্রিয়া

মূল ডেটা স্ট্রাকচার এবং বিচক্ষণতা যাচাই করার সাথে, আমরা অনুসন্ধান প্রক্রিয়ার দিকে আমাদের মনোযোগ দিই। পুনরাবৃত্ত থিমটি আবার, অনুসন্ধান সমর্থন করার জন্য ডেটা স্ট্রাকচার তৈরি করা।

অনুসন্ধান ট্র্যাকিং

অ্যারে যে ব্যক্তি অনুসরণ করে করা অ্যাসাইনমেন্ট ট্র্যাক রাখে

  1. কর্নেল 1 হল কাউন্টার
  2. Col 2 হল এই ঘরে বরাদ্দ করার জন্য উপলব্ধ বিকল্পগুলির সংখ্যা
    • 1 মানে 1 বিকল্প উপলব্ধ, 2 মানে দুটি বিকল্প ইত্যাদি।
    • 0 মানে - কোন বিকল্প উপলব্ধ নেই বা 0 এ রিসেট করা (কোনও নির্ধারিত মান নেই) এবং ব্যাকট্র্যাকিং
  3. কল 3 হল একটি মান সূচক নম্বর (1 থেকে 81) বরাদ্দ করা সেল
  4. কল 4 হল ট্র্যাক ইতিহাসে কক্ষে নির্ধারিত মান
    • 9999 এর মান মানে এই সেলটি ছিল যখন ডেড এন্ড পাওয়া গিয়েছিল
    • 1 এবং 9 সমেত একটি পূর্ণসংখ্যার মান, অনুসন্ধান প্রক্রিয়ার এই সময়ে এই কক্ষের জন্য নির্ধারিত মান।
    • 0 এর মান মানে এই সেলের একটি অ্যাসাইনমেন্ট প্রয়োজন

ট্র্যাকার অ্যারে অনুসন্ধান প্রক্রিয়া সমর্থন করতে ব্যবহৃত হয়. অ্যারে ট্র্যাকহিস্ট ট্র্যাকারের মতো একই কাঠামো রয়েছে তবে সমগ্র অনুসন্ধান প্রক্রিয়ার ইতিহাস রাখে। সারণি 6-এ TRACKHIST-এর একটি অংশ রয়েছে, উদাহরণস্বরূপ 1। এটি পরবর্তী বিভাগে আরও বিশদে ব্যাখ্যা করা হয়েছে।

উপরন্তু, অ্যারে PAV (একটি ভেক্টরের একটি ভেক্টর), এই কক্ষে পূর্বে নির্ধারিত মানগুলির ট্র্যাক রাখে। এটি নিশ্চিত করে যে আমরা একটি ব্যর্থ সমাধানের পুনর্বিবেচনা করব না - যা TABU তে করা হয়।

একটি ঐচ্ছিক লগ প্রক্রিয়া আছে যেখানে অনুসন্ধান প্রক্রিয়া প্রতিটি ধাপ লেখে।

অনুসন্ধান শুরু হচ্ছে

বুককিপিং এবং স্যানিটি চেকিং সম্পন্ন হলে, আমরা এখন অনুসন্ধান প্রক্রিয়া শুরু করতে পারি। ধাপগুলো হল:

  1. কোন কোষ আছে যে একটি মান প্রয়োজন বাকি আছে? - যদি না হয়, তাহলে আমাদের কাজ শেষ।
  2. প্রতিটি কক্ষের জন্য যার একটি মান প্রয়োজন, প্রতিটি কক্ষের জন্য সমস্ত প্রার্থীর বিকল্পগুলি খুঁজুন৷ সারণি 4 সমাধান প্রক্রিয়ার শুরুতে এই মান আছে। প্রতিটি পুনরাবৃত্তিতে, এটি কোষগুলিতে নির্ধারিত মানগুলিকে মিটমাট করার জন্য আপডেট করা হয়।
  3. এই ক্রমে অপশন মূল্যায়ন.
    • যদি একটি ঘরে শূন্য বিকল্প থাকে, তাহলে ব্যাকট্র্যাকিং ইনস্টিটিউট করুন
    • একটি বিকল্প সহ সমস্ত ঘর খুঁজুন, এই ঘরগুলির মধ্যে একটি নির্বাচন করুন, এই অ্যাসাইনমেন্টটি করুন,
      1. এবং ট্র্যাকিং টেবিল, বর্তমান সমাধান এবং PAV আপডেট করুন।
    • যদি সমস্ত কক্ষে একাধিক বিকল্প থাকে, তাহলে একটি ঘর এবং একটি মান নির্বাচন করুন এবং আপডেট করুন
      1. এবং ট্র্যাকিং টেবিল, বর্তমান সমাধান এবং PAV আপডেট করুন

আমরা সারণী 6 ব্যবহার করব যা সমাধান প্রক্রিয়ার ইতিহাসের অংশ (যাকে ট্র্যাকহিস্ট বলা হয়) প্রতিটি ধাপকে চিত্রিত করতে।

প্রথম পুনরাবৃত্তিতে (CTR=1), সেল 70 (সারি 8, কল 7, বক্স 9) একটি মান নির্ধারণের জন্য নির্বাচন করা হয়েছে। সেখানে শুধু প্রার্থী (7), এবং এই মানটি সেল 70-এ বরাদ্দ করা হয়েছে। অতিরিক্তভাবে, 7 ঘরের জন্য পূর্বে নির্ধারিত মানের (PAV) ভেক্টরে মান 70 যোগ করা হয়েছে।

দ্বিতীয় পুনরাবৃত্তি কক্ষে 30 মান 1 নির্ধারণ করা হয়েছে। এই ঘরে দুটি প্রার্থীর মান ছিল। সবচেয়ে ছোট প্রার্থীর মানটি কক্ষে বরাদ্দ করা হয় (লজিক অনুসরণ করা সহজ করার জন্য শুধুমাত্র একটি নির্বিচারে নিয়ম)।

একটি কক্ষ সনাক্ত করার প্রক্রিয়া যার একটি মান প্রয়োজন এবং একটি মান নির্ধারণের প্রক্রিয়াটি পুনরাবৃত্তি (CTR) 20 না হওয়া পর্যন্ত সূক্ষ্ম কাজ করে৷ সেল 9-এর মান প্রয়োজন, কিন্তু প্রার্থীর সংখ্যা শূন্য৷ দুটি বিকল্প আছে:

  • এই ধাঁধার কোনো সমাধান নেই।
  • আমরা কিছু অ্যাসাইনমেন্ট পূর্বাবস্থায় (ব্যাকট্র্যাক) করি এবং অন্য পথ ধরি।

আমরা এটির নিকটতম সেল অ্যাসাইনমেন্টের সন্ধান করেছি, যেখানে একাধিক বিকল্প ছিল। এই উদাহরণে, এটি পুনরাবৃত্তি 18 এ ঘটেছে, যেখানে সেল 5-এর মান 3 নির্ধারণ করা হয়েছে, কিন্তু সেল 5-এর জন্য দুটি প্রার্থীর মান ছিল - মান 3 এবং 8৷

সেল 5 (CTR = 18) এবং সেল 9 (CTR = 20) এর মধ্যে, ঘর 8 এর মান 4 (CTR = 19) নির্ধারণ করা হয়েছে। আমরা ঘর 8 এবং 5 কে আবার "একটি মান প্রয়োজন" তালিকায় রাখি। এটি দ্বিতীয় এবং তৃতীয় CTR=20 এন্ট্রিতে ক্যাপচার করা হয়েছে, যেখানে মানটি 0 তে সেট করা হয়েছে। মান 3 সেল 5 এর জন্য PAV ভেক্টরে রাখা হয়েছে। অর্থাৎ সার্চ ইঞ্জিন 3 সেলকে 5 মান নির্ধারণ করতে পারে না।

সার্চ ইঞ্জিন আবার শুরু হয় সেল 5 এর জন্য একটি মান সনাক্ত করতে (3 এর সাথে আর কোন বিকল্প নেই) এবং 8 টি সেল 5 (CTR=21) কে বরাদ্দ করে। এটি চলতে থাকে যতক্ষণ না সমস্ত কক্ষের একটি মান থাকে বা সেখানে কোনো বিকল্প নেই এবং কোনো ব্যাকট্র্যাকিং পথ না থাকে। সমাধানটি সারণি 7 এ পোস্ট করা হয়েছে।

লক্ষ্য করুন, যেখানে একটি কক্ষের জন্য একাধিক প্রার্থী আছে, এটি সমান্তরাল প্রক্রিয়াকরণের একটি সুযোগ।

MILP অপ্টিমাইজেশান সমাধান সঙ্গে তুলনা

পৃষ্ঠ স্তরে, সুডোকু ধাঁধার উপস্থাপনা নাটকীয়ভাবে ভিন্ন। AI পদ্ধতিতে পূর্ণসংখ্যা ব্যবহার করা হয় এবং যে কোনো পরিমাপে এটি একটি শক্ত এবং আরও স্বজ্ঞাত উপস্থাপনা। উপরন্তু, স্যানিটি চেকার একটি শক্তিশালী সূত্র তৈরি করতে সহায়ক তথ্য প্রদান করে। MILP প্রতিনিধিত্ব অবিরাম বাইনারি (0/1)। যাইহোক, আধুনিক MILP সমাধানকারীদের শক্তির কারণে বাইনারিগুলি শক্তিশালী উপস্থাপনা।

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

সীমাবদ্ধতা প্রোগ্রামিং এবং সফ্টওয়্যার যেমন ব্যবহার সাম্প্রতিক বিস্ফোরণ স্থানীয় সমাধানকারী লিনিয়ার প্রোগ্রামিং এবং ন্যূনতম স্কোয়ারের মতো মূল অপ্টিমাইজেশান পদ্ধতির সাথে AI পদ্ধতি ব্যবহারের গুরুত্ব স্পষ্ট করেছে।

সময় স্ট্যাম্প:

থেকে আরো আরকিভা