শাখা এবং সীমানা ব্যাখ্যা


9

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

আমি যেমন কিছু উদাহরণ পাওয়া এই এক কিন্তু আমি এখনও এটি সম্পর্কে বিভ্রান্ত করছি। আমি ভ্রমণের বিক্রয়কর্মের সমস্যাও খুঁজছিলাম এবং আমি এটি বুঝতে পারি না।

আমার যা দরকার তা হ'ল কয়েকটি সমস্যা এবং শাখা এবং আবদ্ধ ব্যবহার করে কীভাবে এই সমস্যাগুলি সমাধান করা যায়।


1
কি বোঝা কঠিন ছিল? আপনি কি আগে ব্যাকট্র্যাকিংয়ের চেষ্টা করেছিলেন?

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

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

2
সাধারণত একটি নিম্ন সীমা পেতে সমস্যার একটি শিথিল সংস্করণ সমাধান করে। মিশ্র পূর্ণসংখ্যা প্রোগ্রামগুলির জন্য, এটি সাধারণত লিনিয়ার প্রোগ্রামিং শিথিলকরণ।
অপ্ট করুন

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

উত্তর:


10

আসুন শাখা এবং ন্যাপস্যাক থেকে বাউন্ড প্রয়োগ করি , আশা করি এটি আপনার কাছে ধারণাটি পরিষ্কার করে দেবে।

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

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

এই ব্যাকট্র্যাকিংটি শাখা এবং বাউন্ডের 'শাখা' অংশ। আপনি (ন্যাপস্যাকের ক্ষেত্রে) দুটি ক্ষেত্রে শাখা করেছেন: 'আইটেমআমি সমাধান 'এবং' আইটেমের অংশ আমিসমাধানের অংশ নয় '। আপনি এটি বাইনারি ট্রি হিসাবে কল্পনা করতে পারেন, যেখানে বাম শিশুটি একটি ক্ষেত্রে এবং ডান শিশুটি অন্য ক্ষেত্রে। এই গাছটি অনুসন্ধান গাছ (বা অনুসন্ধানের স্থান ): এর গভীরতাএন, এবং এটি তাই আছে হে(2এন)নোড। অ্যালগরিদম সুতরাং আইটেম সংখ্যায় একটি চলমান সময় সূচকযুক্ত।

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

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

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

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

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


4

সময়সূচী বিবেচনা করুন , মেশিনগুলিতে নির্দিষ্ট সময়সীমা এবং সময়সীমা সহ চাকুরী বরাদ্দের কাজ। আমরা আলাদা সময় ধরে নিই। এ জাতীয় অনেক সমস্যা হ'ল এনপি (ও) -হর্দা।

বিশেষত, এই উত্তরটি সম্পর্কে কথা বলবে 1|Rআমি|এলসর্বোচ্চ, যে আমরা সময়সূচী

  • একটি মেশিনে
  • মুক্তির তারিখগুলির সাথে সমস্যা এবং আমরা
  • সর্বোচ্চ বিলম্ব কমান এলসর্বোচ্চ, এটি হ'ল সময়সীমার এবং সমস্ত কাজের তুলনায় সমাপ্তির সময়ের মধ্যে সর্বাধিক পার্থক্য।

এই সমস্যার সিদ্ধান্ত সংস্করণটি এনপি-হার্ড; এটি 3 পার্টিশন থেকে হ্রাস দ্বারা দেখা যায় ।

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

এখন, এই সমস্যায় শাখা ও সীমানা প্রয়োগ করতে আমাদের কয়েকটি পরামিতি ঠিক করতে হবে:

  • আমরা প্রিম্পশনটি অনুমতি দিয়ে এবং ইডিডি ব্যবহার করে নিম্ন সীমাগুলি গণনা করি।
  • আমরা নির্ধারিত প্রতিটি চাকরির পরের হিসাবে স্থির করে শাখা করি।
  • আমরা প্রথমে ছোট ছোট বাউন্ডের সাথে সন্তানের কাছে যাই।

বি ও বি এর প্রতিটি প্রয়োগের জন্য আপনাকে এটি করতে হবে।


একটি দৃ concrete় উদাহরণের জন্য, এই উদাহরণটি বিবেচনা করুন 1|Rআমি|এলসর্বোচ্চ:

আমি1234পিআমি4265Rআমি0135আমি8121110

সঙ্গে পিআমি কাজের প্রক্রিয়াজাতকরণের সময়, Rআমি প্রকাশের তারিখ এবং আমি নির্ধারিত তারিখ

উপরে বর্ণিত বি ও বি কার্যকর করে, এটি ঘটে:

অ্যালগরিদম
এই জিআইএফ লুপ করে না। শুরু থেকে দেখতে এটি একটি নতুন ট্যাবে পুনরায় লোড করুন
[ উত্স ] [ স্থিত সংস্করণ ]

মনে রাখবেন যে ৪১ টি নোডের মধ্যে কেবল চারটি সঠিকভাবে পরিদর্শন করা হয়েছে এবং কেবল দশজনের জন্য নিম্ন সীমা গণনা করা হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.