%% pre-processingclc; clear all; close all;addpath('C:\Program Files\IBM\ILOG\CPLEX_Studio1271\cplex\matlab\x64_win64');addpath('C:\Program Files\YALMIP-master');addpath('C:\Program Files\YALMIP-master\extras');addpath('C:\Program Files\YALMIP-master\solvers');addpath('C:\Program Files\YALMIP-master\modules');addpath('C:\Program Files\YALMIP-master\modules\parametric');addpath('C:\Program Files\YALMIP-master\modules\moment');addpath('C:\Program Files\YALMIP-master\modules\global');addpath('C:\Program Files\YALMIP-master\modules\sos');addpath('C:\Program Files\YALMIP-master\operators');% load datadataset = xlsread('DataSet1','Tasks');sheet1 = xlsread('DataSet1', 'Machines');numberofmachines = sheet1(1,1);s = sheet1(2,1);p = [0;dataset(:,2)];I = length(dataset);N = I+1;% constantsM = 10^6;eps = 10^-6;% variablesV = binvar(N,1);W = binvar(N,1);Z = intvar(N,1);Y = binvar(N,N,'full'); %12D = binvar(N,N,'full'); %13C = sdpvar(N,1);H = sdpvar(1,1);O = false(N,numberofmachines); %oij all zeroesO(1,1) = 1;for i = 2:N % set oij=1 if task i on machine jfor j = 1:numberofmachinesif dataset(i-1,3) == jO(i,j) = 1;elseO(i,j) = 0;endendendsj = s.*ones(1,numberofmachines);for j=1:numberofmachinesej(1,j) = sj(1,j)+sum(O(:,j).*p);ende = min(ej);Constraint = [Z >= 0, C >= 0, diag(Y)==0]; %14 & 15 & 2as = max(sj);for i = 1:Nfor k = 1:Nif i~=kConstraint = [Constraint,Y(i,k) + Y(k,i) == 1]; %2endendConstraint = [Constraint, Z(1) == 1]; %extraConstraint = [Constraint, Z(i) == 1 + sum(Y(:,i))]; %4for k = 1:Nif i~=kConstraint = [Constraint, Z(i) <= Z(k)-1+M*Y(k,i)]; %5endendbuild = p(i); %6for j = 1:numberofmachinesbuild = build + O(i,j)*sj(:,j) + sum(O(i,j).*O(:,j).*p(:).*Y(:,i)); %6endConstraint = [Constraint, C(i) == build]; %6for k = 1:Nif i~= kConstraint = [Constraint, C(i) - M*(1-Y(i,k)) <= C(k)]; %7Constraint = [Constraint, Z(k)-Z(i) >= 1.1 - M * D(i,k)]; %8endendConstraint = [Constraint, C(i) <= s - eps + M*W(i)]; %9Constraint = [Constraint, C(i) >= e + eps - M*V(i)]; %10for k = 1:Nif i~=kConstraint = [Constraint, H >= C(k) - C(i) -M*(1-D(i,k))-M*(1-W(i))-M*(1-V(i))]; %11endendendops= sdpsettings('solver','cplex','verbose',1);% ops = sdpsettings('verbose',1,'cplex');% Define constraints and objectiveObjective = H;sol = optimize(Constraint,Objective,ops);% Analyze error flagsif sol.problem == 0% Extract and display valuesolution1 = value(Z)solution2 = value(H)elsedisplay('Hmm, something went wrong!');yalmiperror(sol.problem)end