DmitrMakeev commited on
Commit
7aed5e9
·
verified ·
1 Parent(s): 109d859

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -14
app.py CHANGED
@@ -707,6 +707,11 @@ def nutri_call():
707
 
708
 
709
 
 
 
 
 
 
710
 
711
 
712
  # Глобальные параметры
@@ -773,11 +778,14 @@ class NutrientCalculator:
773
  # Ограничения: количество удобрений >= 0
774
  bounds = [(0, None) for _ in fertilizer_names]
775
 
776
- # Целевая функция: минимизировать сумму отклонений
777
- c = np.ones(len(fertilizer_names))
 
 
778
 
779
  # Решение системы уравнений с ограничениями
780
- result = linprog(c, A_eq=A, b_eq=B, bounds=bounds, method='highs')
 
781
 
782
  if not result.success:
783
  raise ValueError("Не удалось найти решение с текущими ограничениями.")
@@ -818,17 +826,6 @@ if __name__ == "__main__":
818
  except Exception as e:
819
  print(f"Критическая ошибка: {str(e)}")
820
 
821
- if __name__ == "__main__":
822
- try:
823
- calculator = NutrientCalculator()
824
- results = calculator.calculate()
825
- if results:
826
- print(calculator.generate_report(results))
827
- else:
828
- print("Решение не найдено.")
829
- except Exception as e:
830
- print(f"Критическая ошибка: {str(e)}")
831
-
832
 
833
 
834
 
 
707
 
708
 
709
 
710
+
711
+
712
+ from tabulate import tabulate
713
+ import numpy as np
714
+ from scipy.optimize import linprog
715
 
716
 
717
  # Глобальные параметры
 
778
  # Ограничения: количество удобрений >= 0
779
  bounds = [(0, None) for _ in fertilizer_names]
780
 
781
+ # Добавляем допустимый перебор (до 10%)
782
+ tolerance = 0.10
783
+ B_max = B * (1 + tolerance) # Максимальные значения с учетом допуска
784
+ B_min = B * (1 - tolerance) # Минимальные значения с учетом допуска
785
 
786
  # Решение системы уравнений с ограничениями
787
+ c = np.ones(len(fertilizer_names)) # Минимизируем сумму отклонений
788
+ result = linprog(c, A_ub=A, b_ub=B_max, A_eq=A, b_eq=B, bounds=bounds, method='highs')
789
 
790
  if not result.success:
791
  raise ValueError("Не удалось найти решение с текущими ограничениями.")
 
826
  except Exception as e:
827
  print(f"Критическая ошибка: {str(e)}")
828
 
 
 
 
 
 
 
 
 
 
 
 
829
 
830
 
831