Image

Programs - C++ - Operation Research

Program:


#include<conio.h>
#include<iostream.h>
void main()
{
int c[20][20],i,j,min,m,n,b,d,c2,c1,p,q,dem[20],sup[20],rf[20],cf[20],sum=0;
 clrscr();
cout<<"
Enter the row & column :"
;
cin>>m>>n;
cout<<"
Enter the cost  :"
;
for(i=0;i<m;i++)
 {
  for(j=0;j<n;j++)
  cin>>c[i][j];
 }
cout<<"
Enter the demand :"
;
for(i=0;i<n;i++)
cin>>dem[i];

cout<<"
Enter the supply :"
;
for(i=0;i<m;i++)
cin>>sup[i];

for(i=0;i<m;i++)
  rf[i]=0;
for(i=0;i<n;i++)
  cf[i]=0;
 b=m;d=n;
while(b>0&&d>0)
 {
  min=1000;
  for(i=0;i<m;i++)
  {
   if(rf[i]!=1)
   {
    for(j=0;j<n;j++)
 {
if(cf[j]!=1)
  {
   if(min>c[i][j])
   {
    min=c[i][j];
     p=i;
     q=j;
   }}}}
  }

  if(sup[p]<dem[q])
   c1=sup[p];
  else
   c1=dem[q];
  for(i=0;i<m;i++)
  {
   if(rf[i]!=1)
   {
    for(j=0;j<n;j++)
 {
if(cf[j]!=1)
  {
   if(min==c[i][j])
   {
    if(sup[i]<dem[j])
     c2=sup[i];
    else
     c2=dem[j];
    if(c2>c1)
    {
  c1=c2;
  p=i;
  q=j;
    }}}}}
  }

  if(sup[p]<dem[q])
  {
   sum=sum+c[p][q]*sup[p];
   dem[q]-=sup[p];
   rf[p]=1;
   b--;
  }
  else if(sup[p]>dem[q])
  {
   sum=sum+c[p][q]*dem[q];
   sup[p]-=dem[q];
   cf[q]=1;
   d--;
  }
  else
  if(sup[p]==dem[q])
  {
   sum=sum+c[p][q]*sup[p];
   rf[p]=1;
   cf[q]=1;
   b--;
   d--;
  }
 }
cout<<"

The total cost of the solution is "
<<sum;
 getch();
}