মিশ্র পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামগুলির কার্যকর সমাধান


12

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

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

আজ ব্যবহারে প্রাসঙ্গিক অ্যালগরিদমগুলি কী কী এবং কীভাবে এই বৈশিষ্ট্যগুলি এই অ্যালগোরিদমগুলিতে ম্যাপ করে?

পরীক্ষার জন্য আমার কোন সফ্টওয়্যার প্যাকেজগুলির সন্ধান করা উচিত?

উত্তর:


15

যদিও মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং (এমিলপি) প্রকৃতপক্ষে এনপি-সম্পূর্ণ, মিশ্র-পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিংয়ের সলভযোগ্য (ননট্রাইভাল) উদাহরণ রয়েছে।

এনপি-সম্পূর্ণ অর্থ হল মিশ্র পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিং হ'ল:

ক) ননডেটারিস্টেমিক ট্যুরিং মেশিনের (এনপি অংশ) মাধ্যমে বহুবর্ষীয় সময়ে সমাধানযোগ্য

খ) বহুপদী সময়টি 3-স্যাট (সম্পূর্ণ অংশ; অপেক্ষাকৃত বাকী আলোচনার জন্য, এই অংশটি আসলেই কিছু যায় আসে না)

O(2n)n

এই বিবৃতিটির অর্থ এই নয় যে "ছোট" দৃষ্টান্ত অক্ষম হয়। দুর্ভাগ্যক্রমে, আমি একটি মিল্প উদাহরণের জন্য ছোট অর্থ কী তার একটি সঠিক বিবৃতি দিতে পারি না। আমি নিয়মিত ভিত্তিতে 3,000 বা তার বেশি বাইনারি সিদ্ধান্তের ভেরিয়েবলগুলির সমস্যাগুলি সমাধান করি। সমস্যা গঠনের উপর নির্ভর করে, সমস্যাগুলি .01 সেকেন্ডের চেয়ে কম সময় নিতে পারে (যা তুলনামূলকভাবে সীমাবদ্ধ সমস্যার ক্ষেত্রে হয়) বা এক ঘণ্টারও বেশি সময় নিতে পারে (যা সমস্যা যেখানে অনেক সীমাবদ্ধতা সক্রিয় রয়েছে), কারণ সমস্যাগুলি মনে হয় অনুকূল কাঠামো আছে। আমি বলতে পারি যে শিল্পের রাষ্ট্র এলপি সমাধানকারীরা কয়েক মিলিয়ন ধারাবাহিক সিদ্ধান্তের পরিবর্তনগুলি সহ এলপিগুলিকে সমাধান করতে পারে এবং বিশেষ কাঠামো ছাড়াই এটি সম্ভবত প্রায় এক হাজার থেকে 10 এর মধ্যে কোনও সমস্যার উদাহরণ নয় that

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

আপনি যদি একাধিক সমাধানকারীদের চেষ্টা করার বিকল্পটি চান তবে আপনার সেরা বেটটি হ'ল COIN-OR থেকে ওপেন সলভার ইন্টারফেসটি ব্যবহার করা । আপনাকে পরামর্শ দিন যে এই ইন্টারফেসের অংশগুলি কেবলমাত্র আপনাকে মৌলিক সমাধানকারী বিকল্পগুলি সেট করতে দেয় এবং সলভারদের জন্য উন্নত বিকল্পগুলি সেট করতে আপনাকে আরও তথ্যের জন্য COIN-OR এর মেলিং তালিকাগুলির সাথে পরামর্শ করতে হবে । বাণিজ্যিক মিলপ সলভারগুলি ওপেন সোর্স সলভারগুলির চেয়ে অনেক বেশি (কখনও কখনও বিশালতার অর্ডার বা আরও বেশি)। প্রোটোটাইপিংয়ের আরেকটি বিকল্প হ'ল জিএএমএস বা এএমপিএলের মতো বীজগণিতীয় মডেলিং ভাষার ব্যবহার । উভয় সফ্টওয়্যার প্যাকেজ বাণিজ্যিক, কিন্তু পরীক্ষামূলক সংস্করণগুলি রয়েছে যা ছোট সমস্যার উদাহরণে ব্যবহার করা যেতে পারে। বড় সমস্যাগুলির উদাহরণগুলির জন্য, আপনি GAMS বা AMPL ফাইলগুলিতে জমা দিতে পারেন submitনিওএস সার্ভার সমাধান করা হবে; এই সার্ভারটি জনসাধারণের জন্য উপলব্ধ।

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

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

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

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


আপনি অনুকূল কাঠামো বাছাইয়ের উদাহরণগুলি কী কী? আমার প্রোগ্রাম সম্পর্কে আমার কিছু জিজ্ঞাসা করা উচিত?
এমরোকলিন

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

কিছু অন্যান্য কৌশল এবং ফাঁদ রয়েছে যা জিওফ উল্লেখ করেনি, তবে সঠিক সমস্যা বা শ্রেণি না দেখে কোনও নির্দিষ্ট পরামর্শ নিয়ে আসা কঠিন।
অ্যারন আহমদিয়া

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