khuseiN

Untitled

Mar 1st, 2023
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. import random
  2. import numpy as np
  3.  
  4. num_solutions = 14
  5. num_states = 10
  6. c = 0.6
  7.  
  8. # Создание матрицы оценок eij для каждого i-го варианта решения по каждому j-му состоянию
  9. e = [[random.randint(1, 100) for j in range(num_states)] for i in range(num_solutions)]
  10.  
  11. print(e)
  12.  
  13. # Создание матрицы вероятностей pi для каждого i-го варианта решения по каждому j-му состоянию
  14. p = [[round(random.uniform(0, 1), 2) for j in range(num_states)] for i in range(num_solutions)]
  15. for i in range(num_solutions):
  16. # Нормализация вероятностей так, чтобы их сумма по каждому состоянию для конкретного варианта решения не превышала единицы
  17. sum_p = sum(p[i])
  18. if sum_p > 1:
  19. p[i] = [round(j / sum_p, 2) for j in p[i]]
  20.  
  21. # Вычисление критерия Гурвица для каждого i-го варианта решения
  22. g_values = [max([(c * min(e[i])) + ((1 - c) * max(e[i])), ((1 - c) * max(e[i]))]) for i in range(num_solutions)]
  23. #Лучшее решение
  24. best_g = np.argmax(g_values)
  25.  
  26.  
  27. # Вычисление оптимистического критерия для каждого i-го варианта решения
  28. o_values = [max(e[i]) for i in range(num_solutions)]
  29.  
  30. #Лучшее решение
  31. best_o = np.argmax(o_values)
  32.  
  33. # Вывод результатов для каждого критерия выбора
  34. print("Результаты для критерия Гурвица:")
  35. print("Номер решения Оценка")
  36. for i in range(num_solutions):
  37. print("{:>6} {:.2f}".format(i+1, g_values[i]))
  38.  
  39. print('\n Оптимальное решение по критерию Гурвица: решение ', best_g+1)
  40. print("\nРезультаты для оптимистического критерия:")
  41. print("Номер решения Оценка")
  42. for i in range(num_solutions):
  43. print("{:>6} {:.2f}".format(i+1, o_values[i]))
  44. print('\n Оптимальное решение по оптимистическому критерию: решение ', best_o+1)
Advertisement
Add Comment
Please, Sign In to add comment