মিশ্র পূর্ণসংখ্যা প্রোগ্রামিং সমস্যাটি সমাধান করার জন্য দ্রুততম সফ্টওয়্যার (ওপেন সোর্স) কী


14

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


আপনি কি এসসিআইপি এর সাথে তুলনা দেখেছেন ?
আলী

উত্তর:


14

আপনি যদি কিছু ওপেন-সোর্স চান, তবে আপনি সম্ভবত COIN এর সিবিসি কোড ব্যবহার করতে চান (তাদের একটি শাখা-ও-দাম কাঠামো, বা সিম্ফোনির মতো আরও কয়েক মিলিয়ন সলভার রয়েছে)।

গুরোবি এবং সিপিএলএক্স যথেষ্ট দ্রুততর হবে এবং ২০১১ বা ২০১২ এর তথ্য সভার হিসাবে গুরুবি সিপিএলএক্সের চেয়ে দ্রুত ছিল (যদিও পারফরম্যান্স মেট্রিক অবশ্যই সমস্যা নির্ভর করে) dependent আমার থিসিসে সমাধান করা মিলস-এ, গুরুবি সিবিসি-র তুলনায় প্রায় 15-100 গুণ বেশি দ্রুত এবং সিপিএলএক্স গুরোবির চেয়ে প্রায় দ্রুত, তবে খুব সামান্য ধীর (12-80 গুণ বেশি দ্রুত)।

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

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


6

লিনিয়ার প্রোগ্রামিং সমস্যাগুলির তুলনায় মিশ্র পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিং সমস্যাগুলি সমাধান করা অনেক শক্ত hard গণনামূলক জটিলতার পরিপ্রেক্ষিতে, এলপিকে বহুবচনীয় সময়ে সমাধান করা যায় যখন মিলপকে এনপি-হার্ড সমস্যা সমাধান করা হয়। মিল্পের সমাধানের জন্য পরিচিত অ্যালগরিদমগুলির নিকৃষ্টতম জটিলতম জটিলতা রয়েছে।

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


4

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


জুএমপি কাঠামোটি কি অনেক বেশি ওভারহেড যুক্ত করে?
nnot101

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

টুইট
স্ক্যান

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

3

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

অবশ্যই, EASY একটি চেহারা মূল্য। ওপেন-সোর্স কাঠামো।

"দ্রুত" শব্দটি খুব অস্পষ্ট! আপনাকে আরো সুনির্দিষ্ট হতে হবে; পুনরাবৃত্তির সংখ্যা অনুসারে দ্রুত? মূল্যায়নের সংখ্যা? ব্যায়িত সময়? এর সমন্বয়?

তবে আপনি যদি কোনও সফ্টওয়্যার না খুঁজছেন এবং আপনি সমস্যাটি সমাধান করতে চান তবে আমি বিশ্বব্যাপী অপটিমাইজার এনএসজিএ -২ ব্যবহার করার পরামর্শ দিতে পারি, এটি খুব উচ্চ খ্যাতি এবং পারফরম্যান্সের একটি মুক্ত-উত্স অপটিমাইজার।

আপনি যদি আরও তথ্য সরবরাহ করেন তবে আমি সুনির্দিষ্টভাবে গাইড করতে পারি।


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