আমি এটিকে উপস্থাপন করতে চাই যে এই প্রশ্নটি একই রকম, তবে আমার প্রশ্নটি এলোমেলোভাবে জড়িত নয়, কেবল চিকিত্সা নির্ধারণবাদ, সুতরাং "একটি পরিচিত বীজ ব্যবহার করুন" এর উত্তরটি সত্যিই প্রয়োগ হয় না। তেমনি, এই প্রশ্নটি একই, তবে আবারও, আমি কখনই অ্যালগরিদমটি ব্যর্থ হওয়ার প্রত্যাশা করি না - আমি জানি না যে এটি কীভাবে সঠিক হবে।
গ্রাফ অ্যালগরিদমগুলি পরীক্ষা করার সময় এই প্রশ্নটি আসে। তবে এগুলি কোনওভাবেই সীমাবদ্ধ নয়। কিছু অ্যালগরিদম যেমন এ * এর একাধিক সঠিক উত্তর থাকতে পারে। আপনার সঠিক প্রয়োগের উপর নির্ভর করে আপনি বেশ কয়েকটি উত্তরের যে কোনও একটি পেতে পারেন, যার প্রতিটিই সমানভাবে সঠিক। এটি তাদের পরীক্ষা করা কঠিন করে তুলতে পারে, কারণ আপনি জানেন না যে এটি কোনটি সময়ের আগে ছড়িয়ে দিচ্ছে এবং হাতের উত্তরগুলি গণনা করা খুব সময়সাপেক্ষ।
আমার নির্দিষ্ট ক্ষেত্রে, আমি সম্ভাব্যতম সংক্ষিপ্ততম পথটি ছুঁড়ে ফেলার জন্য ফ্লয়েড-ওয়ারশালকে সংশোধন করে এটিকে ঘিরেছিলাম এবং সময়টি পরীক্ষার জন্য ব্যয় করেছি। এটির নিজস্ব উপায়ে একটি ভাল বৈশিষ্ট্য হওয়ার সুবিধা ছিল। তারপরে আমি এফডাব্লু থেকে জ্ঞাত সঠিক পাথগুলির ক্ষেত্রে অন্যান্য ফাংশনগুলি পরীক্ষা করতে পারি (যদি ফিরে আসা পথটি যদি সেই শুরু / শেষ জোড়াটির জন্য এফডাব্লু দ্বারা ফিরে আসা কোনও পাথ থাকে তবে এটি সঠিক)। অবশ্যই, এফডাব্লু কীভাবে কাজ করে তার কারণে এটি কেবল ঘন গ্রাফগুলির জন্য কাজ করে তবে এটি এখনও দুর্দান্ত।
তবে এটি এই বৈশিষ্ট্যযুক্ত সব অ্যালগরিদমের পক্ষে সর্বদা কার্যকর হতে পারে না। এখনও অবধি, আমি যে সেরা উত্তরটি নিয়ে এসেছি তা হ'ল সঠিক উত্তরের চেয়ে একটি সঠিক উত্তরের বৈশিষ্ট্য পরীক্ষা করা। সংক্ষিপ্ততম পথ অ্যালগরিদমগুলিতে ফিরে যেতে, আপনি জ্ঞাত সঠিক ব্যয়ের বিপরীতে ফিরে আসা পথের মূল্য পরীক্ষা করতে পারেন এবং নিশ্চিত করতে পারেন যে পথটি বৈধ কিনা।
এটি কাজ করে, তবে এটি যথাযথতার জন্য আরও মাপদণ্ডের সবকিছু যথাযথভাবে যাচাই না করার ঝুঁকি চালাতে পারে, বিশেষত যাচাইকরণটি নিজেই জটিল (যেমন সঠিক অ্যালগরিদমের উপস্থিতি থাকলে , একটি ন্যূনতম বিস্তৃত গাছ যাচাই করা একটি পরিচিত সমস্যা; সম্ভবত এটির চেয়ে শক্ত) এমএসটি নিজেই তৈরি করা), এক্ষেত্রে আপনাকে এখন আপনার টেস্টিং কোডটি ব্যাপকভাবে পরীক্ষা করতে হবে। আরও খারাপ: সম্ভবতঃ আপনাকে একটি এমএসটি যাচাইকরণ অ্যালগরিদম পরীক্ষা করার জন্য একটি এমএসটি নির্মাণ করতে হবে যাতে আপনার এখন দুর্দান্ত পরিস্থিতি রয়েছে যেখানে আপনার এমএসটি পরীক্ষাটি আপনার এমএসটি যাচাইকরণের অ্যালগরিদমকে কাজ করে এবং আপনার এমএসটি যাচাইকরণ অ্যালগরিদম পরীক্ষাটি আপনার এমএসটি জেনারেশন কোডের কাজের উপর নির্ভর করে।
অবশেষে, "সস্তা উপায়" রয়েছে যার মধ্যে আউটপুট পর্যবেক্ষণ করা, হাত দ্বারা তা যাচাই করা, তারপরে আপনার কেবলমাত্র যাচাই করা আউটপুট পরীক্ষা করার জন্য কঠোরভাবে পরীক্ষার কোডিং করা রয়েছে, তবে এটি দুর্দান্ত ধারণা নয় যেহেতু প্রতিবারই আপনাকে পরীক্ষাটি সংশোধন করতে হতে পারে বাস্তবায়নটি সামান্য পরিবর্তন করুন (যা এটি স্বয়ংক্রিয় পরীক্ষার এড়াতে হবে)।
স্পষ্টতই উত্তরটি আপনি কোনও ডিগ্রীতে পরীক্ষা করছেন ঠিক সেই অ্যালগরিদমের উপর নির্ভর করে, তবে আমি ভাবছিলাম যে বেশ কয়েকটি নির্দিষ্ট, নির্বাহী "সঠিক" আউটপুট রয়েছে এমন অ্যালগরিদমগুলি যাচাই করার জন্য কোনও "সেরা অনুশীলন" রয়েছে, তবে সেই সঠিক সঠিক ফলাফলগুলি কি কঠিন? সময়ের আগে জেনে থাকুন এবং সম্ভবত সত্যটি পরে যাচাই করাও শক্ত।