একটি হিউরিস্টিক এবং একটি অ্যালগরিদমের মধ্যে পার্থক্য কী?
একটি হিউরিস্টিক এবং একটি অ্যালগরিদমের মধ্যে পার্থক্য কী?
উত্তর:
একটি অ্যালগরিদম হ'ল কোনও সমস্যার স্বয়ংক্রিয় সমাধানের বিবরণ । অ্যালগরিদম যা করে তা হুবহু সংজ্ঞায়িত করা হয়। সমাধানটি সর্বোত্তম সম্ভাব্য হতে পারে বা নাও হতে পারে তবে আপনি কী ধরণের ফলাফল পাবেন তা আপনি শুরু থেকেই জানেন। আপনি বাস্তবায়ন অ্যালগরিদম কিছু প্রোগ্রামিং ভাষা ব্যবহার করে একটি (একটি অংশ) পেতে প্রোগ্রাম ।
এখন, কিছু সমস্যা শক্ত এবং আপনি গ্রহণযোগ্য সময়ে কোনও গ্রহণযোগ্য সমাধান পেতে সক্ষম নাও হতে পারেন। এই ক্ষেত্রে আপনি প্রায়শই কিছু স্বেচ্ছাসেবী পছন্দ (শিক্ষিত অনুমান) প্রয়োগ করে খুব দ্রুত একটি খুব খারাপ সমাধান পেতে পারেন: এটি একটি হিউরিস্টিক ।
একটি হিউরিস্টিক এখনও এক ধরণের অ্যালগোরিদম তবে এটি যা সমস্যার সম্ভাব্য সকল রাজ্যগুলি আবিষ্কার করতে পারে না বা সর্বাধিক সম্ভাব্য অবস্থাগুলি অন্বেষণের মাধ্যমে শুরু করবে।
সাধারণ উদাহরণগুলি গেমগুলি থেকে। দাবা গেম প্রোগ্রাম লেখার সময় আপনি কিছু গভীরতার স্তরে প্রতিটি সম্ভাব্য পদক্ষেপের চেষ্টা করে এবং বোর্ডে কিছু মূল্যায়ন ফাংশন প্রয়োগ করার কল্পনা করতে পারেন। একটি হিউরিস্টিক পূর্ণ শাখা বাদ দেয় যা স্পষ্টত খারাপ পদক্ষেপের সাথে শুরু হয়।
কিছু ক্ষেত্রে আপনি সেরা সমাধানটি অনুসন্ধান করছেন না, তবে কোনও সীমাবদ্ধতার জন্য উপযুক্ত সমাধানের জন্য। একটি ভাল হিউরিস্টিক খুব অল্প সময়ের মধ্যেই সমাধান খুঁজে পেতে সহায়তা করবে, তবে কেবলমাত্র সেই সমাধানগুলিই রাষ্ট্রগুলি চেষ্টা না করার সিদ্ধান্ত নিয়েছে তবে তা খুঁজে পেতে ব্যর্থ হতে পারে।
অনেক সমস্যার জন্য যার জন্য অনুকূল সমাধান অনুসন্ধান করার জন্য কোনও দক্ষ অ্যালগরিদম জানা যায় না তাদের কাছে হিউরিস্টিক পন্থাগুলি রয়েছে যা খুব কাছাকাছি-অনুকূল ফলাফল দেয়।
কিছু ওভারল্যাপ রয়েছে: "জেনেটিক অ্যালগরিদম" একটি স্বীকৃত শব্দ, তবে কড়া কথায় বলতে গেলে সেগুলি হিউরিস্টিকস, অ্যালগোরিদম নয়।
হিউরিস্টিক, সংক্ষেপে একটি "শিক্ষিত অনুমান"। উইকিপিডিয়া এটি সুন্দরভাবে ব্যাখ্যা করে। শেষে, একটি "সাধারণ গ্রহণযোগ্যতা" পদ্ধতি নির্দিষ্ট সমস্যার অনুকূল সমাধান হিসাবে নেওয়া হয়।
হিউরিস্টিক অভিজ্ঞতা ভিত্তিক কৌশলগুলির একটি বিশেষণ যা সমস্যা সমাধান, শেখার এবং আবিষ্কারে সহায়তা করে। একটি সমাধানে দ্রুত আসতে একটি হিউরিস্টিক পদ্ধতি ব্যবহার করা হয় যা সর্বোত্তম সম্ভাব্য উত্তরের নিকটে বা 'অনুকূল সমাধানের' কাছে প্রত্যাশিত। হিউরিস্টিক্স হ'ল "থাম্বের নিয়ম", শিক্ষিত অনুমান, স্বজ্ঞাত রায় বা সহজ ধারণা একটি হিউরিস্টিক একটি সমস্যা সমাধানের একটি সাধারণ উপায়। বিশেষ্য হিসাবে হিউরিস্টিক্স হিউরিস্টিক পদ্ধতির অন্য নাম।
আরও সুনির্দিষ্ট শর্তে, হিউরিস্টিকস সহজেই অ্যাক্সেসযোগ্য, যদিও মানুষ এবং মেশিনে সমস্যা সমাধানের তথ্য নিয়ন্ত্রণ করার তথ্য ব্যবহার করে কৌশলগুলি ব্যবহার করে।
যদিও একটি অ্যালগরিদম হ'ল একটি সমস্যা যা সমস্যার সমাধানের জন্য ব্যবহৃত সীমাবদ্ধ নির্দেশাবলী অন্তর্ভুক্ত। সমস্যাটির জন্য কাজ করার জন্য পদ্ধতিটি গাণিতিক বা বৈজ্ঞানিকভাবে প্রমাণিত হয়েছে। আনুষ্ঠানিক পদ্ধতি এবং প্রমাণ আছে।
হিউরিস্টিক অ্যালগরিদম এমন একটি অ্যালগরিদম যা সাধারণ হিউরিস্টিকের ফ্যাশনে অনেকগুলি ব্যবহারিক পরিস্থিতিতে একটি সমস্যার একটি গ্রহণযোগ্য সমাধান তৈরি করতে সক্ষম হয়, তবে যার জন্য এর সঠিকতার কোনও আনুষ্ঠানিক প্রমাণ নেই।
একটি অ্যালগরিদম হ'ল একটি স্বয়ংসম্পূর্ণ পদক্ষেপ দ্বারা পরিচালিত ক্রিয়াকলাপ 4 যা করার জন্য সাধারণত (কম্পিউটার বা মানব) নির্দেশনার একটি সীমাবদ্ধ ক্রম হিসাবে ব্যাখ্যা করা হয় যেমন কোনও সমস্যার সমাধান নির্ধারণ করতে যেমন: A থেকে শুরু করে কোনও পথ আছে? বি, বা এ এবং বি এর মধ্যে সবচেয়ে ছোট পথটি কী? পরবর্তী ক্ষেত্রে আপনি 'যুক্তিসঙ্গতভাবে নিকটবর্তী' বিকল্প সমাধানে সন্তুষ্টও হতে পারেন।
অ্যালগরিদমগুলির কয়েকটি নির্দিষ্ট বিভাগ রয়েছে যার মধ্যে হিউরিস্টিক অ্যালগরিদম একটি। এই ক্ষেত্রে অ্যালগরিদমের (প্রমাণিত) বৈশিষ্ট্যগুলির উপর নির্ভর করে, এটি এই তিনটি বিভাগের মধ্যে পড়ে (নোট 1):
লক্ষ্য করুন যে একটি আনুমানিক অ্যালগরিদমও একটি হিউরিস্টিক, তবে দৃ stronger় সম্পত্তি সহ যে এটি সমাধানের (প্রমাণ) এটির ফলস্বরূপ একটি প্রমাণিত আবদ্ধ রয়েছে with
কিছু সমস্যার জন্য, অনুকূল সমাধানগুলি (নোট 2) গণনা করার জন্য নুন কখনও 'দক্ষ' অ্যালগরিদম খুঁজে পায়নি। সেই সমস্যাগুলির মধ্যে একটি হ'ল সুপরিচিত ট্র্যাভেলিং সেলসম্যান প্রবলেম। ট্র্যাভেলিং সেলসম্যান প্রবলেমের জন্য ক্রিস্টোফাইডসের অ্যালগরিদম, উদাহরণস্বরূপ, তাকে হিউরিস্টিক বলা হত , কারণ এটি প্রমাণিত হয় নি যে এটি সর্বোত্তম সমাধানের 50% এর মধ্যে ছিল। যেহেতু এটি প্রমাণিত হয়েছে, তবে ক্রিস্টোফাইডসের অ্যালগরিদমকে আরও সঠিকভাবে একটি আনুমানিক অ্যালগরিদম হিসাবে উল্লেখ করা হয়।
কম্পিউটারগুলি কী করতে পারে তার উপর বিধিনিষেধের কারণে, সর্বোত্তম সমাধানের পক্ষে দক্ষতার সাথে দক্ষতা খুঁজে পাওয়া সর্বদা সম্ভব নয় । যদি কোনও সমস্যায় পর্যাপ্ত কাঠামো থাকে তবে সমাধানের স্থানটি বিশাল (যদিও সংক্ষিপ্ততম পথের সমস্যার মধ্যে) সত্ত্বেও সমাধানের স্থানটি অতিক্রম করার পক্ষে একটি কার্যকর উপায় থাকতে পারে।
অনুসন্ধানের দিকনির্দেশকে গাইড করতে 'বিশেষজ্ঞের তথ্য' বা 'শিক্ষিত অনুমান' যুক্ত করে সাধারণত অ্যালগরিদমের চলমান সময়ের উন্নতি করতে হিউরিস্টিক্স প্রয়োগ করা হয়। অনুশীলনে, একজন হিউরিস্টিক সর্বোত্তম অ্যালগরিদমের জন্য একটি সাব-রুটিনও হতে পারে, প্রথমে কোথায় দেখতে হবে তা নির্ধারণ করতে ।
(নোট 1) : অতিরিক্তভাবে, অ্যালগরিদমগুলি এলোমেলো বা অ-নিরস্তক উপাদান অন্তর্ভুক্ত কিনা তা দ্বারা চিহ্নিত করা হয়। একটি অ্যালগরিদম যা সর্বদা একইভাবে কার্যকর করে এবং একই উত্তর সরবরাহ করে, তাকে ডিটারিস্ট্যান্টিক বলে।
(নোট 2) : একে পি বনাম এনপি সমস্যা বলা হয় এবং এনপি-সম্পূর্ণ এবং এনপি-হার্ড হিসাবে শ্রেণিবদ্ধ করা সমস্যাগুলির 'দক্ষ' অ্যালগরিদম হওয়ার সম্ভাবনা কম। বিঃদ্রঃ; @ ক্রিস মন্তব্যগুলিতে উল্লিখিত হিসাবে, আরও 'আরও খারাপ' ধরণের সমস্যা রয়েছে, যাদের গণনার জন্য ক্ষতিকারক সময় বা স্থান প্রয়োজন হতে পারে।
বেশ কয়েকটি উত্তর রয়েছে যা প্রশ্নের প্রশ্নের উত্তর দেয়। আমি এগুলিকে কম কম এবং যথেষ্ট নির্ভুল বলে মনে করেছি এবং @ ক্রিস দ্বারা গৃহীত উত্তরটি সম্পাদনা না করার সিদ্ধান্ত নিয়েছি
আসলে আমি মনে করি না যে তাদের মধ্যে অনেক মিল রয়েছে। কিছু অ্যালগরিদম তাদের যুক্তিতে হিউরিস্টিক্স ব্যবহার করে (প্রায়শই কম গণনা করতে বা দ্রুত ফলাফল পেতে)। সাধারণত হরিস্টিকস তথাকথিত লোভী অ্যালগরিদমে ব্যবহৃত হয়।
হিউরিস্টিক্স হল এমন কিছু "জ্ঞান" যা আমরা ধরে নিয়েছি আমাদের অ্যালগরিদমে সেরা পছন্দটি পেতে (যখন কোনও পছন্দ নেওয়া উচিত) এর জন্য ব্যবহার করা ভাল। উদাহরণস্বরূপ ... দাবাতে একটি হিউরিস্টিকস হতে পারে (আপনি যদি পারেন তবে সর্বদা প্রতিপক্ষের রানিকে গ্রহণ করুন, যেহেতু আপনি জানেন যে এটিই শক্তিশালী ব্যক্তিত্ব)। হিউরিস্টিকস আপনাকে গ্যারান্টি দেয় না যা আপনাকে সঠিক উত্তরের দিকে নিয়ে যাবে, তবে (যদি অনুমানগুলি সঠিক হয়) প্রায়শই উত্তর পাওয়া যায় যা খুব কম সময়ের মধ্যে সেরাের নিকটে থাকে।
হিউরিস্টিকস অ্যালগরিদম, সুতরাং সেই অর্থে কোনওটিই নেই, তবে 'সর্বাধিক সম্ভব' সমাধানের সন্ধানের পরিবর্তে 'হিউস্টিস্টিক্স' সমস্যা সমাধানের জন্য 'অনুমান' পদ্ধতিকে গ্রহণ করেন, একটি 'যথেষ্ট ভাল' উত্তর দেয়।
একটি দুর্দান্ত উদাহরণ হ'ল যেখানে আপনার খুব কঠিন (এনপি-সম্পূর্ণ পড়ুন) সমস্যা রয়েছে যার সমাধান আপনি চান তবে এর কাছে পৌঁছানোর মতো সময় নেই, সুতরাং একটি হিউরিস্টিক অ্যালগরিদমের উপর ভিত্তি করে একটি ভাল পর্যাপ্ত সমাধান ব্যবহার করতে হবে, যেমন জেনেটিক অ্যালগরিদম ব্যবহার করে ভ্রমণ ভ্রমণকারী সমস্যার সমাধান সন্ধান করা।
অ্যালগরিদম কিছু ক্রিয়াকলাপের ক্রম যা কোনও ইনপুটকে কোনও কিছুর (একটি ফাংশন) দেয় এবং ফলস্বরূপ ফলাফল দেয়।
অ্যালগরিদম একটি সঠিক বা আনুমানিক মান পেতে পারে।
এটি একটি এলোমেলো মানও গণনা করতে পারে যা সঠিক মানের কাছাকাছি উচ্চ সম্ভাবনার সাথে।
একটি হিউরিস্টিক অ্যালগরিদম ইনপুট মানগুলির জন্য কিছু অন্তর্দৃষ্টি ব্যবহার করে এবং সঠিক মান না করে গণনা করে (তবে অনুকূলের নিকটে হতে পারে)। কিছু বিশেষ ক্ষেত্রে হিউরিস্টিক সঠিক সমাধান খুঁজে পেতে পারেন।
একটি অ্যালগোরিদম কোনও সমস্যা সমাধানের জন্য একটি স্পষ্টভাবে নির্দেশিত নির্দেশাবলীর সেট, হিউরিস্টিক্স একটি সমাধানে পৌঁছানোর জন্য শেখার এবং আবিষ্কারের একটি পদ্ধতিকে কাজে লাগিয়ে জড়িত।
সুতরাং, যদি আপনি কীভাবে কোনও সমস্যার সমাধান করতে জানেন তবে একটি অ্যালগরিদম ব্যবহার করুন। আপনার যদি কোনও সমাধান বিকাশ করতে হয় তবে এটি হিউরিস্টিক্স।
একটি হিউরিস্টিক সাধারণত একটি অপ্টিমাইজেশন বা একটি কৌশল যা সাধারণত একটি ভাল যথেষ্ট উত্তর সরবরাহ করে তবে সর্বদা এবং খুব কমই সেরা উত্তর দেয় না। উদাহরণস্বরূপ, আপনি যদি ভ্রমণের বিক্রয়কর্মীর সমস্যাটিকে নিষ্ঠুরতার সাথে সমাধান করতে চান তবে একবারের আংশিক সমাধানটি ব্যয় হয়ে গেলে বর্তমান ব্যয়টি বর্তমানের সেরা সমাধানের চেয়ে বেশি হয়ে যায়: কখনও কখনও এটি সাহায্য করে, অন্য সময় এটি হয় না এবং এটি অবশ্যই করেন না ' টি অ্যালগরিদমের তাত্ত্বিক (বিগ-ওহ স্বরলিপি) রান সময়কে উন্নত করুন
আমি মনে করি কৃত্রিম বুদ্ধিমত্তায় লার্নিং বেসড মডেল ব্যবহারে হিউরিস্টিক আরও একটি প্রতিবন্ধকতা হওয়ায় ভবিষ্যতের সমাধানের রাজ্যগুলির পূর্বাভাস দেওয়া মুশকিল।
তবে তারপরে আমার উত্তরগুলি পড়ার পরে আমার সন্দেহ হ'ল "স্টোকাস্টিক অপটিমাইজেশন কৌশলগুলি ব্যবহার করে কীভাবে হিউরিস্টিক সফলভাবে প্রয়োগ করা যেতে পারে? বা স্টোকাস্টিক অপটিমাইজেশনের সাথে ব্যবহার করার সময় তারা সম্পূর্ণ আলগোরিদিম হিসাবে কাজ করতে পারে?"
আমি যে সেরা ব্যাখ্যাটি পড়েছি তার মধ্যে একটি দুর্দান্ত বই কোড কমপ্লিট থেকে এসেছে , যা আমি এখন উদ্ধৃত করছি:
হিউরিস্টিক এমন একটি কৌশল যা আপনাকে উত্তর খুঁজতে সাহায্য করে। এর ফলাফলগুলি সুযোগের সাপেক্ষে কারণ একটি হিউরিস্টিক আপনাকে কেবল কীভাবে দেখতে হবে তা জানায়, কী সন্ধান করতে হয় না। এটি আপনাকে কীভাবে বিন্দু A থেকে পয়েন্ট বিতে সরাসরি যাবেন তা বলে না; এটি এমনকি পয়েন্ট এ এবং বিন্দু বি কোথায় তা জানেন না। বাস্তবে, একটি হিউরিস্টিক হ'ল ক্লাউন স্যুটে একটি অ্যালগরিদম। এটি কম অনুমানযোগ্য, এটি আরও মজাদার এবং এটি 30 দিনের টাকা ফেরতের গ্যারান্টি ছাড়াই আসে।
কারও বাড়িতে গাড়ি চালানোর জন্য এখানে একটি অ্যালগরিদম রয়েছে: পুই-অলুপে 167 দক্ষিণে হাইওয়ে ধরুন। সাউথ হিল মল থেকে প্রস্থান করুন এবং পাহাড়ের উপরে 4.5 মাইল যান drive মুদি দোকান থেকে আলোর দিকে ডানদিকে ঘুরুন এবং তারপরে প্রথম বামে ধরুন। 714 উত্তর সিডারে বাম দিকে বড় ট্যান বাড়ির ড্রাইভওয়েতে ঘুরুন।
কারও বাড়িতে পৌঁছানোর জন্য এখানে একটি তাত্পর্যপূর্ণ: আমরা আপনাকে প্রেরিত শেষ চিঠিটি আবিষ্কার করুন। ফেরতের ঠিকানায় শহরে গাড়ি চালান। আপনি যখন শহরে পৌঁছবেন, কাউকে জিজ্ঞাসা করুন আমাদের বাড়ি কোথায়। প্রত্যেকেই আমাদের চেনে — কেউ আপনাকে সহায়তা করে খুশি হবে। আপনি যদি কাউকে না খুঁজে পান তবে একটি সর্বজনীন ফোন থেকে আমাদের কল করুন এবং আমরা আপনাকে এনে দেব।
একটি অ্যালগরিদম এবং একটি হিউরিস্টিকের মধ্যে পার্থক্যটি সূক্ষ্ম এবং দুটি পদ কিছুটা বেশি-কোলে। এই বইয়ের উদ্দেশ্যগুলির জন্য, দুটির মধ্যে প্রধান পার্থক্য হ'ল সমাধান থেকে দিকনির্দেশনার স্তর। একটি অ্যালগরিদম আপনাকে সরাসরি নির্দেশ দেয়। একজন হিউরিস্টিক আপনাকে নিজের জন্য নির্দেশাবলী কীভাবে আবিষ্কার করবেন বা কমপক্ষে কোথায় সেগুলি সন্ধান করবেন তা আপনাকে জানায়।
তারা খুঁজে পাওয়া সমাধানের গুণমান সম্পর্কে কোনও গ্যারান্টি ছাড়াই suboptimally একটি সমাধান খুঁজে পান, এটি স্পষ্টতই যে এটি হিউরিস্টিক্সের বিকাশকে কেবল বহুপদী বলেই বোঝায়। এই পদ্ধতির প্রয়োগটি বাস্তব জগতের সমস্যা বা বৃহত সমস্যাগুলি এতটাই জটিল হিসাবে গণ্য দৃষ্টিকোণ থেকে সমাধানের জন্য উপযুক্ত যে তাদের জন্য বহু-কালীন সময়ে একটি আনুমানিক সমাধান আবিষ্কার করতে সক্ষম একটি অ্যালগরিদমও নেই।