形如(∑ai*xi)/(∑bi*xi)求極值問題,其中xi=0,1。
設r=(∑ai*xi)/(∑bi*xi),整理以後可以得到f(r)=(∑ai*xi)-r(∑bi*xi)
顯然f(r)是乙個線性的函式,單調,因此可以用二分法進行求解。
設中間變數為r',答案為r,則有
f(r')>0 r'
f(r')=0 r'=r;
f(r')<0 r'>r;
(∑ai*xi)和(∑bi*xi)這兩個數通過式子恒等變形成為線性關係,可以直接計算了,如何確定這兩個引數?
顯然對於每乙個假設的解r',每乙個元素都有ci=ai-r'bi,我們取最大的m個ci相加,如果和仍然小於0,那麼說明r'>r,同理可進行極小值的求解。
另外還有一種迭代法稱為
dinkelbach迭代法
選取乙個迭代初值k,令ci=ai-k*bi,並將ci排序,選出最大的m個,令q=
∑(ai)/∑(bi)與k的差在精度範圍內就輸出,否則令k=q,直至滿足精度要求。
01分數規劃問題
問題模型1 給定 n 個二元組 value i,cost i 在其中選出 m 個,value i 是選擇此二元組獲得的價值 非負 cost i 是選擇此二元組付出的代價 非負 設 xi xi in 代表第 i 個二元組的選與不選,最大化下式 r frac 1 n 1000,0 k sigma val...
0 1分數規劃
題目鏈結 中文鏈結 附一篇大佬部落格感覺講的不錯 0 1分數規劃,不妨設 l a i b i 題目要求要讓結果最大,那麼就是l最大最終移相化簡可得 a i l b i 0,因為a 和b都是已知所以我們可以直接列舉l,當我們所求的值大於零說明l還有更優解當小於零時l沒有最優解。直接二分即可 inclu...
01分數規劃
01分數規劃,就是這樣乙個東西 max frac 其中 xi in 簡而言之,就是在n個物品中選出任意幾個 或者可以有限制選多少個 使得其兩種權值a,b的比值最大 這樣的問題可以二分解決 假如有這樣一道裸題 poj2976,選n k個物品使得比值最大 我們二分出r,若存在 frac r 則r可行 變...