Simplex.pdf

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Transcript
  File: /home/jarvis/Documents/shivam207/or_lab/Lab3/simplex.cppPage 1 of 3 //Lab3 Question#include <iostream>#include <iomanip> #include <vector> using   namespace  std; int  min_index( float  *lastrow, int  length){ int  index=0; for  ( int  i=1; i<length; i++){ if  (lastrow[i]<lastrow[index])index=i;} if  (lastrow[index]>=0) return  -1; elsereturn  index;} int  min_col_index( float  *temp, int  length){ int  index=0; for  ( int  i=1; i<length; i++){ if  (temp[i]<temp[index])index=i;} return  index;} void  print( int  n, int  m, float  **A){ int  i, j;cout<< ---------------- <<endl; for  (i=0; i<m; i++){ for  (j=0; j<(n); j++)cout<<setw(10)<<setprecision(5)<<A[i][j];cout<<endl;}// cout<< ---------------- <<endl;} void  simplex( float  **activeA, int  n, int  m, int  *index){ float  lastrow[n+1], *temp; int  i, j, pivot_col=0, pivot_row; bool  stop= true ; for  (i=0; i<n; i++){ if  (activeA[m][i]<0)stop= false ;} if  (stop== true ){cout<<endl<< Optimal Solution is <<activeA[m][n]<<endl; float  *sol_;sol_ = new   float  [m]; for  (i=0; i<m; i++){ if  (index[i]>=0)sol_[index[i]]=activeA[i][n];} for  (i=0; i<m; i++){cout<< x <<i+1<< is <<sol_[i]<<endl;} return ;  File: /home/jarvis/Documents/shivam207/or_lab/Lab3/simplex.cppPage 2 of 3 }pivot_col=min_index(activeA[m], n+1);temp= new   float  [m]; for  (i=0; i<m; i++){ if  (activeA[i][pivot_col]>0)temp[i]=activeA[i][n]/activeA[i][pivot_col]; else temp[i]=1000000;}pivot_row=min_col_index(temp, m);cout<<pivot_row<< <<pivot_col<<endl;index[pivot_row]=pivot_col;//make new table float  pivot=activeA[pivot_row][pivot_col]; for  (i=0; i<=m; i++){ for (j=0; j<=n; j++){ if  (i!= pivot_row && j!= pivot_col){activeA[i][j]=(activeA[i][j]*activeA[pivot_row][pivot_col]-activeA[pivot_row][j]*activeA[i][pivot_col])/activeA[pivot_row][pivot_col];}}} for  (i=0; i<=n; i++)activeA[pivot_row][i]=activeA[pivot_row][i]/pivot; for  (i=0; i<=m; i++)activeA[i][pivot_col]=-activeA[i][pivot_col]/pivot;activeA[pivot_row][pivot_col]=1/pivot;// print(n+1, m+1, activeA);simplex(activeA, n, m, index);} int  main(){ int  n, m, i, j, *sol_index; float  **A, *b, **activeA, *z;cout<< Enter No of Equations : ;cin>>m;cout<< Enter No of Unknwons : ;cin>>n; A= new   float * [m]; activeA = new   float * [m+1];  for  (i=0; i<m; i++){ A[i]= new   float  [n]; activeA[i]= new   float  [n+1]; } activeA[m]= new   float  [n+1]; // arr = new int [n];cout<< Enter the matrix A : \n ; for  (i=0; i<m; i++){ for  (j=0; j<n; j++){cin>>A[i][j];  File: /home/jarvis/Documents/shivam207/or_lab/Lab3/simplex.cppPage 3 of 3 activeA[i][j]=A[i][j];}}cout<< Enter the column vector 'b' : \n ; b= new   float  [m]; for  (i=0; i<m; i++){cin>>b[i];activeA[i][n]=b[i];}cout<< Enter the objective function z :\n ;z= new   float  [n]; for  (i=0; i<n; i++){cin>>z[i];activeA[m][i]=-z[i];}print(n+1, m+1, activeA);sol_index = new   int [m]; for  (i=0; i<m; i++)sol_index[i]=-1;simplex(activeA, n, m, sol_index); return  0;}
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x