gurobi matlab自學(1)簡單LP問題

2021-10-10 19:55:45 字數 1869 閱讀 4330

1.今天安裝了gurobi並且執行了;

2.我對matlab也不熟,gurobi真的很適合新手,我覺得很好上手。

function lp()

%% this example formulates and solves the following ****** lp model:

% maximize

% x + 2 y + 3 z

% subject to

% x + y <= 1

% y + z <= 1

%model.a = sparse([1 1 0; 0 1 1]); %約束條件的係數矩陣

model.obj = [1 2 3]; %目標函式的係數

model.modelsense = 'max'; %優化問題是max還是min

model.rhs = [1 1]; %兩個約束條件右手邊係數分別為1、1

model.sense = [ '<' '<']; %兩個約束條件

result = gurobi(model); %模型優化

disp(result.objval);

disp(result.x);

% alterantive representation of a - as sparse triplet matrix

%用i、j、x來替代a

i = [1; 1; 2; 2];

j = [1; 2; 2; 3];

x = [1; 1; 1; 1];

model.a = sparse(i, j, x, 2, 3);

% set some parameters

params.method = 2;

params.timelimit = 100;

result = gurobi(model, params);

disp(result.objval);

disp(result.x)

end

3.以上程式**於gurobi官網,我依照使用者指南做了一點注釋。

下面是我自己的實踐:

function lp1()

%% 目標函式及約束條件

% maxf(x)=2*x1+3*x2

% 1 x1+2*x2<=3

% 2 4*x1 <=16

% 3 4*x2<=12

% 4 x1 >=0

% 5 x2>=0

% a=[1 2;4 0;0 4;1 0;0 1];

% obj=[2 3]

% rhs=[3 16 12 0 0]

% sense=['<' '<' '<' '>' '>']

model.a=sparse([1 2;4 0;0 4;1 0;0 1]);

model.obj=[2 3];

model.modelsense='max';

model.rhs=[3 16 12 0 0];

model.sense=['<' '<' '<' '>' '>'];

% 單純形,需要迭代

result = gurobi(model);

disp(result.objval);

disp(result.x);

% 無需迭代

model.vbasis = result.vbasis;

model.cbasis = result.cbasis;

result = gurobi(model);

end

自學python記錄1

上次參加個學校的功放大賽,裡面有乙個關於提取ip並計算所有埠號是80的ip位址的總和,但不計算埠號,最終我們小組的同學用c完成了這道大題,但答疑的時候學長說用python會容易很多,this讓我想到了去年功放題裡面的那個進製轉換的題,資料龐大得驚人,本準備用c寫的,但後來發現越界了,無奈之下只能用計...

自學C 小記1

c 支援struct關鍵字,它也可以定義類型別。struct關鍵字是從c語言中繼承過來的。如果使用class來定義類,那麼定義在第乙個訪問標號前的任何成員都隱式指定為private,也就是說,如果你定義了乙個類,然後定義了第乙個成員,這個成員既不寫public,也不寫private,那麼這個成員預設...

shell自學筆記1

shell自學筆記 1.給檔案改名,簡單好記可用 還可用rename mv 原檔名 新檔名 2.echo e 表示開啟開啟反斜槓esc轉義 echo c 關閉自動換行 echo n 換行 九九乘法表 巢狀迴圈 bin bash for i 1 i 9 i do for j 1 j i j dolet...