sever.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. let post = [90,400,110];
  2. let potr = [140,300,160];
  3. let n =3;
  4. let m =3;
  5. let vir = m+n-1;
  6. let tarif = [
  7. [ 2, 5, 2],
  8. [ 4, 1, 5],
  9. [ 3, 6, 8]
  10. ];
  11. let tarif1= [
  12. [ 0, 0, 0],
  13. [ 0, 0, 0],
  14. [ 0, 0, 0]
  15. ];
  16. let sum1 =0;
  17. let sum2 =0;
  18. for(let i = 0; i < post.length; i++){
  19. sum1 = sum1+ post[i];
  20. }
  21. for(let i = 0; i < potr.length; i++){
  22. sum2 = sum2+ post[i];
  23. }
  24. if(sum1 == sum2){
  25. console.log("Задача закрытая");
  26. }
  27. else if(sum1 != sum2){
  28. console.log("Задача открытая");
  29. }
  30. let tarif11 = tarif.slice();
  31. let count =0;
  32. let cel =0;
  33. while (post.reduce((acc, val) => acc + val, 0) > 0 && potr.reduce((acc, val) => acc + val, 0) > 0) {
  34. let buffI = 0;
  35. let buffJ = 0;
  36. for (let i = 0; i < tarif.length; i++)
  37. {
  38. for (let j = 0; j < tarif[i].length; j++)
  39. {
  40. if(potr[j]> 0 && post[i]>0)
  41. {
  42. buffJ =j; buffI=i;
  43. }
  44. if (post[buffI] >= potr[buffJ])
  45. {
  46. tarif1[buffI][buffJ] = potr[buffJ];
  47. post[buffI] = post[buffI] - potr[buffJ];
  48. potr[buffJ] = 0;
  49. count++;
  50. }
  51. else if (post[buffI] < potr[buffJ] && post[buffI] !== 0)
  52. {
  53. potr[buffJ] = potr[buffJ] - post[buffI];
  54. tarif1[buffI][buffJ] = post[buffI];
  55. post[buffI] = 0;
  56. count++;
  57. }
  58. }
  59. }
  60. }
  61. for (let i = 0; i < tarif1.length; i++)
  62. {
  63. for (let j = 0; j < tarif1[i].length; j++)
  64. {
  65. if(tarif1[i][j]!==0){
  66. cel =cel+ tarif1[i][j]*tarif11[i][j];
  67. }
  68. }
  69. }
  70. if(count == vir){
  71. console.log("опорный план вырожденный");
  72. }
  73. else{
  74. console.log("опорный план невырожденный");
  75. }
  76. console.log("Целевая функция = " + cel);
  77. console.log("Матрица совершенных поставок:");
  78. for (let i = 0; i < tarif1.length; i++) {
  79. console.log(tarif1[i].join(" \t "));
  80. }
  81. console.log();
  82. function handleFile() {
  83. const fileInput = document.getElementById('csvFileInput');
  84. const file = fileInput.files[0];
  85. const reader = new FileReader();
  86. reader.onload = function(event) {
  87. const content = event.target.result;
  88. processData(content);
  89. };
  90. reader.readAsText(file);
  91. }
  92. function processData(content) {
  93. const lines = content.split('\n');
  94. const header = lines[0].split(';');
  95. let postt = [];
  96. let pottr = [];
  97. let tarif = [];
  98. for (let i = 1; i < lines.length; i++) {
  99. if (lines[i].trim() !== '') {
  100. const values = lines[i].split(';').map(Number);
  101. if (i === 1) {
  102. postt.push(values);
  103. } else if (i === 2) {
  104. pottr.push(values);
  105. } else {
  106. tarif.push(values);
  107. }
  108. }
  109. }
  110. console.log('Первый числовой массив:', postt);
  111. console.log('Второй числовой массив:', pottr);
  112. console.log('Двумерный массив:', tarif);
  113. let n=0;
  114. let m=0;
  115. for(let i =0; i< postt.length;i++){
  116. let s=0;
  117. for(let j =0; j<postt[i].length;j++ ){
  118. s++;
  119. }
  120. n =s;
  121. }
  122. for(let i =0; i< pottr.length;i++){
  123. let ss=0;
  124. for(let j =0; j<pottr[i].length;j++ ){
  125. ss++;
  126. }
  127. m =ss;
  128. }
  129. console.log(n);
  130. console.log(m);
  131. let potr=[];
  132. for(let i =0; i< m;i++){
  133. potr[i]=pottr[0][i];
  134. }
  135. console.log(potr);
  136. let post=[];
  137. for(let i =0; i< n;i++){
  138. post[i]=postt[0][i];
  139. }
  140. let tarif1= [];
  141. for(let i = 0; i < n; i++){
  142. tarif1[i] =[];
  143. for(let j=0; j<m; j++){
  144. tarif1[i][j]=0;
  145. }
  146. }
  147. console.log(post);
  148. console.log(tarif1);
  149. let tar = tarif.slice();
  150. console.log(tar);
  151. }