khuseiN

Untitled

Mar 1st, 2023
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. import random
  2.  
  3. # Задаем константы
  4. n = 14 # количество вариантов решения
  5. m = 10 # количество состояний
  6. c = 0.6 # коэффициент критерия Гурвица
  7.  
  8. # Генерируем случайные значения для eij
  9. e = [[random.randint(1, 100) for j in range(m)] for i in range(n)]
  10.  
  11. # Генерируем случайные значения для вероятностей появления состояний
  12. p = [[round(random.uniform(0, 1), 2) for j in range(m)] for i in range(n)]
  13. for i in range(n):
  14. s = sum(p[i])
  15. for j in range(m):
  16. p[i][j] /= s
  17.  
  18. # Функция для расчета критерия Гурвица
  19. def gurwitz_crit(e, c):
  20. max_e = max(e)
  21. min_e = min(e)
  22. return c * max_e + (1 - c) * min_e
  23.  
  24. # Функция для выбора оптимального решения по критерию Гурвица
  25. def gurwitz_choice(e, c):
  26. n = len(e)
  27. max_crit = -1
  28. opt_choice = -1
  29. for i in range(n):
  30. crit = gurwitz_crit(e[i], c)
  31. if crit > max_crit:
  32. max_crit = crit
  33. opt_choice = i
  34. return opt_choice
  35.  
  36. # Функция для выбора оптимального решения по оптимистическому критерию
  37. def optimistic_choice(e):
  38. n = len(e)
  39. max_crit = -1
  40. opt_choice = -1
  41. for i in range(n):
  42. crit = max(e[i])
  43. if crit > max_crit:
  44. max_crit = crit
  45. opt_choice = i
  46. return opt_choice
  47.  
  48. # Выбираем оптимальное решение по каждому критерию
  49. gurwitz_opt = gurwitz_choice(e, c)
  50. optimistic_opt = optimistic_choice(e)
  51.  
  52. # Выводим результаты
  53. print("Результаты выбора оптимального решения:")
  54. print(f"Критерий Гурвица: вариант {gurwitz_opt}")
  55. print(f"Оптимистический критерий: вариант {optimistic_opt}")
  56.  
Advertisement
Add Comment
Please, Sign In to add comment