একটি মজাদার প্রকল্প হিসাবে, আমি রিচার্ড কর্ফের সি # বাস্তবায়নে কাজ করছি - প্যাটার্ন ডেটাবেসগুলি ব্যবহার করে রুবিকের কিউবে সর্বোত্তম সমাধান সন্ধান করা।
https://www.cs.princeton.edu/courses/archive/fall06/cos402/papers/korfrubik.pdf
আমার আসলে এটি কাজ করছে, আমি আমার সমাধানটি আরও উন্নত করার চেষ্টা করছি।
কর্ফ তার কাগজে এক নজরে চেয়েছিলেন যে সে কীভাবে প্যাটার্নের ডাটাবেসে সংরক্ষণ করে এবং সূচী করে। আদর্শভাবে, আমি মনে করি যে আমরা কোনও রুবিক ঘনক্ষেত্রের একটি উদাহরণটি অ্যারেতে সূচক তৈরি করতে চাই।
আমার প্রশ্নটি এই সূচকটি উত্পন্ন করার সর্বোত্তম উপায় সম্পর্কে।
আমার সমাধানটি হ'ল ন্যূনতম নিখুঁত হ্যাশ তৈরি করা। এর মধ্যে সমস্ত কিউবকে মেমোরিতে রাখা অবধি জড়িত থাকে যতক্ষণ না আমি পুরো প্যাটার্ন ডাটাবেসটি আবিষ্কার করেছি ততক্ষণে এটির তুলনায় একটি সর্বনিম্ন নিখুঁত হ্যাশ তৈরি করা। প্যাটার্ন ডাটাবেসের আকারের উপর নির্ভর করে এমপিএইচ চালাতে কয়েক ঘন্টা সময় লাগে, তবে ডিস্কে সংরক্ষণ করার পরে আমার কেবল এটি করা দরকার। শেষ পর্যন্ত, আমি কেবল এমপিএইচ সংরক্ষণ করে কিউবগুলি ফেলে দিতে পারি। এইভাবে আমি কোনও এলোমেলো রুবিকের কিউব নিতে পারি, প্যাটার্নটি প্রয়োগ করতে পারি, তারপরে একটি আনুমানিক সমাধানের দৈর্ঘ্য পেতে এমপিএজে অ্যারে সূচকটি সন্ধান করতে পারি।
আমি বিশ্বাস করি যে কর্ফ এবং শাল্টজ তাদের 2005 সালের কাগজে "বড় আকারের স্কোরের প্রস্থ-প্রথম অনুসন্ধান" নামক কিউবেজের সূচী নির্ধারণ করার আরও ভাল পদ্ধতির বর্ণনা দিয়েছেন believe
https://www.aaai.org/Papers/AAAI/2005/AAAI05-219.pdf
এই কাগজটি কোনও ক্রম ছাড়ার লিক্সোগ্রাফিক ক্রম অনুসারে একটি সূচক তৈরি করতে একটি অ্যালগরিদম বর্ণনা করে। মূলত আপনি ক্রমটিশনটি {1, 2, 3 take নিতে পারেন এবং এটি নির্ধারণ করুন যে এটি 0.9 {1, 3, 2 of এর সূচক সহ সবচেয়ে ছোট এবং পরবর্তী 1 এবং আরও সূচক সহ with
আমি অনুভব করি যে কোনও প্যাটার্ন ডাটাবেসের মধ্যে সূচকটি পাওয়ার জন্য আমার এই অ্যালগরিদমটি একটি রুবিকের কিউবে প্রয়োগ করতে সক্ষম হওয়া উচিত তবে এটি অনুশীলনে কীভাবে কাজ করবে তা নির্ধারণ করতে আমার খুব কষ্ট হচ্ছে having
উদাহরণস্বরূপ কোণগুলির কেবলমাত্র প্যাটার্ন ডাটাবেসে সমস্ত রুবিকের কিউব রয়েছে যা তাদের প্রান্তের স্টিকারগুলি বন্ধ করে দিয়েছে। এই সেটে ঠিক 88,179,840 কিউব রয়েছে। কোনও রুবিক কিউবে থাকা যে কোনও কোণার কিউবি 24 টি পৃথক রাজ্যের মধ্যে একটি হতে পারে। 8 ম কোণার কিউবিকের অবস্থা অন্যান্য 7 এর উপর ভিত্তি করে গণনা করা যেতে পারে সুতরাং কোণে কিউব কেবল প্যাটার্ন ডেটাবেসগুলির প্রতিটিতে 0 এবং 23 এর মধ্যে 7 টি মান রয়েছে
উদাহরণস্বরূপ {0, 3, 6, 9, 12, 15, 18, 21 "সলভড" কিউবটিকে সমস্ত প্রান্তের স্টিকারগুলি সরিয়ে দিয়ে সংজ্ঞায়িত করে।
যদি আমি সম্মুখ মুখটি 90 ডিগ্রি ঘোরান তবে অনুমানটি হতে পারে: {0, 3, 11, 23, 12, 15, 8, 20}
এই ধরণের অনুমতি ছাড়াই একটি সূচক পাওয়ার উপায় আছে?