স্যাট এবং অন্যান্য সিদ্ধান্ত সমস্যার জন্য কেন কোনও আনুমানিক অ্যালগরিদম নেই?


18

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

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

উদাহরণস্বরূপ, কেন আমরা অ্যালগরিদম যে ভুল করে তার সংখ্যার আনুপাতিক কিছু হিসাবে আনুমানিক অনুপাতটিকে সংজ্ঞায়িত করি না? লোভী ও উপ-অনুকূল পদ্ধতিতে আমরা কীভাবে সিদ্ধান্তের সমস্যার সমাধান করব?


5
MAX-SAT- এর জন্য আনুমানিক অ্যালগরিদম রয়েছে।
যুবাল ফিল্মাস

2
ম্যাক্স-স্যাট কোনও সিদ্ধান্তের সমস্যা নয়, না?
রিবজ

15
আনুমানিক অ্যালগরিদম সর্বদা অপ্টিমাইজেশান সমস্যার জন্য।
যুবাল ফিল্মাস

4
সুতরাং আপনি মূলত একটি অ্যালগরিদম থাকতে চান যা দ্রুত শেষ হয় তবে মাঝে মাঝে ভুল উত্তর দেওয়ার অনুমতি দেওয়া হয়। আমি মনে করি আপনি এখানে "আনুমানিক আলগোরিদম" এবং "অনুকূল" এর মতো সংজ্ঞাযুক্ত শর্তাদি ব্যবহার করে সমস্যাগুলিকে বিভ্রান্ত করছেন। এগুলির খুব নির্দিষ্ট অর্থ রয়েছে। আমি অনুমান করি যে পরিবর্তে আপনি একটি তাত্পর্যপূর্ণ সন্ধান করছেন - আপনি যদি এই শব্দটির সাথে আপনার প্রশ্নটি আপডেট করেন (বা আরও বিভ্রান্তি এড়াতে কোনও নতুন প্রশ্ন দিয়ে শুরু থেকে) তবে আপনার আরও ভাল ফলাফল হতে পারে।
AnoE

যদিও এটি একটি সম্পূর্ণ উত্তর নয়, এটি কারণটির একটি অংশ ব্যাখ্যা করেছে: এখানে গুরুত্বপূর্ণ স্যাট সমস্যা রয়েছে যার জন্য কেবলমাত্র কম বিট ভুল থাকা অর্ধ বিট ভুল হওয়ার চেয়ে ভাল নয়।
জোশুয়া

উত্তর:


33

আনুমানিক অ্যালগরিদমগুলি কেবলমাত্র অপটিমাইজেশন সমস্যার জন্য, সিদ্ধান্তগত সমস্যার জন্য নয়।

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

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

অন্যথা, আমরা সংজ্ঞায়িত করতে পারে , যা ভুল অ্যালগরিদম ভুলের ভগ্নাংশ হতে আকারের সমস্যা দৃষ্টান্ত উপর এন । তারপরে, আমরা r n এর সীমাটিকে n হিসাবে গণনা করতে পারি , যদি এই জাতীয় সীমা থাকে exists এই হবেrnnrnnভালভাবে সংজ্ঞায়িত (যদি সীমাটি বিদ্যমান থাকে) তবে বেশিরভাগ ক্ষেত্রে, এটি ভয়াবহভাবে কার্যকর নাও হতে পারে। বিশেষত, এটি স্পষ্টতই সমস্যার উদাহরণগুলিতে অভিন্ন বিতরণ গ্রহণ করে। যাইহোক, বাস্তব বিশ্বে সমস্যাগুলির উদাহরণগুলিতে প্রকৃত বিতরণ একরকম নাও হতে পারে - এটি প্রায়শই ইউনিফর্ম থেকে খুব দূরে থাকে। ফলস্বরূপ, আপনি যে নম্বরটি পেতে পারেন এটি প্রায়শই কার্যকর হিসাবে কার্যকর হিসাবে আপনি আশা করতে পারেন না: এটি প্রায়শই অ্যালগরিদম কতটা ভাল তা একটি বিভ্রান্তিকর ছাপ দেয়।

কীভাবে লোকেরা আন্তঃক্ষমতা (এনপি-কঠোরতা) মোকাবেলা করে সে সম্পর্কে আরও জানার জন্য, অক্ষমতার সাথে ডিল করার জন্য একবার নজর দিন : এনপি-সম্পূর্ণ সমস্যা


3
+1 টি। তবে শেষ পয়েন্টটি শক্ত নয়, একটি যুক্তি দিতে পারে যে আপনি আনুমানিক অনুপাতটিকে সীমাবদ্ধ করতে পারেন কারণ n দৈর্ঘ্যের এন স্ট্রিংয়ের সংখ্যার উপরে দৈর্ঘ্যের এন ইনপুটটিতে প্রোগ্রামের যে পরিমাণ ভুল করে তা অনন্তের দিকে চলে যায়। এটি অবশ্যই দরকারী না হিসাবে দেখা দেয়, প্রায়শই একটি সাধারণ প্রোগ্রাম যা কেবল "হ্যাঁ" (বা "কোনও" নয়) আউটপুট দেয় একটি ভাল অনুপাত অর্জন করে (কখনও কখনও এমনকি 1!)।
aelguindy

1
@ ডেট, এটি একটি পৃথক প্রশ্ন, একটি যা আপনার আলাদাভাবে জিজ্ঞাসা করা উচিত (স্ট্যান্ডার্ড পাঠ্যপুস্তকগুলি বা অনলাইন সংস্থাগুলিতে এটি পড়ার পরে)। আমরা পছন্দ করি আপনি প্রতি পোস্টে কেবল একটি প্রশ্ন জিজ্ঞাসা করুন।
DW

1
@ আলেগুইন্ডি, ভালো কথা। আমি আমার উত্তর অনুসারে আপডেট করেছি।
DW

2
@det লোভী কেন? কোনও সিদ্ধান্ত সমস্যার সমাধান "প্রায়" করার অর্থ কী?
রাফেল

2
@ মেহরদাদ: সাধারণত আপনি একটি নিকৃষ্টতম অ্যালগরিদমকে তার নিকৃষ্টতম ত্রুটির দ্বারা মূল্যায়ন করেন: এটি কখনই অপ-অনুকূল নয় তার উপরের একটি আবদ্ধ। সুতরাং, উদাহরণস্বরূপ, আপনি বলতে পারেন যে প্রদত্ত আনুমানিক অ্যালগরিদম সর্বদা একটি ফলাফল খুঁজে পায় যা সর্বনিম্ন ফলাফলের কমপক্ষে পাঁচ-ষষ্ঠ ভাগ হয়। সিদ্ধান্তের সমস্যার সাথে অনুবাদ করার কোনও সত্যিকারের উপায় নেই; যদি আপনার এলগরিদম কখনও কখনও নিঃসরণ করে (বলুন) 0.1, তারপর পারেন কখনও কখনও বন্ধ 0.9 দ্বারা (যে ক্ষেত্রে আপনি আরো ভালো করতে হবে, সবচেয়ে খারাপ ক্ষেত্রে, সবসময় নির্গত 0.5 করা), অথবা "আনুমানিক" -ness একটি শাম এবং "0.1 "আসলে কেবল" 0 "এর অর্থ means
রুখ

14

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

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

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

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


সুতরাং, যেমন আমি বুঝতে পেরেছি, কোনও সিদ্ধান্ত সমস্যার সমাধানের একমাত্র উপায় হ'ল অনুকূল অ্যালগরিদম ডিজাইন করা যা খুব অদক্ষ হতে পারে? কারণ আমার একটি সিদ্ধান্ত সমস্যা (এনপি-সম্পূর্ণ) রয়েছে এবং সমাধানের জন্য আমাকে লোভী (দ্রুত) অ্যালগরিদম নিয়ে আসতে বলা হয়েছিল। আমি কীভাবে এটি সমাধান করতে পারি? আপনি কি এমন কোনও কাগজ জানেন যা এই ধরণের সমস্যাগুলিকে কেন্দ্র করে?
রিবজ

1
@ ডেট পিছনে চাপুন এবং সমস্যাটি পুনরায় শুরু করুন। আপনি যদি একটি দ্বারা NP-সম্পূর্ণ সমস্যা থাকে, তাহলে আপনি বরং আটকে করছি, তার অত্যন্ত সম্ভবত আপনি না আসলে এক সমাধানের জন্য প্রয়োজন। উদাহরণস্বরূপ, আপনার সর্বদা নিখুঁত উত্তরের প্রয়োজন হয় না। সম্ভবত কাছাকাছি যথেষ্ট ভাল। অথবা আপনি সহজেই সহজ সমাধানের ক্ষেত্রে সাবসেটের জন্য সমস্যাটি সমাধান করতে পারেন এবং যেগুলি শক্ত are উদাহরণস্বরূপ, প্যাকিং অ্যালগোরিদমগুলি প্রায়শই এনপি-সম্পূর্ণ হয়, তবে সম্ভাব্যতাযুক্ত পদ্ধতির সাহায্যে সর্বোত্তমভাবে 5% এর মধ্যে পাওয়া অ্যালগরিদমগুলি সাধারণ।
কর্ট অ্যামোন - মনিকা

2
সমস্ত সততার সাথে, এনপি-সম্পূর্ণ প্রোগ্রামটি সমাধান করার জন্য একটি লোভী অ্যালগরিদম নিয়ে আসতে বলা আক্ষরিক অর্থে একইভাবে পুরো কম্পিউটার বিজ্ঞান / গাণিতিক সম্প্রদায়কে এককভাবে গ্রহণ করার দায়িত্ব দেওয়া হয়েছিল। আপনি যদি পি সময়ে এনপি-সম্পূর্ণ প্রোগ্রামের জন্য একটি অ্যালগরিদম খুঁজে পান তবে খুব কমপক্ষে আপনি পি = এনপি সমাধানের জন্য m 1 মিলিয়ন ডলার ক্লে পুরষ্কার অর্জন করতে পারেন। বাস্তবে, আপনার আবিষ্কারের প্রভাবগুলি আমাদের জানা হিসাবে কম্পিউটিংকে পুনরায় আকার দেবে এবং রাতারাতি পুরো সুরক্ষা / ক্রিপ্টোগ্রাফি শিল্পকে পুরোপুরি উত্থাপন করবে। কার্যকরভাবে এনপি-সম্পূর্ণ না হওয়ার জন্য টাস্কের শব্দটির সমন্বয় করা ভাল।
কর্ট অ্যামোন - মনিকা

আমি এনপি-সম্পূর্ণ সমস্যার জন্য একটি লোভী সঠিক অ্যালগরিদম ব্যবহার করেছি। আমার কেবল একটি ছোট কেস সমাধান করার দরকার ছিল এবং আমি সপ্তাহান্তে একটি 64-প্রসেসরের সার্ভার পেতে পারি।
প্যাট্রিসিয়া শানাহান

8

বিদ্যমান উত্তরগুলি ছাড়াও, আমি এটি উল্লেখ করতে পারি যে এমন পরিস্থিতি রয়েছে যেখানে কোনও সিদ্ধান্ত সমস্যার জন্য একটি আনুমানিক সমাধান পাওয়া যায় বলে বোধ করা হয়, তবে এটি আপনার ভাবার চেয়ে আলাদা কাজ করে।

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

অনস্বীকার্য সমস্যাগুলি মোকাবেলায় এটি বিশেষত শক্তিশালী: আপনি কোনও সরঞ্জাম লিখতে পারেন যা একটি নির্দিষ্ট কোডের জন্য থামানো সমস্যা সমাধান করার চেষ্টা করে। যদি এটি কোনও প্রমাণ খুঁজে পায় যে প্রোগ্রামটি নিরবচ্ছিন্নভাবে লুপ করবে না, তবে আপনি 100% নিশ্চিততার সাথে দাবি করতে পারেন। আপনি যদি এই জাতীয় প্রমাণ খুঁজে না পান তবে এটি কেবলমাত্র আপনার সরঞ্জাম বিশ্লেষণের জন্য প্রোগ্রাম নিয়ন্ত্রণ প্রবাহকে খুব সংশ্লেষিত মনে হতে পারে তবে এটি কোনও প্রমাণ নয় যে এটি চিরতরে লুপ হয়ে যাবে। নিয়ন্ত্রণ কাঠামো সরল করে আপনি সম্ভবত একটি সমতুল্য প্রোগ্রাম তৈরি করতে সক্ষম হবেন যা সরঞ্জামটির পক্ষে প্রমাণের জন্য যথেষ্ট সহজ যে এটি কিছুটা থামবে।


সম্ভাব্যতা (আপনার উত্তর) এবং আনুমানিক (প্রশ্ন) অ্যালগরিদমের মধ্যে একটি বড় পার্থক্য রয়েছে। বিশেষত, উভয়ের সংমিশ্রণ একটি খুব বিশেষ জাতের।
রাফায়েল

এছাড়াও, আমরা জানি যে এই প্রসঙ্গে শব্দটির যুক্তিসঙ্গত ব্যাখ্যা অনুমান করে থামানো সমস্যার সম্ভাব্য অ্যালগরিদম নেই exist
রাফায়েল

@ রাফেল আমি আমার উত্তরটি সম্ভাব্য আলগোরিদিমের সাথে সুনির্দিষ্ট হতে চাইনি। মঞ্জুর, মিলার-রবিনের ক্ষেত্রে এটি একই রকম, তবে আপনি যেমন নিজের উল্লেখ করেছেন, এখন থামানো সমস্যার উদাহরণের পক্ষে এটি আর সত্য নয় এবং আপনিও মনে করেন যে আপনি বেশিরভাগ ক্ষেত্রেই এই আচরণটি খুঁজে পান। আমি যে বিষয়টিটি দেখতে পেতে চাইছিলাম তা হ'ল আপনি কেবলমাত্র একটি ফলাফলের বিষয়ে নিশ্চিত হন তবে অন্য দিকে নয়।
কমিকসান্সএসএমএস

আপনি যদি এটির চেয়ে বেশি কিছু না বলছেন তবে কিছু সমস্যা কেবল আধা-গণনাযোগ্য, আমি মনে করি না আপনি প্রশ্নের উত্তর দিচ্ছেন।
রাফেল

@ রাফেল আমার উত্তরটিও আধা-গণনীয় সমস্যার ক্ষেত্রে নির্দিষ্ট নয়। আসলে, আমি মনে করি না আমি যে পদ্ধতিটি বর্ণনা করেছি সেটি এমনকি আধা-গণনীয় সমস্যার ক্ষেত্রে প্রযোজ্য। সেখানে এখন আপনি নিশ্চিত হয়ে যাবেন যে আপনি যদি ফাংশনটির অপরিজ্ঞাত শাখায় অবতরণ করেছেন তবে কোনও ফলাফল নেই বলে আপনি নিশ্চিতভাবে দাবি করতে পারেন। আমি যেটি বর্ণনা করেছি তা ফুটে উঠেছে: একটি উত্তর হতে পারে তবে অ্যালগরিদম এটির পক্ষে হোঁচট খাওয়ার পক্ষে যথেষ্ট শক্ত লাগছিল না।
কমিকসানসএমএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.