ননলাইনার সীমাবদ্ধ মিনিমাইজেশনের জন্য সি ++ গ্রন্থাগার


9

আমি বর্তমানে মাতলাব "fmincon" ফাংশন হিসাবে প্রয়োগ হিসাবে ননলাইনার বাঁধা কমানো সমস্যা সমাধান করার চেষ্টা করছি। আমার প্রত্যাশাগুলি হ'ল, মিনিমাইজ (ফান 1, এক্স0, ইউবি, এলবি, ফান 2) যেখানে x0 প্রারম্ভিক অবস্থা, ফান 1 এমন ফাংশন যা হ্রাস করা দরকার, ইউবি উপরের সীমানা, এলবি নিম্ন সীমানা এবং ফান 2 এমন ফাংশন যা ননলাইনারি সমতার ভেক্টর সরবরাহ করে / বৈষম্যগুলিকে http://www.mathworks.com/help/optim/ug/fmincon.html তে বর্ণিত হিসাবেননলকন ফাংশন হিসাবে এই ভেক্টরগুলি পুনরাবৃত্তির মাধ্যমেও পরিবর্তন করা হচ্ছে (এগুলি সমাধান ভেক্টরের এন-ত্রি পুনরাবৃত্তির উপর অ-রৈখিকভাবে নির্ভরশীল)। মতলব বাস্তবায়নে তারা সি (x) <= 0 আকারে রয়েছে। এটি কোডের শেষ টুকরো যা মাতলাব থেকে সি ++ এ পোর্ট করা দরকার এবং এই অ্যালগরিদমযুক্ত উপযুক্ত সি ++ গ্রন্থাগার সন্ধান করার সময় আমি অনেক লড়াই করে যাচ্ছি। এই কারণেই আমি এখানে সহায়তা চাই এবং আপনি যদি আপনার দক্ষতা সরবরাহ করতে পারেন তবে আমি অনেক প্রশংসা করব।

আমি যা করতে চাই তার ভাল উদাহরণটি এই পৃষ্ঠায় প্রথমটি হ'ল http://www.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-exferences.html#f10960?s_tid=doc_12b কেবল পার্থক্য হ'ল আমি পাশাপাশি সীমানা প্রয়োজন ...

আগাম ধন্যবাদ.

পিটার


এনএলওপিটি ab-initio.mit.edu/wiki/index.php/NLopt_C-plus-plus_References ব্যবহার করার সম্ভাবনা আছে তবে আমি উদ্দেশ্য ফাংশন থেকে "মিনিমাইজড" ফাংশন মূল্যায়ন করতে একাধিক কল ব্যবহার করে সীমাবদ্ধ পার্থক্য গণনা করতে হবে এবং আমি দয়াবান ছিলাম পারফরম্যান্সের উন্নতি করার জন্য এটি নিজেই অ্যালগরিদম দ্বারা যত্ন নেওয়া হবে আশা করি। আমার ক্ষুদ্রতর ফাংশনটি গণনা করা সত্যিই ব্যয়বহুল। কেবল স্পষ্ট করে বলতে গেলে, ন্যূনতম ফাংশনটি হ'ল সময়-সিরিজের মার্কভ-স্যুইচিং মডেল অনুমানের মূল ডেটা সহ আনুমানিক মডেলের লগ-সম্ভাবনা।
পিটার কোটাস

1
আপনি এই প্রশ্নের উত্তর তাকান ? যদি আপনার প্রয়োজনীয়তাগুলি সেখানে যথাযথভাবে বিবেচনা না করা হয়, তবে আপনার পরামর্শটি সহায়ক প্রস্তাবনা পাওয়ার জন্য এগুলি নির্দেশ করার জন্য এটি সম্পাদনা করা উচিত।
খ্রিস্টান ক্লাসন

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

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

ওহে! সবার আগে, উত্তরের জন্য ধন্যবাদ। ১. বলা শক্ত তবে বেশিরভাগই সম্ভবত না, কারণ ন্যূনতম ফাংশন হ'ল মার্কোভের আর্থিক সংস্থার ক্ষেত্রে টাইমসারিজের মডেল অনুমানের স্যুইচিংয়ের মধ্যে লগ-সম্ভাবনা এবং এর প্রকৃতি থেকে আমি ধরণের গোলমাল আউটপুট অনুমান করি। 2. কোন 3. মাত্র সীমাবদ্ধ পার্থক্য ব্যবহার করে 4. সমাধান ভেক্টর এন ভেরিয়েবল নিয়ে গঠিত যেখানে এন কাঙ্ক্ষিত মডেলগুলির পরামিতিগুলির উপর নির্ভরশীল, সাধারণভাবে 12 থেকে 30% বলে দেওয়া যাক মডেল এবং মূল ডেটাগুলির মধ্যে 5 5. লগ-সম্ভাবনা ব্যয়বহুল, অতিরিক্ত ননরেখা বৈষম্য গণনা করতে প্রস্তুত আছেন
পিটার কোটাস

উত্তর:


2

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

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

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


2

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

এটি ওপেন সোর্স তাই আপনি গিটহাবের উত্স কোডটি যাচাই করতে পারেন: https://github.com/roboptim/

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

দ্রষ্টব্য: আমি এই প্রকল্পের অন্যতম বিকাশকারী।

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