পাইথনের জন্য কি কোনও উচ্চমানের ননলাইনার প্রোগ্রামিং সলভার রয়েছে?


77

সমাধান করার জন্য আমার কাছে বেশ কয়েকটি চ্যালেঞ্জিং অ-উত্তেজক গ্লোবাল অপ্টিমাইজেশান সমস্যা রয়েছে। বর্তমানে আমি ম্যাটল্যাবের অপটিমাইজেশন টুলবক্সfmincon()'sqp' ব্যবহার করছি (বিশেষত, অ্যালগরিদম = সহ ), যা বেশ কার্যকর । তবে আমার বেশিরভাগ কোডটি পাইথনে রয়েছে এবং আমি পাইথনেও অপ্টিমাইজেশন করতে পছন্দ করি। পাইথন বাইন্ডিংগুলির সাথে প্রতিযোগিতা করতে পারে এমন কোনও এনএলপি সলভার রয়েছে fmincon()? এটা অবশ্যই

  • অলৈখিক সাম্য এবং অসমতার সীমাবদ্ধতাগুলি পরিচালনা করতে সক্ষম হোন
  • ব্যবহারকারীকে জ্যাকবিয়ান সরবরাহ করার প্রয়োজন নেই।

এটি বৈশ্বিক অনুকূলের গ্যারান্টি না দিলে ঠিক আছে ( fmincon()না)। আমি এমন কিছু সন্ধান করছি যা চ্যালেঞ্জিং সমস্যার জন্য এমনকি স্থানীয় তুলনায় শক্তিশালী রূপান্তরিত করে এমনকি এটির চেয়ে কিছুটা ধীর গতির হলেও fmincon()

আমি ওপেনঅ্যাপের মাধ্যমে উপলব্ধ বেশ কয়েকটি সলভার চেষ্টা করেছি এবং সেগুলি ম্যাটল্যাবের চেয়ে নিকৃষ্ট বলে খুঁজে পেয়েছি fmincon/sqp

কেবল জোর দেওয়ার জন্য আমার কাছে ইতিমধ্যে একটি ট্র্যাকটেবল ফর্মুলেশন এবং একটি ভাল দ্রাবক রয়েছে। আমার লক্ষ্যটি কেবলমাত্র আরও প্রবাহিত কর্মপ্রবাহের জন্য ভাষা পরিবর্তন করা।

জিওফ উল্লেখ করেছেন যে সমস্যার কিছু বৈশিষ্ট্য প্রাসঙ্গিক হতে পারে। তারা হ'ল:

  • 10-400 সিদ্ধান্ত ভেরিয়েবল
  • 4-100 বহুবর্ষীয় সমতার সীমাবদ্ধতা (বহুবর্ষের ডিগ্রি 1 থেকে 8 এর মধ্যে থাকে)
  • অনেকগুলি যুক্তিযুক্ত বৈষম্য সিদ্ধান্ত ভেরিয়েবলের সংখ্যার দ্বিগুণ সমান
  • উদ্দেশ্য ফাংশন সিদ্ধান্ত ভেরিয়েবল এক

সাম্য সীমাবদ্ধতার জ্যাকবিয়ান যেমন ঘন, তেমনি অসমতার সীমাবদ্ধতার জ্যাকবিয়ানও।


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

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

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

Coopr asl ব্যবহার করে ipopt কে বাধ্যতামূলক সরবরাহ করে: আইপপট
denfromufa

উত্তর:


32

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

সাধারণ ননলাইনার অপ্টিমাইজেশনের জন্য আমি যে প্যাকেজটি অবগত তা হ'ল আইপিওপিটি [1]। স্পষ্টতই ম্যাথু জু আইপিওপিটি-তে পাইথন বাইন্ডিংয়ের একটি সেট বজায় রাখে , তাই এটি আর কোথাও শুরু হতে পারে।

[1]: আন্দ্রেস ওয়াচটার ব্যক্তিগত বন্ধু, তাই আমি কিছুটা পক্ষপাতদুষ্টও হতে পারি।


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

ভালো বল ধরা. আমার মানে পূর্বের; আমি প্রশ্ন আপডেট করেছি।
ডেভিড কেচসন

Finally finally.openopt.org ব্যবহার করে অবশেষে আমি আমার সমস্যায় আইপোপটি প্রয়োগ করতে সক্ষম হয়েছি । এটা দুর্দান্ত!
ডেভিড কেচসন

4
টুডে (2017) আপনার কাছে পাইথন নালা মধ্যে IPOPT ব্যবহার করতে পারেন Pyomo । আপনি জ্যাকোবিয়ান এবং হেসিয়ানদের জন্য একটি বীজগণিতের মডেলিংয়ের ভাষা এবং অটো ডিফার পাবেন।
এন্টোনেলো

@Antonello সংশোধন লিঙ্ক pyomo.org
Moonwalker

37

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

যদি আপনি আপনার সমস্যাটিকে একটি সুস্পষ্ট সমীকরণের সিস্টেম হিসাবে তৈরি করতে পারেন এবং একটি নিখরচায়কের প্রয়োজন হয় তবে অরন যেমন বলেছিলেন, আপনার সেরা বেটটি সম্ভবত আইপোপটি। অন্যান্য ফ্রি সলভারগুলি COIN-OR ওয়েব সাইটে পাওয়া যাবে। আমার জানা মতে, অ-লাইনার সলভারগুলির বিকাশকারীদের দ্বারা পাইথন বাইন্ডিং সরবরাহ করা হয় না; আপনি যে কোনও বাঁধাই খুঁজে পান তা তৃতীয় পক্ষ হতে পারে। ভাল সমাধানগুলি পেতে, আপনাকে উপযুক্ত স্টোকাস্টিক গ্লোবাল অপটিমাইজেশন হিউরিস্টিক্সে, বা শাখা-ও-আবদ্ধের মতো একটি নির্বিচারবাদী গ্লোবাল অপ্টিমাইজেশন অ্যালগরিদমে খুঁজে পাওয়া কোনও ননলাইনার, উত্তল সল্ভারও মুড়ে ফেলতে হবে। অন্যথা, আপনি Bonmin বা Couenne, এই দুই ধরনের নির্ণায়ক অ উত্তল অপ্টিমাইজেশান solvers সঞ্চালন যে serviceably ভাল রাষ্ট্রীয় অত্যাধুনিক সমাধানকারী, এর তুলনায় ব্যবহার করতে পারে ব্যারন

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

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

আপডেট: এক এই ভেবে যে প্রথমে আমার ঘটেছে নি ছিল যে এছাড়াও উন্নত অপ্টিমাইজেশান (জন্য টুলকিট পেরেছিলাম টিএও ) এবং PETSc ব্যবহার tao4py এবং petsc4py PETSc সঙ্গে, যা সহজ parallelization সম্ভাব্য যোগ সুবিধা হবে, এবং ওঠানামা পরিচিত এবং ACTS সরঞ্জামগুলি।

আপডেট # 2: আপনার উল্লিখিত অতিরিক্ত তথ্যের উপর ভিত্তি করে সিক্যুয়ালিয়াল কোয়াড্র্যাটিক প্রোগ্রামিং (এসকিউপি) পদ্ধতিগুলি আপনার সেরা বাজি হতে চলেছে। এসকিউপি পদ্ধতিগুলি সাধারণত অভ্যন্তরীণ পয়েন্ট পদ্ধতির তুলনায় আরও শক্তিশালী হিসাবে বিবেচিত হয় তবে ঘন লিনিয়ার দ্রাবকগুলির প্রয়োজনীয়তার একটি কমতি রয়েছে। যেহেতু আপনি গতির চেয়ে দৃust়তার বিষয়ে বেশি যত্নশীল তাই এসকিউপি আপনার সেরা বাজি হতে চলেছে। পাইথনে লিখিত কোনও ভাল এসকিউপি সলভার খুঁজে পাচ্ছি না (এবং স্পষ্টতই, এই প্রযুক্তিগত প্রতিবেদনে আরগন-এ সুইভেন লেফারও পারেনি )। আমি অনুমান করছি যে সায়পি ও ওপেনঅ্যাপের মতো প্যাকেজগুলিতে প্রয়োগ করা অ্যালগরিদমগুলিতে কিছু এসকিউপি অ্যালগরিদমের বাস্তব কঙ্কাল রয়েছে, তবে অভিযোজিত সমস্যাগুলি কাটিয়ে উঠতে আরও উন্নত কোড ব্যবহার করে এমন বিশেষায়িত হিউরিস্টিক্স ছাড়া। আপনি NLopt চেষ্টা করতে পারেন, এমআইটিতে স্টিভেন জনসন লিখেছেন। আমার এটি নিয়ে উচ্চ প্রত্যাশা নেই কারণ আমার পরিচিতিটির কোনও খ্যাতি নেই, তবে স্টিভেন জনসন একজন উজ্জ্বল লোক যিনি ভাল সফ্টওয়্যার লেখেন (সর্বোপরি তিনি এফএফটিডব্লু সহ-লেখেন)। এটি এসকিউপি-র একটি সংস্করণ বাস্তবায়ন করে; যদি এটি ভাল সফ্টওয়্যার, আমাকে জানাবেন।

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

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

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

আইপিপটি-তে গ্যামস পাইথন বাইন্ডিংস এবং পাইথন ইন্টারফেস বাদ দিয়ে উত্তরটি নেই, পাইথনের জন্য এখনও কোনও উচ্চ মানের ননলাইনার প্রোগ্রামিং সলভার নেই। হতে পারে @ ডোমিনিক এনএলপাই দিয়ে এটি পরিবর্তন করবে।

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


অনুগ্রহ করে নোট করুন প্যাগএমও জিপিএল লাইসেন্সযুক্ত
ড্যানফ্রুমুফা

14

এপিএম পাইথন

আপডেট: আমরা সবেমাত্র প্রকাশিত নতুন GEKKO প্যাকেজটি দেখুন

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

 pip install APMonitor

এটি পাইথন স্ক্রিপ্টের সাথে এটিও ইনস্টল করা যেতে পারে:

try:
    from APMonitor.apm import *
except:
    # Automatically install APMonitor
    import pip
    pip.main(['install','APMonitor'])
    from APMonitor.apm import *

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

পাইথন / এমএটিএলবিতে একটি ব্রাউজার ইন্টারফেস এবং একটি এপিআই রয়েছে। পাইথনের এপিআই হ'ল একক লিপি (apm.py) যা apmonitor.com হোমপেজ থেকে ডাউনলোডের জন্য উপলব্ধ। একবার স্ক্রিপ্টটি পাইথন কোডে লোড হয়ে গেলে এটি এর সমস্যাগুলি সমাধান করার ক্ষমতা দেয়:

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

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

নীচে একটি অপ্টিমাইজেশান সমস্যার উদাহরণ রয়েছে (hs71.apm)।

Model
  Variables
    x[1] = 1, >=1, <=5
    x[2] = 5, >=1, <=5
    x[3] = 5, >=1, <=5
    x[4] = 1, >=1, <=5
  End Variables

  Equations
    x[1] * x[2] * x[3] * x[4] > 25
    x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 = 40

    minimize  x[1] * x[4] * (x[1]+x[2]+x[3]) + x[3]
  End Equations
End Model

অপ্টিমাইজেশান সমস্যাটি নিম্নলিখিত পাইথন স্ক্রিপ্টের সাহায্যে সমাধান করা হয়েছে:

from APMonitor.apm import *
server = 'http://byu.apmonitor.com'

# Application name
app = 'eqn'

# Clear previous application
apm(server,app,'clear all')

# Load model file
apm_load(server,app,'hs71.apm')

# Option to select solver (1=APOPT, 2=BPOPT, 3=IPOPT)
apm_option(server,app,'nlc.solver',3)

# Solve on APM server
solver_output = apm(server,app,'solve')

# Display solver output
print(solver_output)

# Retrieve results
results = apm_sol(server,app)

# Display results
print('--- Results of the Optimization Problem ---')
print(results)

# Display Results in Web Viewer 
url = apm_var(server,app)
print("Opened Web Viewer: " + url)

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


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

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

@ জোহানহেডেনগ্রেন আমার নিজের অপটিমাইজেশন সমস্যাটি তৈরির জন্য অন্য লাইব্রেরি ব্যবহার করে ম্যাটল্যাবে কিছু পূর্বনির্দিষ্টতা রয়েছে, বিশেষত, এই সীমাবদ্ধতাগুলি এই বাহ্যিক কলগুলিকে জড়িত। আপনি কি মনে করেন এপিএম এখনও এই উদ্দেশ্যে উপযুক্ত?
gpavanb

আমি মনে করি এটির সাধারণ শব্দটি হ'ল ব্ল্যাকবক্স অপটিমাইজেশন।
gpavanb

@gpavanb APMonitor প্যাকেজের জন্য মডেলিং ভাষায় সমীকরণ রচনা করা দরকার। বাহ্যিক কোড লোড করার একটি বিকল্প হ'ল একটি অবজেক্ট তৈরি করা যা অবশিষ্টাংশ এবং কমপক্ষে বিশ্লেষণী প্রথম ডেরাইভেটিভস সরবরাহ করে। আমরা সাধারণত এই তালিকাগুলিকে গতির জন্য F90 এ কোড করি : apmonitor.com/wiki/index.php/Main/Objects আমি মনে করি না ব্ল্যাকবক্স অপ্টিমাইজেশন সহ অ্যাপ্লিকেশনটি সেরা বিকল্প AP
জন হেডেনগ্রেন

7

যদিও এটি আপনার প্রশ্নের পুরোপুরি উত্তর দেয় না, আমি এনএলপি নামের ননলাইনার প্রোগ্রামিংয়ের জন্য পাইথন প্যাকেজটি লেখি। সবচেয়ে সাম্প্রতিক সংস্করণটি https://github.com/dpo/nlpy থেকে পুনরুদ্ধার করা যেতে পারে

আমার অবশ্যই জোর দেওয়া উচিত যে এনএলপাই গবেষণা-গ্রেড এবং অন্তর্ভুক্ত সমাধানকারীরা কোনওভাবেই আইপিওপিটি-র মতো আরও পাকা কোডের মতো শক্তিশালী নয়। তদতিরিক্ত, তাদের বর্তমানে জ্যাকবীয়দের সরবরাহ করা প্রয়োজন। বলা হচ্ছে, এনএলপাইয়ের বিষয়টি হ'ল গবেষকদের প্রয়োজনমতো কাস্টম সলভারকে একত্রিত করার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করা। যাইহোক, আমি আপনার মন্তব্যগুলি অফলাইনে শুনতে আগ্রহী। আপনি সম্পর্কিত প্যাকেজগুলি https://github.com/dpo/pykrylov এবং https://github.com/dpo/pyorder দরকারীও পেতে পারেন । বর্তমানে, এনএলপাইয়ের ডকুমেন্টেশনের অবশ্যই অভাব রয়েছে। অন্য দুটি যুক্তিসঙ্গত হওয়া উচিত।


7

পাইথো পাইথনটি অপ্টিমাইজেশনের জন্য একটি সম্পূর্ণ গ্যাম / এএমপিএলের মতো মডেলিং পরিবেশ environment এটি অত্যন্ত শক্তিশালী, এএমপিএল দ্বারা সমর্থিত সমস্ত সলভারের সাথে ইন্টারফেস রয়েছে এবং স্বয়ংক্রিয়ভাবে জ্যাকবিয়ান ইত্যাদি তৈরি করে। তবে এটি 'ভার্চুয়াল অজগর পরিবেশে' চলার কারণে এটি বিদ্যমান কোডের সাথে লিঙ্ক করা তুচ্ছ হতে পারে না।


5

GEKKO পাইথন

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

pip install gekko

হক Schittkowski সমস্যা # 71 একটি উদ্দেশ্য ফাংশন, বৈষম্য বাধ্যতা, সমতা বাধ্যতা, এবং উচ্চ এবং নিম্ন সীমা সঙ্গে চার ভেরিয়েবল একটি উদাহরণ হিসাবে নিম্নে দেখানো হল।

from gekko import GEKKO
m = GEKKO() # Initialize gekko
# Initialize variables
x1 = m.Var(value=1,lb=1,ub=5)
x2 = m.Var(value=5,lb=1,ub=5)
x3 = m.Var(value=5,lb=1,ub=5)
x4 = m.Var(value=1,lb=1,ub=5)
# Equations
m.Equation(x1*x2*x3*x4>=25)
m.Equation(x1**2+x2**2+x3**2+x4**2==40)
m.Obj(x1*x4*(x1+x2+x3)+x3) # Objective
m.options.IMODE = 3 # Steady state optimization
m.solve() # Solve
print('Results')
print('x1: ' + str(x1.value))
print('x2: ' + str(x2.value))
print('x3: ' + str(x3.value))
print('x4: ' + str(x4.value))    

GEKKO সমস্ত প্ল্যাটফর্মগুলিতে (উইন্ডোজ, ম্যাকস, লিনাক্স, এআরএম প্রসেসর) এবং পাইথন 2.7 এবং 3+ এর সাথে কাজ করে। "দূরবর্তী = মিথ্যা" বিকল্পটি সেট করে একটি সম্পূর্ণ ইন্টারনেট বিকল্প ইন্টারনেট সংযোগ ছাড়াই উপলব্ধ। স্থানীয় বিকল্পটি বর্তমানে কেবল উইন্ডোজের জন্য উপলব্ধ এবং আমরা ইন্টারনেট সংযোগ ছাড়াই স্থানীয়ভাবে চালানোর জন্য লিনাক্স, ম্যাকোস, এআরএম প্রসেসরের মতো অন্যান্য সংস্করণে কাজ করছি। স্থানীয় সংস্করণে কেবল ফ্রি সলভার অন্তর্ভুক্ত থাকে যা লাইসেন্সের প্রয়োজন হয় না। ডিফল্টরূপে, সমস্যাটি একটি সর্বজনীন সার্ভারে পাঠানো হয় যেখানে সমাধানটি গণনা করা হয় এবং পাইথনে ফিরে আসে।

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

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


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

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

4

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

1
আপডেট: আমি সায়পাই থেকে সরাসরি এটি চেষ্টা করেছি। এটি এমনকি এমন সমস্যাগুলির ক্ষেত্রেও ব্যর্থ হয় যেখানে ফিমিনকন ধারাবাহিকভাবে কয়েক সেকেন্ডের মধ্যে বৈশ্বিক সর্বোত্তম খুঁজে পেতে সক্ষম হয়।
ডেভিড কেচসন

4

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

বোনাস হিসাবে, সল্ভারটির সমান্তরাল ব্যবহারটি আর্কিপ্লেগো ক্লাসের মাধ্যমে সত্যই সহজ (মাল্টিস্টার্ট) করা হয়!


3

আছে cvxmod , স্টিফেন বয়েড এর উত্তল অপ্টিমাইজেশান সফ্টওয়্যার কাছাকাছি একটি পাইথন মোড়কের। এটি সেজ প্যাকেজের অংশ ।


তবে ওপি একটি উত্তোলন অপ্টিমাইজেশান সমস্যা সম্পর্কে জিজ্ঞাসা করছে।
আলেজান্দ্রো

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

জিওফ, আমি কীভাবে নন-উত্তল সমস্যায় সিভিএক্সএমড প্রয়োগ করতে পারি?
ডেভিড কেচসন

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

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

3

ফিনকন এখন পাইথন থেকে ওপেনপট কাঠামোর মাধ্যমে ব্যবহার করা যেতে পারে, বিকল্পভাবে ঘন / বিচ্ছিন্নভাবে স্বয়ংক্রিয় পার্থক্য সহ ফানক ডিজাইনার http://openopt.org/fmincon


এটি আর উপস্থিত নেই বলে মনে হয়।
ফুটওয়েট

3






রিলিজ 2014 বি হিসাবে, এটি এখন সরাসরি মতলব দ্বারা সমর্থিত; দেখতে mathworks.de/help/matlab/matlab-engine-for-python.html
খ্রিস্টান Clason

@ ক্রিশ্চিয়ান ক্ল্যাসন, এমন কি মনে হচ্ছে না যে আদৌ মাতালব আদৌ করতে হবে না? অজগর-মতলব-ব্রিজ যেমন করে। (যদিও আমি এটি ব্যবহার করি নি))
ড্যানিস

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

3

বেসিন কি আপনার প্রয়োজনের জন্য স্কিপি দিয়ে হপিং যথেষ্ট? যদি এটি একটি স্থানীয় মিনিট দেয় এবং বিশ্বব্যাপী মিনিট না করে, আপনি পুনরাবৃত্তির সংখ্যা পরিবর্তন করতে পারেন এবং / অথবা সীমা প্রয়োগ করতে পারেন।


2

সিএমএ-ইএস সম্পর্কে কীভাবে? এটিতে পাইথন বাইন্ডিং রয়েছে এবং এটি ননকোনভেক্স, ননলাইনার অপ্টিমাইজেশান সমস্যাগুলির সাথে বেশ উপযুক্ত এবং আমি এটি কিছুটা ব্যবহার করেছি: https://www.lri.fr/~hansen/cmaesintro.html

পাইপের মাধ্যমে ইনস্টলেশন:

pip install cma

তাদের ওয়েবসাইট থেকে কিছু নমুনা কোড এখানে দেওয়া হয়েছে:

import cma
help(cma)  # "this" help message, use cma? in ipython
help(cma.fmin)
help(cma.CMAEvolutionStrategy)
help(cma.CMAOptions)
cma.CMAOptions('tol')  # display 'tolerance' termination options
cma.CMAOptions('verb') # display verbosity options
res = cma.fmin(cma.Fcts.tablet, 15 * [1], 1)
res[0]  # best evaluated solution
res[5]  # mean solution, presumably better with noise

এই অপ্টিমাইজারটি ওপি যা চায় তা থেকে অনেক দূরে। উদাহরণস্বরূপ, সিএমএ-ইএস সহ সাম্যতা বা বৈষম্যের সীমাবদ্ধতাগুলি কীভাবে পরিচালনা করা যায় তার কোনও সুস্পষ্ট উপায় নেই।
Ares

1

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

বাণিজ্যিক এনএলপি সমাধানকারীদের মধ্যে আইআইআরসি, কেবল স্ন্যাপট এখন অবধি পাইথন এপিআই সরবরাহ করেছে (যদিও এটি বরং কুৎসিত)।

আপনি কোন ওপেনআপ্ট সলভার চেষ্টা করেছেন? আপনার ননকনভেক্স কার্যে আপনার কতগুলি পরিবর্তনশীল এবং প্রতিবন্ধকতা রয়েছে?

আপনি ওপেনঅ্যাপ সেজ সার্ভারে ইনস্টলেশন ছাড়াই ওপেনঅ্যাপ / ফানকডিজাইনার এপিআইয়ের মাধ্যমে আইপিওপিটি চেষ্টা করতে পারেন (" sষি থেকে পাইথনটিতে স্যুইচ করুন" ছবিতে মনোযোগ দিন)।

10300(x0.1)2+10300(y0.2)2(x,y)=(1,1)


2
আপনি যদি মনোযোগ সহকারে পড়েন তবে আমি ঠিক ফিমনকোনকে অনুরূপ দৃmin়তার সাথে কিছু চাইছি। এটি আরও ভাল হওয়ার দরকার নেই এবং এটি আরও ধীর হতে পারে।
ডেভিড কেচসন

1

বিশ্বব্যাপী সমস্যার জন্য আপনি স্থানীয় অপ্টিমাইজেশনের জন্য http://openopt.org/interalg এবং অন্যান্য ওপেনপট গ্লোবাল সলভার (http://openopt.org/GLP) এ আগ্রহী হতে পারেন বিভিন্ন ধরণের সলভার প্রদান করে: http://openopt.org / NLP


হ্যাঁ, আমি সেগুলির মধ্যে কয়েকটি চেষ্টা করেছিলাম, তবে কোনওটিই ফিনম্যাকন পর্যন্ত মাপেনি।
ডেভিড কেচসন

1

এখানে উল্লেখ করা ভাল যে গুগল সেরেস সলভার আসলে একটি খুব শক্তিশালী নন-লিনিয়ার অপটিমাইজার, অনেক প্রকল্পে ব্যবহৃত হয়।

এখানে পাইথন মোড়ক পাওয়া যায়: https://github.com/rll/cyres


এটা কি লেভেনবেগ-মার্কোয়ার্ড নয়? যা, যখন সুন্দর পর্যন্ত কি ওপি চায় থেকে
ডেনিস

সেরেস সত্যই ভাল সমাধানকারী হলেও এটি সাম্যের সীমাবদ্ধতা মোটেই সমর্থন করে না এবং প্যারামিটারের উপরের / নিম্ন সীমানা হিসাবে (বর্তমান সংস্করণ 1.12 হিসাবে) কেবল অসমতার সীমাবদ্ধতাগুলিকে সমর্থন করে।
অরেচো

1

KNITRO এর মধ্যে পাইথন এবং ম্যাটল্যাব ইন্টারফেস রয়েছে, এটিকে FMINCON প্রতিস্থাপন হিসাবে ভাবেন, তবে আরও ভাল পারফর্মিং এবং আরও ব্যয়বহুল। https://www.artelys.com/en/optimization-tools/knitro#doc-tab

আমি KNITRO- র একজন ব্যবহারকারী, তবে অন্যথায় পণ্যটির সাথে অনুমোদিত নয়।

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