প্রতিটি লোভী অ্যালগরিদমের ম্যাট্রয়েড কাঠামো আছে?


13

এটা ভাল স্থাপন করা হয় যে matroid যে M এবং কোন ওজন ফাংশন w , সেখানে প্রস্থান করে একটি আলগোরিদিম GreedyBasis(M,w) যা সর্বোচ্চ ওজন ভিত্তিতে ফেরৎ M । তাহলে, বিপরীত দিকটিও কি সত্য? এটি হ'ল যদি কিছু লোভী অ্যালগরিদম হয় তবে অবশ্যই কিছু ম্যাট্রয়েড কাঠামো থাকতে হবে।


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

ন্যূনতম সংখ্যক জোড়ায়িত-বিচ্ছিন্ন উপসাগরগুলিতে প্রকৃত অন্তরগুলির একটি সেট বিভাজনে একটি প্রাকৃতিক লোভী অ্যালগরিদম থাকে (প্রতিটি সময় সম্ভব হলে এটি একটি বিদ্যমান সাবসেটে যুক্ত করুন, অন্যথায় একটি নতুন উপসেট শুরু করুন; ক্লিনবার্গের অধ্যায় 4 দেখুন এবং দেখুন Tardos)। এই সমস্যাটি কী ম্যাট্রয়েড হিসাবে বোঝা যাবে?
নিল ইয়ং

উত্তর:


12

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

এর মধ্যে কিছুর জন্য একটি মানসিক মডেল হতে পারে ন্যূনতম বিস্তৃত গাছগুলি খুঁজে পাওয়া। কৃসকলের অ্যালগরিদম দ্বারা ব্যবহৃত কাঠামোটি একটি ম্যাট্রয়েড, তবে এটি প্রিমের অ্যালগরিদম দ্বারা ব্যবহৃত হয়েছে (যার জন্য একটি স্টার্ট নোড প্রয়োজন) এটি নয়। (এটি অবশ্য একটি লোভযুক্ত — এবং একটি ম্যাট্রয়েড এমবেডিং))

(S,C)SCS f:2SRS

লোভী অ্যালগরিদম, এই আনুষ্ঠানিকতার নিরিখে সংজ্ঞায়িত করা বেশ সহজ: আপনি খালি সেট দিয়ে শুরু করুন এবং আপনি কোনও ভিত্তিতে না পৌঁছা পর্যন্ত ধারাবাহিকভাবে একটি একক উপাদান যুক্ত করুন, সর্বদা নিশ্চিত করে যে (i) প্রতিটি ধাপে আপনার সেটটি সম্ভব হবে এবং ( ii) আপনি যে উপাদানটি যুক্ত করেছেন ফলাফল ফলাফলের উদ্দেশ্যমূলক কার্যকে সর্বাধিক করে তোলে t সমস্ত বিকল্প উপাদান আপনি যুক্ত করতে পারে। (এটি ধারণাগতভাবে, আপনি সমস্ত সম্ভাব্য বিকল্প যুক্ত করার চেষ্টা করুন এবং সর্বোচ্চ উদ্দেশ্য মান উপার্জনকারী একটি চয়ন করুন))

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

হেলম্যান এট আল। করণীয় তারা যখন বর্ণনা করে যে এই অ্যালগরিদম কখন কাজ করবে। আরো নির্দিষ্টভাবে:

  1. তারা দেখায় যে লিনিয়ার অবজেক্টিভ ফাংশনগুলির জন্য (যেখানে বস্তুর মান উপাদান ওজনের যোগফলের সমষ্টি), লোভী অ্যালগরিদম ম্যাট্রয়েড এম্বেডিং হিসাবে তাদের যে কাঠামোটি সংজ্ঞায়িত করে ঠিক তেমনভাবে কাজ করবে;

  2. তারা তথাকথিত বাধা বিঘ্নিত উদ্দেশ্যগুলির জন্য অনুরূপ বৈশিষ্ট্য দেয় (যেখানে কোনও সংখ্যার বস্তুর মান পৃথক উপাদান ওজনের চেয়ে সর্বনিম্নের সমান হয়); এবং

  3. ম্যাট্রয়েড এম্বেডিংগুলিতে লোভী অ্যালগরিদম দ্বারা কোন উদ্দেশ্যমূলক ক্রিয়াকলাপগুলি (লিনিয়ারগুলি বাদে) অনুকূলিত করা হয় তার একটি সঠিক বৈশিষ্ট্য তারা দেয় They


3
লোভী অ্যালগরিদমের তাদের সংজ্ঞা কী তা আপনি ব্যাখ্যা করতে পারেন?
কাভেঃ

1
তাদের আনুষ্ঠানিকতা কী তা বোঝাতে আমার উত্তরটি প্রসারিত করে।
ম্যাগনাস লাই হেটল্যান্ড

11

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

সেখানে একটি সাধারণীকরণ ছাড়া কিছুই না matroids নামক greedoid যা লোভী অ্যালগোরিদম কি আপনি তাকান করতে পারেন দ্বারা অনুপ্রাণিত হয়।


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

2

নিম্নলিখিত সমস্যাগুলি বিবেচনা করুন: কয়েন-চেইনিং ইউরো: 1,2,5,10 ইউরো নোটের সীমাহীন পরিমাণ দেওয়া, যতটা সম্ভব নোট ব্যবহার করে এক্স ইউরো প্রদান করুন। লোভী অ্যালগরিদম ব্যবহার করে এটি সমাধান করা যেতে পারে, এটি সম্ভবত বৃহত্তম নোট গ্রহণ করে। তবে এই সমস্যায় কোনও ম্যাট্রয়েড কাঠামো নেই।

হল কভারেজ: x_1, x_2, ..., x_n পজিশনে ছিদ্র রয়েছে। আপনার দৈর্ঘ্যের প্যাচ 10 সেমি। যতটা সম্ভব প্যাচ ব্যবহার করে গর্তগুলি প্যাচ করুন। আবার এটি লোভী ফ্যাশনে সমাধান করা যেতে পারে (কেবল প্যাচ যতটা সম্ভব ঠিক রাখুন), তবে কোনও ম্যাট্রয়েড কাঠামো নেই।


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

1
@ ব্যবহারকারী 3373748 আমি সাধারণত একটি গতিশীল প্রোগ্রাম সন্ধান করি। লোভী হতাশাব্যঞ্জিত ডিপি।

1
(পছন্দসই হতে হবে না, তবে কোনও 1- বা 2-ইউরোর নোট নেই; আপনি নিজের মানগুলির সেটটি 5 ডলার, 10, 20, 50, 100, 200} বা পুনর্নির্দেশ ;-) এ পরিবর্তন করতে পারেন)
অ্যান্টনি ল্যাবারে

নোট করুন যে বর্ণিত মুদ্রা পরিবর্তনকারী অ্যালগরিদম {1,2,5,10। এর জন্য কাজ করে তবে অন্যান্য মানগুলির জন্য অনুকূল ফলাফল গণনা করতে পারে না। উদাহরণ: {1,3,4 With সহ 6 এর অনুকূল সমাধানটি [3,3] হবে তবে অ্যালগরিদম ফিরে আসবে [4,1,1]।
সোসোইই

1
মুদ্রা পরিবর্তন সমস্যার জন্য একটি ম্যাট্রয়েড কাঠামো রয়েছে - gauss.ececs.uc.edu/Courses/C671/html/HomeML/hw5_sol.html
তুষন্ত মিত্তাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.