prob=optimproblem("ObjectiveSense",'minimize') %Sets suppliers=1; % manufacture1=1; % manufacture2=1; % manufacture3=1; % manufacture4=1; plant=1; retailer=1; customer=1; collection_centre=1; disassembly_centre=1; refurbishing_centre=1; waste_centre=1; periods=4; %decision variable; Qij=optimvar('Qij',suppliers,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); % Qjk1=optimvar('Qjk1',manufacture2,manufacture1,'Type','integer','LowerBound',0,'UpperBound',1000000000000); % Qjk2=optimvar('Qjk2',manufacture2,manufacture3,'Type','integer','LowerBound',0,'UpperBound',1000000000000); % Qjk3=optimvar('Qjk3',manufacture4,manufacture3,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qjk=optimvar('Qjk',retailer,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qjk1=optimvar('Qjk1',waste_centre,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qlm=optimvar('Qlm',retailer,customer,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qmn=optimvar('Qmn',collection_centre,customer,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qno=optimvar('Qno',collection_centre,disassembly_centre,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qmj=optimvar('Qmj',collection_centre,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qop=optimvar('Qop',waste_centre,disassembly_centre,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qop1=optimvar('Qop1',refurbishing_centre,disassembly_centre,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qrc=optimvar('Qrc',refurbishing_centre,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); Qj=optimvar('Qj',1,plant,'Type','integer','LowerBound',0,'UpperBound',1000000000000); njmachine=optimvar('njmachine',1,plant,'Type','integer','LowerBound',0,'UpperBound',1000000); njcompressor=optimvar('njcompressor',1,plant,'Type','integer','LowerBound',0,'UpperBound',1000000); nilum=optimvar('niulm',1,plant,'Type','integer','LowerBound',0,'UpperBound',1000000); ncond=optimvar('ncond',1,plant,'Type','integer','LowerBound',0,'UpperBound',1000000); nilumre=optimvar('nilumre',1,retailer,'Type','integer','LowerBound',0,'UpperBound',1000000); ncondre=optimvar('ncondre',1,retailer,'Type','integer','LowerBound',0,'UpperBound',1000000); nilumcc=optimvar('nilumcc',1,collection_centre,'Type','integer','LowerBound',0,'UpperBound',1000000); ncondcc=optimvar('ncondcc',1,collection_centre,'Type','integer','LowerBound',0,'UpperBound',1000000); %parameter %Parameter of 2nd objective function N_machine1=180; %installed power in kw R1=1840; %manufacturing rate for machine kg/h u=.6; %efficiency for machine in percentage Energy_machine=(12000*(njmachine)*N_machine1)./(R1*u); N_compressor=150; %power installed for compressor kw ro_compressor=666; %capacity of compressed air m^3/h v_compressor1=6;% compressed air used for machine i m^3/h Energy_comp=((12000*N_compressor*v_compressor1*njcompressor)./(R1*u*ro_compressor)); G_illum=751569; %mass production per month for manufacturing system kg N_illu=0.5; % power installed for illumation kw Gpl=751569; N_cond_cc=2; % power installed in collection center G_cc=53164; N_illumcc=.3; Energy_illum=((12000*N_illu*nilum)./(G_illum))+((840*N_illumcc*nilumcc)./(G_cc)); G_cond=751569; %mass production per month for manufacturing system kg N_cond=3; % power installed for illumation kw Energy_cond=((12000*N_cond*ncond)./(G_cond))+((840*N_cond_cc*ncondcc)./(G_cc)); %parameter of first objective cfixed=6000000; % fixed cost craw=2; %per kg %raw material cost cprod=3; % unit, product cost per unit cin=2; % inventory cost per unit v=20,000 % capacity of vehicle per kg ctrans=2; %transportation cost dist_sup=50; % per mile dsp=50; % mile distance from supplier to manufacture 1,2,3,4 dpr=30; % mile distance from manufacture to retailer dpw=5; %mile distance from plant to waste center drc=15; %mile distance from retailer to customer dcc=10;%mile distance from customer to collection center dcd=20; %mile distance from collection center to disassembly center ddw=8; %mile distance from disassembly center to waste center ddr=17; %mile distance from disassembly center to refurbishing drp=20; %mile distance from refurbashing to plant dcp=15; %mile distance from colection centre to plant N_re_air=0.5; %installed power in retailer G_re=632650; %quantity storred in kg per month N_re_ilum=0.1; %installed power for ilumination in retailer Enery_re=(N_re_air*ncondre*12000)./(G_re)+(N_re_ilum*nilumre*12000)./(G_re); %3rd objective paramter: alpha_pl=0.04 alpha_t=0.41 % carbon emission during transportation prob.Objective=Energy_machine+Energy_comp+Energy_illum+Energy_cond+Enery_re; %capacity constraint cap_con1=sum(sum(Qij))<=30000; %production capacity of supplier cap_con2=sum(sum(Qjk))+sum(sum(Qjk1))<=16000; %capacity of plant cap_con3=sum(Qlm)<=14000; % capacity of retailter cap_con4=sum(Qno)+sum(Qmj)<=5000; % capacity of collection centre cap_con5=sum(Qop)+sum(Qop1)<=3000; % capactiy of dissemabily centre cap_con6=sum(Qrc)<=2000; %capacity of refurbishing centre %Demand constraint demand_1=sum(Qlm)>=12000; rt1=0.07;% return rate from customers %% collection center supply constraint Collection_center=sum(Qmn)>=rt1*sum(Qlm); %transhipment constraint at collection center rt2=0.02; % return rate fromm collevction center to dissasbmly rt3=0.05; % return rate from collection center to plant tarnshipment_collection1=sum(Qmn)>=rt2*sum(Qno); tarnshipment_collection2=sum(Qmn)>=rt3*sum(Qmj); %transhipment for disassembly rt4=0.10; % return rate from disassembly to refurbishing rt5=0.20; % return rerae from disassembly to disposal disassembly_con1=sum(Qno)>=rt4*sum(Qop1); disassembly_con2=sum(Qno)>=rt5*sum(Qop); balance_con1=sum(Qij)==sum(Qjk)+sum(Qjk1); balance_con2=sum(Qjk)==sum(Qlm); balance_con5=sum(Qlm)==sum(Qmn) balance_con3=sum(Qmn)==sum(Qno)+sum(Qmj); balance_con4=sum(Qno)==sum(Qop)+sum(Qop1); %balance_con5=sum(Qop1)==sum(Qrc); %Informational constraints infor1=(1-.001)*Qj>=12000; infor2=1.5*ncond>=njmachine; infor3=nilum>=15*njmachine; infor4=R1*njmachine>=Qj; infor5=3*njcompressor>=njmachine; infor6=(92)*ncondre>=1.5*Qjk; infor7=92*nilumre>=10*Qjk; infor8=(98)*ncondcc>=1.5*Qmn; infor9=98*nilumcc>=10*Qmn; % infor7=nilum>=15*njmachine; % infor8=R1*njmachine>=Qj; % infor9=3*njcompressor>=njmachine; %standard constraint prob.Constraints.cap_con1=cap_con1; prob.Constraints.cap_con2=cap_con2 prob.Constraints.cap_con3=cap_con3; prob.Constraints.cap_con4=cap_con4; prob.Constraints.cap_con5=cap_con5; prob.Constraints.cap_con6=cap_con6; prob.Constraints.demand_1=demand_1; prob.Constraints.Collection_center=Collection_center; prob.Constraints.tarnshipment_collection1=tarnshipment_collection1; prob.Constraints.tarnshipment_collection2=tarnshipment_collection2; prob.Constraints.disassembly_con1=disassembly_con1; prob.Constraints.disassembly_con2=disassembly_con2; prob.Constraints.balance_con1=balance_con1; prob.Constraints.balance_con2=balance_con2; prob.Constraints.balance_con3=balance_con3; prob.Constraints.balance_con4=balance_con4; prob.Constraints.infor1=infor1; prob.Constraints.infor2=infor2; prob.Constraints.infor3=infor3; prob.Constraints.infor4=infor4; prob.Constraints.infor5=infor5; prob.Constraints.infor6=infor6; prob.Constraints.infor7=infor7; prob.Constraints.infor8=infor8; prob.Constraints.infor9=infor9; [x22 fval22]=solve(prob) s2=struct2cell(x22) Qij2=cell2mat(s2(1,1)); Qj2=cell2mat(s2(2,1)); Qjk2=cell2mat(s2(3,1)); Qjk12=cell2mat(s2(4,1)); Qlm2=cell2mat(s2(5,1)); Qmj2=cell2mat(s2(6,1)); Qmn2=cell2mat(s2(7,1)); Qno2=cell2mat(s2(8,1)); Qop2=cell2mat(s2(9,1)); Qop12=cell2mat(s2(10,1)); Qrc2=cell2mat(s2(11,1)); ncond2=cell2mat(s2(12,1)); ncondcc2=cell2mat(s2(13,1)); ncondre2=cell2mat(s2(14,1)); nilumcc2=cell2mat(s2(15,1)); nilumre2=cell2mat(s2(16,1)); nilum2=cell2mat(s2(17,1)); njcompressor2=cell2mat(s2(18,1)); njmachine2=cell2mat(s2(19,1));