UOJ 179 線性規劃(單純形)

2021-08-21 07:16:53 字數 1942 閱讀 7639

傳送門

題解:

雖然標程掛了,不過還是勉強能用的。

初始條件:

max∑jc

jaj∑

jai,

jxj≤

bjxi

≥0max∑j

cjaj

∑jai

,jxj

≤bjx

i≥

0最優化過程:

假設一開始滿足所有bj

≥0b j≥

0。 1.找到ci

c

i為正數的xi

x

i。 2.找到bj

xj,i

b jx

j,

i最小的j

j

3.pivot(j,i)。

初始解:

1.找到任意bj

<

0' role="presentation" style="position: relative;">b

j<0b

j<0的

j j. 2.找到任意aj

,i≤0

' role="presentation" style="position: relative;">aj,

i≤0a

j,i≤

0的i i

. 3.pivot(j,i).

無解條件:

init失敗,即bj

<

0' role="presentation" style="position: relative;">b

j<0b

j<

0且不存在i i

.無限解條件:

任意時刻基變數沒有限制

pivot操作: bi

−∑ja

i,jx

j−xn

+i=a

i,ex

e' role="presentation" style="position: relative;">bi−

∑jai

,jxj

−xn+

i=ai

,exe

bi−∑

jai,

jxj−

xn+i

=ai,

exex

e=bi

−∑ja

i,jx

j−xn

+iai

,ex e=

bi−∑

jai,

jxj−

xn+i

ai,e

對於其他行矩陣減法即可。

#include 

using

namespace

std;

typedef

long

double ld;

const

int n=26;

int n,m,type,q[n],id[n*2];

double a[n][n],ans[n];

namespace lp

}inline

bool init() return

true;

}inline

bool ******x()

if(!e) break;

for(int i=1;i<=m;i++)

if(a[i][e]>eps && mn>a[i][0]/a[i][e])

mn=a[i][0]/a[i][e], l=i;

if(!l) return

puts("unbounded"), false;

pivot(l,e);

} return

true;

}inline

void solve()

}

}int main() lp::solve();

}

uoj 179 線性規劃 單純形法 模板

題目大意 這是一道模板題。本題中你需要求解乙個標準型線性規劃 有n個實數變數x1,x2,xn和m條約束,其中第i條約束形如aij xj bi j 1,n i 1,m 此外這n個變數需要滿足非負性限制,即xj 0。在滿足上述所有條件的情況下,你需要指定每個變數xj的取值,使得目標函式f cj xj j...

UOJ 179 線性規劃 線性規劃

這是一道模板題。這個題現在標程掛了。哪位哥哥願意提供一下靠譜的標程呀?本題中你需要求解乙個標準型線性規劃 有 nn 個實數變數 x1,x2,xn x1,x2,xn 和 m m 條約束,其中第 i i 條約束形如 nj 1aijxj bi j 1naijxj bi。此外這 n n 個變數需要滿足非負性...

UOJ 179 線性規劃 線性規劃

這是一道模板題。這個題現在標程掛了。哪位哥哥願意提供一下靠譜的標程呀?本題中你需要求解乙個標準型線性規劃 有 nn 個實數變數 x1,x2,xn x1,x2,xn 和 m m 條約束,其中第 i i 條約束形如 nj 1aijxj bi j 1naijxj bi。此外這 n n 個變數需要滿足非負性...