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...