simplex.c
Upload User: gzelex
Upload Date: 2007-01-07
Package Size: 707k
Code Size: 2k
Development Platform:

MultiPlatform

  1. #include <LEDA/simplex.h>
  2. main()
  3. {
  4.   cout << "Maximize               n";
  5.   cout << "                  |x1| n";
  6.   cout << "                  |x2| n";
  7.   cout << "                  |. | n";
  8.   cout << "(c1 c2 ...  cn) x |. | n";
  9.   cout << "                  |. | n";
  10.   cout << "                  |. | n";
  11.   cout << "                  |xn| n";
  12.   newline;
  13.   cout << "constraints:n";
  14.   newline;
  15.   cout << "     <-------  n  -------->                    n";
  16.   cout << "                                               n";
  17.   cout << "    |.......................|   |x1|       |b1|n";
  18.   cout << "    |.......................|   |x2|       |b2|n";
  19.   cout << "  i |.......         .......|   |. |  <=   |. |n";
  20.   cout << "    |.......         .......|   |. |       |. |n";
  21.   cout << "    |.......         .......|   |. |       |. |n";
  22.   cout << "                                               n";
  23.   cout << "    |.......         .......|   |. |       |. |n";
  24.   cout << "    |.......         .......|   |. |       |. |n";
  25.   cout << "  j |.......    A    .......| x |. |  >=   |. |n";
  26.   cout << "    |.......         .......|   |. |       |. |n";
  27.   cout << "    |.......         .......|   |. |       |. |n";
  28.   cout << "                                               n";
  29.   cout << "    |.......         .......|   |. |       |. |n";
  30.   cout << "    |.......         .......|   |. |       |. |n";
  31.   cout << "  k |.......         .......|   |. |  ==   |. |n";
  32.   cout << "    |.......................|   |. |       |. |n";
  33.   cout << "    |.......................|   |xm|       |bm|n";
  34.   newline;
  35.   newline;
  36.   int n = read_int("number of variables n = ");
  37.   newline;
  38.   int i = read_int("number of <= relations i = ");
  39.   int j = read_int("number of >= relations j = ");
  40.   int k = read_int("number of == equations k = ");
  41.   int m = i+j+k;
  42.   matrix A(m,n);
  43.   vector b(m);
  44.   vector c(n);
  45.   cout << string("(%d x %d) - Matrix A:n",m,n);
  46.   for (int z = 0 ; z<m ; z++ )
  47.   { if (z < i) 
  48.        cout << string("<= row %d : ",z);
  49.     else 
  50.        if (z < i+j) 
  51.           cout << string(">= row %d : ",z);
  52.        else 
  53.           cout << string("== row %d : ",z);
  54.     for (int s = 0 ; s<n ; s++ ) cin >> A(z,s);
  55.    }
  56.   newline;
  57.   cout << string("%d-vector b: ",m);
  58.   cin >> b;
  59.   newline;
  60.   cout << string("%d-vector c: ",n);
  61.   cin >> c;
  62.   newline;
  63.   list<matrix> S = SIMPLEX(A,i,j,k,b,c);
  64.   if (!S.empty())
  65.     S.print ();
  66.   else
  67.     cout << "Keine Loesung !";
  68. }