Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №3

.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
158.71 Кб
Скачать

ФГБОУ ВО

«Уфимский государственный авиационный технический университет»

Кафедра ТК

ОТЧЕТ

по лабораторной работе № 3

по дисциплине «Теория принятия решения»

Вариант - 2

Выполнил: студенты гр. ИВТ-327Б

Проверил: доцент каф. ТК

Насыров Р.В.

Уфа 2023

Тема работы: МЕТОДЫ ПОСТРОЕНИЯ ГРУППОВОГО РАНЖИРОВАНИЯ В ЗАДАЧАХ ПРИНЯТИЯ РЕШЕНИЙ

Цель работы: Изучение особенностей построения применения методов группового ранжирования в задачах исследования систем управления и принятия решений

Текст программы:

import numpy as np def RezMas(Mas): Mas[int(ex1[i], 16) % 10] += 1 Mas[int(ex2[i], 16) % 10] += 1 Mas[int(ex3[i], 16) % 10] += 1 Mas[int(ex4[i], 16) % 10] += 1 Mas[int(ex5[i], 16) % 10] += 1 Mas[int(ex6[i], 16) % 10] += 1 Mas[int(ex7[i], 16) % 10] += 1 def sumQR(mas1,mas2,mas3,mas4,mas5,mas6,mas7): sum=0 res=np.concatenate(([mas1],[mas2],[mas3],[mas4],[mas5],[mas6],[mas7]),axis=0) for i in range(len(mas1)-1): k=0 for j in range(1,7): sum+=(res[k][i]-res[j][i])**2 #print(res[k][i],"-",res[j][i],"=",res[k][i]-res[j][i]) k+=1 print("Коэффициент Спирмена -----> Rs=1-(6*sum(p1-p2)^2/(n^3-n)=",round(1-(6*sum/(5**3-4)),1)) ex1 = ["a", ">", "b", ">", "c", ">", "d", ">", "e"] ex2 = ["a", ">", "c", ">", "e", ">", "b", ">", "d"] ex3 = ["c", ">", "b", ">", "e", ">", "a", ">", "d"] ex4 = ["a", ">", "b", ">", "c", ">", "e", ">", "d"] ex5 = ["a", ">", "c", ">", "b", ">", "e", ">", "d"] ex6 = ["b", ">", "c", ">", "e", ">", "a", ">", "d"] ex7 = ["b", ">", "d", ">", "c", ">", "e", ">", "a"] for n in range(3): print("\nИтерация №", n+1) ex1R = [0] * 5 ex2R = [0] * 5 ex3R = [0] * 5 ex4R = [0] * 5 ex5R = [0] * 5 ex6R = [0] * 5 ex7R = [0] * 5 res1 = [0] * 5 res2 = [0] * 5 res3 = [0] * 5 res4 = [0] * 5 res5 = [0] * 5 for i in range(0, len(ex1), 2): if i == 0: ex1R[int(ex1[i], 16) % 10] += 1 ex2R[int(ex2[i], 16) % 10] += 1 ex3R[int(ex3[i], 16) % 10] += 1 ex4R[int(ex4[i], 16) % 10] += 1 ex5R[int(ex5[i], 16) % 10] += 1 ex6R[int(ex6[i], 16) % 10] += 1 ex7R[int(ex7[i], 16) % 10] += 1 RezMas(res1) if i == 2: ex1R[int(ex1[i], 16) % 10] += 2 ex2R[int(ex2[i], 16) % 10] += 2 ex3R[int(ex3[i], 16) % 10] += 2 ex4R[int(ex4[i], 16) % 10] += 2 ex5R[int(ex5[i], 16) % 10] += 2 ex6R[int(ex6[i], 16) % 10] += 2 ex7R[int(ex7[i], 16) % 10] += 2 RezMas(res2) if i == 4: ex1R[int(ex1[i], 16) % 10] += 3 ex2R[int(ex2[i], 16) % 10] += 3 ex3R[int(ex3[i], 16) % 10] += 3 ex4R[int(ex4[i], 16) % 10] += 3 ex5R[int(ex5[i], 16) % 10] += 3 ex6R[int(ex6[i], 16) % 10] += 3 ex7R[int(ex7[i], 16) % 10] += 3 RezMas(res3) if i == 6: ex1R[int(ex1[i], 16) % 10] += 4 ex2R[int(ex2[i], 16) % 10] += 4 ex3R[int(ex3[i], 16) % 10] += 4 ex4R[int(ex4[i], 16) % 10] += 4 ex5R[int(ex5[i], 16) % 10] += 4 ex6R[int(ex6[i], 16) % 10] += 4 ex7R[int(ex7[i], 16) % 10] += 4 RezMas(res4) if i == 8: ex1R[int(ex1[i], 16) % 10] += 5 ex2R[int(ex2[i], 16) % 10] += 5 ex3R[int(ex3[i], 16) % 10] += 5 ex4R[int(ex4[i], 16) % 10] += 5 ex5R[int(ex5[i], 16) % 10] += 5 ex6R[int(ex6[i], 16) % 10] += 5 ex7R[int(ex7[i], 16) % 10] += 5 RezMas(res5) REZ = [ex1R[i] + ex2R[i] + ex3R[i] + ex4R[i] + ex5R[i] + ex6R[i] + ex7R[i] for i in range(5)] REZsort = [ex1R[i] + ex2R[i] + ex3R[i] + ex4R[i] + ex5R[i] + ex6R[i] + ex7R[i] for i in range(5)] REZsort.sort() print("--------------------------------------------------") print("Экспертные ранжирования", '|', 'a', 'b', 'c', 'd', 'e') print("--------------------------------------------------") print("\t", *ex1, "|", *ex1R, sep=" ") print("\t", *ex2, "|", *ex2R, sep=" ") print("\t", *ex3, "|", *ex3R, sep=" ") print("\t", *ex4, "|", *ex4R, sep=" ") print("\t", *ex5, "|", *ex5R, sep=" ") print("\t", *ex6, "|", *ex6R, sep=" ") print("\t", *ex7, "|", *ex7R, sep=" ") print("---------------------------------------------------") print("\t\t\tСумма\t ", "|", *REZ, sep=" ") print() print("Итоговое ранжирование ---", end=" ") for i in range(len(REZsort)): for j in range(len(REZ)): if REZsort[i] == REZ[j]: print("> ", hex(j + 10)[2:], end=' ') print() print() sumQR(ex1R, ex2R, ex3R, ex4R, ex5R, ex6R, ex7R) if n==0: ex1 = ["c", ">", "b", ">", "a", ">", "d", ">", "e"] ex2 = ["c", ">", "e", ">", "b", ">", "a", ">", "d"] ex3 = ["c", ">", "b", ">", "e", ">", "a", ">", "d"] ex4 = ["b", ">", "c", ">", "a", ">", "e", ">", "d"] ex5 = ["d", ">", "c", ">", "b", ">", "e", ">", "a"] ex6 = ["b", ">", "c", ">", "e", ">", "a", ">", "d"] ex7 = ["b", ">", "d", ">", "c", ">", "e", ">", "a"] if n==1: ex1 = ["d", ">", "a", ">", "b", ">", "c", ">", "e"] ex2 = ["d", ">", "e", ">", "a", ">", "b", ">", "c"] ex3 = ["d", ">", "a", ">", "e", ">", "b", ">", "c"] ex4 = ["a", ">", "d", ">", "b", ">", "e", ">", "c"] ex5 = ["d", ">", "c", ">", "a", ">", "e", ">", "b"] ex6 = ["a", ">", "d", ">", "e", ">", "b", ">", "c"] ex7 = ["b", ">", "d", ">", "c", ">", "e", ">", "a"]

Реализация :

Коэффициент -0,018<0.7 ранжирования не согласованные

Коэффициент 0,286<0.7 ранжирования не согласованные

Коэффициент 0,357<0.7 ранжирования не согласованные

Вывод:

В ходе выполнения лабораторной работы мы изучили особенности построения применения методов группового ранжирования в задачах исследования систем управления и принятия решения.