⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipp.m

📁 Integer prograamming problem in matlab
💻 M
字号:
clc
clear all
format rat
disp('ALL IPP PROBLEM');
m=input('Enter the dimension : ');
disp('1.Minimisation  2.Maximization ');
ch=input('Entre your choice : ');
disp('Enter the coefficients of the objective function : ');
b(1)=0;
for i=2:1:m+1
    b(i)=input('');
    if(ch==2)
         b(i)=b(i)*(-1);
    end
end
n=input('Enter the number of constrains : ');
for i=1:1:n
    disp(sprintf('Enter the coefficients of <= constrain No %d : ',i));
    for j=2:1:m+1
       a(i,j)=input('');
    end
    disp('Enter the constant in the constrain : ')
    a(i,1)=input('');
end
aa=[a; b];
ey=eye(n);
ey1=zeros(1,n);
ey=[ey;ey1];
for i=1:1:n
    if(aa(i,1)<0)
        for j=1:1:m+1
            aa(i,j)=aa(i,j)*(-1);
        end
    end
end
%clc
aa=[aa ey];
flag=1;
ite=0;
many=0;
basis=m+1:1:m+n;
while(flag==1) % 
    disp(sprintf('ITERATION NO :%d',ite))
    disp(aa)
    ite=ite+1;
    y=1;
    [aa basis]=phase1(m,n,aa,y,basis);
    flag=basis(n+1);
        
end  %while loop ends
inte=0;
while(inte==0)
        basis=basis(1:n);
        cons=aa(1:n,1);
        %fracpart=double(frac(sym(cons)));
        fracpart=cons-floor(cons);
        [maxi maxpos]=max(fracpart);
        if maxi==0
            flag=0;
            inte=1;
        else
            flag=1;
        

    
        disp(sprintf('Gomory constrained formed using x%d ',basis(maxpos)));
        %eq=double(frac(sym(aa(maxpos,:))));
        eq=aa(maxpos,:)-floor(aa(maxpos,:));
        p=[aa(1:n,:) zeros(n,1)];
        q=[aa(n+1,:),0];
        eq=[-eq 1];
        n=n+1;
        aa=[p;eq;q];
        basis(n)=m+n;
        
        while(flag==1)
                disp(sprintf('ITERATION NO :%d',ite))
                disp(aa)
                ite=ite+1;
                [aa basis]=duall(m,n,aa,basis);
                flag=basis(n+1);
        end
        cons=aa(1:n,1);
        fracpart=double(frac(sym(cons)));
        [maxi maxpos]=max(fracpart);
        if maxi==0
            inte=1;
        end
        end
end
disp('Final Iteration : ');
disp(aa)

disp('')
disp('The Solution is : ');
       for i=1:1:n
          disp(sprintf('x%d =',basis(i)))
          disp(rats(aa(i,1)))
       end
           disp('The Optimum value is ')
    if ch==1
        disp(rats(-aa(n+1,1)))
    else
        disp(rats(aa(n+1,1)))
    end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -