写出以上matlab求解代码
时间: 2023-07-03 11:27:57 浏览: 40
问题1的MATLAB求解代码:
```matlab
%数据
t = [2 3 2 4 3 2 3 4 2 3 2 4 3 2 3 4]; %每个产品需要加工的时间
x = zeros(16, 1); %A类流水线加工每个产品的时间
y = zeros(16, 1); %B类流水线加工每个产品的时间
p = [0 1 0 2 1 0 1 2 0 1 0 2 1 0 1 2]; %A类流水线切换产品需要准备时间
q = [0 2 0 4 2 0 2 4 0 2 0 4 2 0 2 4]; %B类流水线切换产品需要准备时间
f = [125.1 155.6]; %流水线使用成本
A = [x, y];
b = t';
%建模
cvx_begin
variables x(16) y(16) a b
minimize (a+b)
subject to
x + y == t';
sum(x) <= a;
sum(y) <= b;
x <= a - p';
y <= b - q';
cvx_end
%结果输出
fprintf("A类流水线加工时间:\n");
disp(x');
fprintf("B类流水线加工时间:\n");
disp(y');
fprintf("A类流水线使用时间:%f 小时\n", a);
fprintf("B类流水线使用时间:%f 小时\n", b);
fprintf("总加工时间:%f 小时\n", a+b);
fprintf("最小化加工时间:%f 小时\n", cvx_optval);
```
问题2的MATLAB求解代码:
```matlab
%数据
t = [2 3 2 4 3 2 3 4 2 3 2 4 3 2 3 4]; %每个产品需要加工的时间
x = zeros(16, 1); %A类流水线加工每个产品的时间
y = zeros(16, 1); %B类流水线加工每个产品的时间
p = [0 1 0 2 1 0 1 2 0 1 0 2 1 0 1 2]; %A类流水线切换产品需要准备时间
q = [0 2 0 4 2 0 2 4 0 2 0 4 2 0 2 4]; %B类流水线切换产品需要准备时间
f = [125.1 155.6]; %流水线使用成本
A = [x, y];
b = t';
%建模
cvx_begin
variables x(16) y(16) a b a' b'
minimize (f(1)*a+f(2)*b+200*a'+300*b')
subject to
x + y == t';
sum(x) + a' <= a+2;
sum(y) + b' <= b+2;
x <= a - p';
y <= b - q';
cvx_end
%结果输出
fprintf("A类流水线加工时间:\n");
disp(x');
fprintf("B类流水线加工时间:\n");
disp(y');
fprintf("A类流水线使用时间:%f 小时\n", a);
fprintf("B类流水线使用时间:%f 小时\n", b);
fprintf("A类流水线加班时间:%f 小时\n", a');
fprintf("B类流水线加班时间:%f 小时\n", b');
fprintf("总加工时间:%f 小时\n", a+b);
fprintf("最小化加工成本:%f 元\n", cvx_optval);
```