Advertisement
Guest User

Untitled

a guest
May 23rd, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. void simplex :: resolver (){
  2.  
  3. int menores = 2;
  4.  
  5. while(menores != 0){
  6.  
  7. int entra = 0;
  8. fracao nula;
  9. for (size_t i =1; i < n+m; i++){
  10. if (linhaFO[entra]<nula && linhaFO[i]<nula){
  11. if (linhaFO[entra] > linhaFO[i]) entra = i;
  12. }
  13. else if (linhaFO[entra]>nula && linhaFO[i]<nula){
  14. entra = i;
  15. }
  16.  
  17. }
  18. int escolhidos =0;
  19. int sai =0;
  20. for (size_t i =0; i<m; i++){
  21. int escolhido;
  22. while (escolhidos = 0){
  23. if (quadro[i][entra] > nula) {
  24. sai = i;
  25. escolhidos ++;
  26. }
  27. }
  28. }
  29.  
  30. for (size_t i =0; i<m; i++){
  31.  
  32. if (quadro [i][entra] >nula){
  33.  
  34. //cout << "quadro [i][entra] = " << quadro [i][entra] << endl;
  35. if (valores[sai]/quadro[sai][entra] > valores[i]/quadro [i][entra]) sai = i;
  36. //cout << "valores / quadro = " << valores[sai]/quadro[sai][entra] << " e valores[i]/quadro [i][entra] = " << valores[i]/quadro [i][entra] << endl;
  37. }
  38. }
  39.  
  40. fracao pivot;
  41. pivot = quadro[sai][entra];
  42. //cout << " sai = " << sai + 1 << endl;
  43. //cout << " entra = " << entra + 1 << endl;
  44. //cout << "o pivot e " << pivot << "!!!!! " << endl;
  45.  
  46. VB [sai] = entra + 1;
  47. for (size_t i =0; i<m; i++){
  48. //cout << " VB [i] = " << VB[i] << endl;
  49. }
  50.  
  51. Z = Z - ((valores[sai]*linhaFO[entra])/pivot);
  52. //cout << " Z = " << Z << endl ;
  53.  
  54. for (size_t i = 0; i < m+n; i++){
  55. if (int (i) != entra){
  56. //cout << "linhaFO [i]" << linhaFO[i] << " - quadro[sai][i] " << quadro[sai][i] << " * linhaFO[entra]" << linhaFO[entra] << " / PIVOT " << pivot<< endl;
  57. linhaFO[i] = linhaFO [i] - ((quadro[sai][i]*linhaFO[entra])/pivot);
  58. }
  59. }
  60. linhaFO[entra]=nula;
  61. //cout << "linhaFO[entra]" << linhaFO[entra];
  62. for (size_t i = 0; i < m+n; i++){
  63. //cout << "linhaFO[i] = "<< linhaFO[i] << endl ;
  64. }
  65.  
  66. for (size_t i = 0; i < m; i++){
  67. if (int (i) != sai){
  68. valores [i] = valores [i] - ((quadro[i][entra]*valores[sai])/pivot);
  69. //cout << "valores [i] = " << valores[i] << endl;
  70. }
  71. }
  72.  
  73. for (size_t i = 0; i < m; i++){
  74. for (size_t j=0; j < n+m; j++){
  75. if (int(i)!= sai && int(j)!= entra) {
  76. quadro [i][j] = quadro [i][j] - ((quadro[i][entra]*quadro[sai][j])/pivot);
  77. }
  78. }
  79. }
  80.  
  81. for (size_t i = 0; i < m; i++){
  82. if (int (i) != sai) quadro [i][entra] = nula;
  83. }
  84.  
  85. for (size_t i= 0; i < m+n; i++){
  86. quadro [sai][i] = quadro[sai][i]/pivot;
  87. }
  88.  
  89. for (size_t i = 0; i < m; i++){
  90. for (size_t j=0; j < n+m; j++){
  91. cout << "quadro[" << i+1 << "][" << j+1 << "] = " << quadro[i][j] << endl;
  92. }
  93. }
  94.  
  95. for (size_t i= 0; i < m+n; i++){
  96. //cout << "quadro [sai][i]/pivot = " << quadro [sai][i] << endl;
  97. }
  98. valores[sai] = valores[sai]/pivot;
  99. //cout << "valores [sai] = " << valores [sai] << endl;
  100.  
  101.  
  102. //fracao nula;
  103. menores=0;
  104. for (size_t i =0; i < n+m; i++){
  105. if (linhaFO [i] < nula) menores++;
  106. }
  107. cout << "menores = " << menores << endl;
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement