01分數規劃問題

2022-05-05 16:36:17 字數 789 閱讀 1673

#問題模型1:

給定$n$個二元組$(value_i,cost_i)$,在其中選出$m$個,$value_i$是選擇此二元組獲得的價值(非負),$cost_i$是選擇此二元組付出的代價(非負),設$xi(xi\in)$代表第$i$個二元組的選與不選,最大化下式

$r=\frac$

$1<=n<=1000,0<=k\(\sigma value_i*x_i-\sigma cost_i*x_i*r=0\),設\(f(r)=\sigma value_i*x_i-\sigma cost_i*x_i*r\)

那麼答案一定是這個函式和\(x\)軸的交點,因為不同,所以這個函式的斜率和截距也就不同,因為\(\sigma value_i*x_i\)和\(\sigma cost_i*x_i\)非負的原則,那麼我們的影象是這樣的。

讓答案的\(r\)最大,我們就應該讓與\(x\)軸交點最大

將以上式子化簡為\(\sigma x_i(value_i-cost_i*r)\)。

我們二分一條平行於\(x\)軸的直線\(x=a\),如果\(f(a)>0\) 說明還可以將直線右移,如果\(f(a)<0\)那麼說明與\(x\)軸交點應該在左邊,如果等於就說明這裡就是\(r\)的最大值。

\(f(a)\)怎麼求呢?我們可以用貪心的思想,設\(v_i=value_i-cost_i*r\),然後取\(v_i\)前\(m\)大即可,這樣確保\(f(a)\)的值盡量大,\(x=a\)盡量往右移,最終知道\(\sigma v_i=0\),這樣就能確保答案的\(r\)最大了。

還沒寫就先這樣吧

01分數規劃問題

形如 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 x...

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可行 變...