ইন্টিরিয়র পয়েন্ট পদ্ধতি ব্যবহার করে লিনিয়ার প্রোগ্রামিংয়ের সঠিক কোণার সমাধান সন্ধান করা


11

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

ধরুন আমরা এর পরিবর্তে পলিটোপের একটি কোণ খুঁজে পেতে চাই। উদাহরণস্বরূপ, যদি আমরা এটিকে রৈখিক প্রোগ্রামিংয়ে হ্রাস করে সর্বাধিক মিল করতে চাই, তবে আমরা "মিলিতে কোনও ধরণের XY এর 0.34% এবং প্রান্তের AB এর 0.89% এবং ..." সমন্বিত একটি উত্তর পেতে চাই না। আমরা 0 এবং 1 এর সাথে একটি উত্তর পেতে চাই (যা সাধারণ কোণগুলি আমাদের দেয় যেহেতু সমস্ত কোণ 0 এবং 1 এর সমন্বিত থাকে)। কোনও অভ্যন্তরীণ বিন্দু পদ্ধতিতে এটি করার কোনও উপায় রয়েছে যা বহুমুখী সময়ে সঠিক কোণার সমাধানগুলি খুঁজে পাওয়ার নিশ্চয়তা দেয়? (উদাহরণস্বরূপ আমরা কোণগুলির পক্ষে সমর্থন করতে উদ্দেশ্য ফাংশনটি সংশোধন করতে পারি)


1
@ জেডি: আপনি কেন এই উত্তরটি দিচ্ছেন না?
রাফেল

উত্তর:


6

আপনি কাগজটি পড়তে চাইতে পারেন:

সঞ্জয় মেহরোত্রা, ইন্টিরির পয়েন্ট পদ্ধতিগুলি ব্যবহার করে একটি ভার্টেক্স সমাধান খুঁজতে গিয়ে লিনিয়ার বীজগণিত এবং এর অ্যাপ্লিকেশনগুলি, খণ্ড 152, 1 জুলাই 1991, পৃষ্ঠা 233-253, আইএসএসএন 0024-3795, 10.1016 / 0024-3795 (91) 90277-4 -4 বিজ্ঞানের ডিরেক্টরি নিবন্ধ লিঙ্ক


4

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


এটি ব্যবহারিক ব্যবহারের চেয়ে তাত্ত্বিক আগ্রহের চেয়ে বেশি ছিল। তবুও, অনেক সময় ইন্টিরির পয়েন্টের পদ্ধতিগুলি সিম্প্লেক্সের চেয়ে দ্রুততর হয়, তাই এটি যেখানে ব্যবহারিক সমস্যা সেখানে সমস্যা হতে পারে;)
জুলস

3

বিশদের অভাবে, এটি কেবল একটি দীর্ঘ মন্তব্য:

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


Kar আমি এটি কারমার্কারের মূল কাগজে প্রকাশ করতে পারি না । আমার রেফারেন্স হ্যামাচার এবং ক্লেমরোথের "লাইনারে অপটিমিরং অ্যান্ড নেটজওয়ারকপটিমিয়েরুং" (ইংরেজি: লিনিয়ার এবং নেটওয়ার্ক অপ্টিমাইজেশন) যার পাশে জার্মান এবং ইংরেজি পাঠ্য রয়েছে।


1

হ্যাঁ, একটি সহজ পদ্ধতি আছে এবং আমি সি ++ তে এটি প্রয়োগ করেছি ইন্টিরির পয়েন্ট পদ্ধতির গতি সিম্প্লেক্স পদ্ধতির যথার্থতার সাথে একত্রিত করতে (বেস ম্যাট্রিক্সের বিপরীতের পুনরাবৃত্ত সংশোধন ব্যবহার করে আমি 10 ^ 15 এ 1 অংশের যথার্থতা অর্জন করতে পারি) এবং 1000 এরও বেশি ভেরিয়েবল এবং সীমাবদ্ধতার সাথে ঘন সীমাবদ্ধ ম্যাট্রিকগুলিতে আরও ভাল)।

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

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

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