Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Основний код '''
- matrix = [
- [1, 0.3, 0.8, 0.5, 1],
- [0.6, 1, 0.7, 0.3, 0.7],
- [0.6, 0.7, 1, 0.9, 0.1],
- [0.3, 1, 0.6, 1, 0.4],
- [0.2, 0.2, 0.1, 0.1, 1],
- ]
- matrixx = [
- [1, 0.4, 0.5, 0.7, 0.6],
- [0.5, 1, 0.9, 0.4, 1],
- [0, 0.7, 1, 0.3, 0.7],
- [0.5, 0.3, 0.6, 1, 0.7],
- [1, 0.9, 0.8, 0.3, 1],
- ]
- print("Вихідна матриця R1: \n")
- for row in matrix: # Вивід матриці в консоль
- print(row)
- print() # Перехід на новий рядок
- print("Вихідна матриця R2: \n")
- for row in matrixx: # Вивід матриці в консоль
- print(row)
- print() # Перехід на новий рядок
- print('alpha1 * R1:')
- matrix1 = [[0 for _ in range(len(matrix))] for _ in range(len(matrix[0]))]
- for i in range(len(matrix)):
- for j in range(len(matrix[0])):
- matrix1[i][j] = matrix[i][j] * 0.5
- for row in matrix1: # Вивід матриці в консоль
- print(row)
- print()
- print('alpha2 * R2:')
- matrix2 = [[0 for _ in range(len(matrixx))] for _ in range(len(matrixx[0]))]
- for i in range(len(matrixx)):
- for j in range(len(matrixx[0])):
- matrix2[i][j] = matrixx[i][j] * 0.5
- for row in matrix2: # Вивід матриці в консоль
- print(row)
- print()
- print('Матриця Q1:')
- q_matrix = [[0 for _ in range(len(matrixx))] for _ in range(len(matrixx[0]))]
- for i in range(len(matrixx)):
- for j in range(len(matrixx[0])):
- q_matrix[i][j] = min(matrix1[i][j], matrix2[i][j])
- for row in q_matrix: # Вивід матриці в консоль
- print(row)
- print()
- transposed_matrix = [[0 for _ in range(len(matrix1))] for _ in range(len(matrix1[0]))]
- # Транспонування матриці
- for i in range(len(q_matrix)):
- for j in range(len(q_matrix[0])):
- transposed_matrix[j][i] = q_matrix[i][j]
- print('Обернена матриця Q1 \n')
- for row in transposed_matrix: # Вивід матриці в консоль
- print(row)
- print()
- ''' Матриця строгого відношення '''
- strong_matrix = [[0 for _ in range(len(matrix[0]))] for _ in range(len(matrix))]
- # Віднімання елементів матриці matrix від елементів матриці transposed_matrix
- for i in range(len(matrix)):
- for j in range(len(matrix[0])):
- if q_matrix[i][j] - transposed_matrix[i][j] < 0:
- strong_matrix[i][j] = 0
- else:
- strong_matrix[i][j] = round(q_matrix[i][j] - transposed_matrix[i][j], 2)
- print("Матриця строгого відношення Q1: \n")
- for row in strong_matrix: # Вивід матриці в консоль
- print(row)
- print()
- non_dominated1 = []
- columns = [[strong_matrix[j][i] for j in range(len(strong_matrix))] for i in range(len(strong_matrix[0]))]
- for column in columns:
- max_value = max(column)
- non_dominated1.append(1 - max_value)
- print("Підмножина недомінованих значень myu(Q1): ", non_dominated1)
- print()
- print('Матриця Q2:')
- q_matrix2 = [[0 for _ in range(len(matrixx))] for _ in range(len(matrixx[0]))]
- for i in range(len(matrixx)):
- for j in range(len(matrixx[0])):
- q_matrix2[i][j] = round(matrix1[i][j] + matrix2[i][j],2)
- for row in q_matrix2: # Вивід матриці в консоль
- print(row)
- print()
- print('Обернена матриця Q2\n')
- transposed_matrix2 = [[0 for _ in range(len(matrix1))] for _ in range(len(matrix1[0]))]
- # Транспонування матриці
- for i in range(len(q_matrix2)):
- for j in range(len(q_matrix2[0])):
- transposed_matrix2[j][i] = q_matrix2[i][j]
- for row in transposed_matrix2: # Вивід матриці в консоль
- print(row)
- print()
- strong_matrix2 = [[0 for _ in range(len(matrix[0]))] for _ in range(len(matrix))]
- # Віднімання елементів матриці matrix від елементів матриці transposed_matrix
- for i in range(len(matrix)):
- for j in range(len(matrix[0])):
- if q_matrix2[i][j] - transposed_matrix2[i][j] < 0:
- strong_matrix2[i][j] = 0
- else:
- strong_matrix2[i][j] = round(q_matrix2[i][j] - transposed_matrix2[i][j], 2)
- print("Матриця строгого відношення Q2: \n")
- for row in strong_matrix2: # Вивід матриці в консоль
- print(row)
- print()
- non_dominated2 = []
- columns = [[strong_matrix2[j][i] for j in range(len(strong_matrix2))] for i in range(len(strong_matrix2[0]))]
- for column in columns:
- max_value = max(column)
- non_dominated2.append(1 - max_value)
- print("Підмножина недомінованих значень myu(Q2): ", non_dominated2)
- print()
- result_non_dominated = []
- for i in range(len(non_dominated1)):
- result_non_dominated.append(min(non_dominated1[i], non_dominated2[i]))
- print('Переріз підмножин myu(Q1) та myu(Q2): ', result_non_dominated)
Advertisement
Add Comment
Please, Sign In to add comment