97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

魏縣手機(jī)網(wǎng)站建設(shè)濰坊青州網(wǎng)站建設(shè)

鶴壁市浩天電氣有限公司 2026/01/24 08:45:41
魏縣手機(jī)網(wǎng)站建設(shè),濰坊青州網(wǎng)站建設(shè),平面設(shè)計(jì)論壇有哪些,做網(wǎng)站怎么買域名文章目錄一、關(guān)鍵輸入信息1、優(yōu)化問題的維度2、優(yōu)化變量的邊界3、優(yōu)化問題的初始迭代點(diǎn)#xff1a;4、優(yōu)化問題的數(shù)據(jù)結(jié)構(gòu)(Structure)#xff1a;5、優(yōu)化問題函數(shù)的值#xff1a;二、C Interface1、Ipopt::TNLP::get_nlp_info2、Ipopt::TNLP::get_bounds_info3、Ipopt::TNLP…文章目錄一、關(guān)鍵輸入信息1、優(yōu)化問題的維度2、優(yōu)化變量的邊界3、優(yōu)化問題的初始迭代點(diǎn)4、優(yōu)化問題的數(shù)據(jù)結(jié)構(gòu)(Structure)5、優(yōu)化問題函數(shù)的值二、C Interface1、Ipopt::TNLP::get_nlp_info2、Ipopt::TNLP::get_bounds_info3、Ipopt::TNLP::get_starting_point4、Ipopt::TNLP::eval_f5、Ipopt::TNLP::eval_grad_f6、Ipopt::TNLP::eval_g7、Ipopt::TNLP::eval_jac_g8、Ipopt::TNLP::eval_h9、Ipopt::TNLP::finalize_solutionIpopt(Interior Point OPTimizer)是求解大規(guī)模非線性最優(yōu)化問題的求解庫??梢郧蠼馊缦滦问降淖顑?yōu)化問題的(局部)最優(yōu)解。其中f ( x ) : R n → R f(x):R^n → Rf(x):Rn→R是優(yōu)化目標(biāo)函數(shù)g ( x ) : R n → R m g(x):R^n → R^mg(x):Rn→Rm是約束函數(shù)f ( x ) , g ( x ) f(x),g(x)f(x),g(x)可以是非線性和非凸的但是需要二階微分連續(xù)。一、關(guān)鍵輸入信息為了求解最優(yōu)化問題Ipopt需要更多信息如下1、優(yōu)化問題的維度1優(yōu)化變量x xx的數(shù)目2約束函數(shù)g ( x ) g(x)g(x)的數(shù)目;2、優(yōu)化變量的邊界1優(yōu)化變量x xx的邊界2約束函數(shù)g ( x ) g(x)g(x)的邊界3、優(yōu)化問題的初始迭代點(diǎn)1優(yōu)化變量x xx的初始值2拉格朗日乘子的初始值(僅僅是在warm start的時(shí)候需要)4、優(yōu)化問題的數(shù)據(jù)結(jié)構(gòu)(Structure)1約束函數(shù)g ( x ) g(x)g(x)的雅可比矩陣的非零元素的數(shù)目2拉格朗日函數(shù)的海森矩陣的非零元素的數(shù)目3約束函數(shù)g ( x ) g(x)g(x)? 的雅可比稀疏矩陣的非零元素的行索引和列索引(sparsity structurerow and column indices of each of the nonzero entries)4拉格朗日函數(shù)的海森稀疏矩陣的非零元素的行索引和列索引(sparsity structurerow and column indices of each of the nonzero entries)5、優(yōu)化問題函數(shù)的值1優(yōu)化目標(biāo)函數(shù)f ( x ) f(x)f(x)2優(yōu)化目標(biāo)函數(shù)的梯度函數(shù)c cc3約束函數(shù)g ( x ) g(x)g(x)?4約束函數(shù)的雅可比矩陣? g ( x ) T ?g(x)^T?g(x)T5拉格朗日函數(shù)的海森矩陣σ f ? 2 f ( x ) ∑ i 1 m λ i ? 2 g i ( x ) sigma_f?^2f(x) sum_{i1}^{m}lambda_i?^2g_i(x)σf??2f(x)∑i1m?λi??2gi?(x)?如果使用擬牛頓法則不需要此矩陣優(yōu)化問題的維度和邊界約束可以直接獲得并且來自于問題定義。初始迭代點(diǎn)會影響優(yōu)化問題的是否收斂或者是否收斂到(局部)最優(yōu)解不同的初始值可能會導(dǎo)致收斂到不同的局部最優(yōu)解。計(jì)算微分矩陣(雅可比矩陣和海森矩陣)可能有一點(diǎn)復(fù)雜Ipopt需要提供約束函數(shù)的雅可比矩陣和拉格朗日函數(shù)的海森矩陣的非零元素以及他們所在的行索引和列索引并且標(biāo)準(zhǔn)接口是下三角矩陣(海森矩陣是對稱矩陣)。矩陣的非零元素確定后在整個求解過程中是不可變的因此非零元素不可以僅僅包含在初始值條件下還需要包括在求解過程中不為零的元素。二、C Interface需要繼承純虛基類Ipopt::TNLP來編寫自己的求解類并且需要重載9個Ipopt::TNLP基類的虛函數(shù)Ipopt通過Ipopt::IpoptApplication類來求解最優(yōu)化問題。1、Ipopt::TNLP::get_nlp_infovirtual bool get_nlp_info( Index n, Index m, Index nnz_jac_g, Index nnz_h_lag, IndexStyleEnum index_style ) 0;Ipopt使用這個函數(shù)來確定數(shù)組的內(nèi)存分配這里如果發(fā)生問題會引起內(nèi)存泄漏等問題很難去debug。n優(yōu)化變量x xx的數(shù)目m約束函數(shù)g ( x ) g(x)g(x)的數(shù)目nnz_jac_g雅可比矩陣非零元素的數(shù)目nnz_h_lag海森矩陣非零元素的數(shù)目index_style稀疏矩陣的索引使用C語言風(fēng)格(從0開始還是使用Fortran語言風(fēng)格(從1開始)2、Ipopt::TNLP::get_bounds_infovirtual bool get_bounds_info( Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u ) 0;Ipopt使用這個函數(shù)來確定優(yōu)化變量x xx的邊界和約束函數(shù)g ( x ) g(x)g(x)的邊界。n優(yōu)化變量x xx的數(shù)目x_l優(yōu)化變量x xx的下邊界數(shù)組x_u優(yōu)化變量x xx的上邊界數(shù)組m約束函數(shù)g ( x ) g(x)g(x)的數(shù)目g_l約束函數(shù)g ( x ) g(x)g(x)的下邊界數(shù)組g_u約束函數(shù)g ( x ) g(x)g(x)的上邊界數(shù)組在Ipopt中默認(rèn)設(shè)置邊界值需要在( ? 1 0 9 , 1 0 9 ) (-10^9, 10^9)(?109,109)范圍內(nèi)當(dāng)不在此范圍時(shí)則認(rèn)為是無窮大或者無窮小。3、Ipopt::TNLP::get_starting_pointvirtual bool get_starting_point( Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda ) 0;Ipopt使用這個函數(shù)來確定迭代優(yōu)化的起點(diǎn)。n優(yōu)化變量x xx的數(shù)目init_x如果是true則需要提供優(yōu)化變量x xx的初始值x優(yōu)化變量x xx的初始值其他為dual variables的初始值一般不用設(shè)置。在Ipopt中默認(rèn)是需要設(shè)置x xx的初始值。4、Ipopt::TNLP::eval_fvirtual bool eval_f( Index n, const Number* x, bool new_x, Number obj_value ) 0;Ipopt使用這個函數(shù)來確定優(yōu)化目標(biāo)函數(shù)。n優(yōu)化變量x xx的數(shù)目x優(yōu)化變量x xx的值用來計(jì)算f ( x ) f(x)f(x)new_x在此之前調(diào)用的eval_*函數(shù)是否有錯誤發(fā)生可以忽略obj_valuef ( x ) f(x)f(x)5、Ipopt::TNLP::eval_grad_fvirtual bool eval_grad_f( Index n, const Number* x, bool new_x, Number* grad_f ) 0;Ipopt使用這個函數(shù)來確定優(yōu)化目標(biāo)函數(shù)的梯度。n優(yōu)化變量x xx的數(shù)目x優(yōu)化變量x xx的值用來計(jì)算? f ( x ) ?f(x)?f(x)new_x在此之前調(diào)用的eval_*函數(shù)是否有錯誤發(fā)生可以忽略grad_f? f ( x ) ?f(x)?f(x)數(shù)組的大小和x xx的數(shù)組大小一致6、Ipopt::TNLP::eval_gvirtual bool eval_g( Index n, const Number* x, bool new_x, Index m, Number* g ) 0;Ipopt使用這個函數(shù)來確定約束函數(shù)g ( x ) g(x)g(x)。n優(yōu)化變量x xx的數(shù)目x優(yōu)化變量x xx的值用來計(jì)算? f ( x ) ?f(x)?f(x)new_x在此之前調(diào)用的eval_*函數(shù)是否有錯誤發(fā)生可以忽略m 約束函數(shù)g ( x ) g(x)g(x)的數(shù)目gg(x)數(shù)組的大小和m一致7、Ipopt::TNLP::eval_jac_gvirtual bool eval_jac_g( Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index* jCol, Number* values ) 0;Ipopt使用這個函數(shù)來確定約束函數(shù)g ( x ) g(x)g(x)的雅可比矩陣的非零元素的值以及其在稀疏矩陣中的行索引值和列索引值。雅可比矩陣中的第i ii行和第j列的元素值是g i ( x ) g_i(x)gi?(x)對x j x_jxj?的導(dǎo)數(shù)。n優(yōu)化變量x xx的數(shù)目x優(yōu)化變量x xx的值用來計(jì)算? g ( x ) T ?g(x)^T?g(x)Tnew_x在此之前調(diào)用的eval_*函數(shù)是否有錯誤發(fā)生可以忽略m約束函數(shù)g ( x ) g(x)g(x)的數(shù)目iRow存儲雅可比矩陣非零元素在矩陣中的行索引值如果是C語言風(fēng)格雅可比矩陣索引值從0開始jCol存儲雅可比矩陣非零元素在矩陣中的列索引值如果是C語言風(fēng)格雅可比矩陣索引值從0開始values存儲雅可比矩陣中的非零元素需要注意的是①iRow、jCol和values三個數(shù)組的大小是一致的并且其儲存的值應(yīng)該和雅可比矩陣非零元素的行索引值、列索引值和非零元素值相對應(yīng)②數(shù)組iRow和jCol只需要被填寫一次即第一次調(diào)用此函數(shù)時(shí)填寫iRow和jCol第一次調(diào)用時(shí)x和values都是null當(dāng)Ipopt需要values的值時(shí)傳遞iRow和jCol將會是null此時(shí)對values的值進(jìn)行填寫。8、Ipopt::TNLP::eval_hvirtual bool eval_h( Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values )Ipopt使用這個函數(shù)來確定拉格朗日函數(shù)海森矩陣的非零元素的值以及其在稀疏矩陣中的行索引值和列索引值。n優(yōu)化變量x xx的數(shù)目x優(yōu)化變量x xx的值用來計(jì)算? g ( x ) T ?g(x)^T?g(x)Tnew_x在此之前調(diào)用的eval_*函數(shù)是否有錯誤發(fā)生可以忽略obj_factorσ f sigma_fσf?m約束函數(shù)g ( x ) g(x)g(x)? 的數(shù)目lambda拉格朗日乘子λ lambdaλnew_lambda如果之前調(diào)用的函數(shù)使用相同的λ lambdaλ則為false一般忽略nele_hess海森矩陣非零元素的個數(shù)(下三角矩陣)iRow存儲海森矩陣非零元素在矩陣中的行索引值如果是C語言風(fēng)格雅可比矩陣索引值從0開始jCol存儲海森矩陣非零元素在矩陣中的列索引值如果是C語言風(fēng)格雅可比矩陣索引值從0開始values存儲海森矩陣中的非零元素需要注意的是①iRow、jCol和values三個數(shù)組的大小是一致的并且其儲存的值應(yīng)該和海森矩陣非零元素的行索引值、列索引值和非零元素值相對應(yīng)②數(shù)組iRow和jCol只需要被填寫一次即第一次調(diào)用此函數(shù)時(shí)填寫iRow和jCol第一次調(diào)用時(shí)x、lambda和values都是null當(dāng)Ipopt需要values的值時(shí)傳遞iRow和jCol將會是null此時(shí)對values的值進(jìn)行填寫③由于海森矩陣是對稱陣Ipopt使用下三角矩陣④Ipopt默認(rèn)是需要海森矩陣的當(dāng)使用擬牛頓法時(shí)則不需要海森矩陣。9、Ipopt::TNLP::finalize_solutionvirtual void finalize_solution( SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq ) 0;Ipopt使用這個函數(shù)來得到最優(yōu)化問題的求解結(jié)果對其重要的值進(jìn)行介紹。status求解器的狀態(tài)SUCCESS在滿足收斂條件的情況下找到局部最優(yōu)解MAXITER_EXCEEDED超出最大迭代次數(shù)CPUTIME_EXCEEDED超出最大求解時(shí)間STOP_AT_ACCEPTABLE_POINT求解收斂在某點(diǎn)不滿足期望的容差但是在可接受范圍內(nèi)LOCAL_INFEASIBILITY在可行域內(nèi)找不到最優(yōu)解一般是由于bounds和約束設(shè)置不合理導(dǎo)致的x優(yōu)化變量x xx的局部最優(yōu)解的值
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!