import numpy as np
# Узлы (32 узла для "Логической лампы")
nodes = [
"T", "AT", "S", # Тезис, Антитезис, Синтез
"A1", "A2", "A3", "A4", # Логические вершины квадрата оппозиции
"M1", "M2", "M3", "M4", # Модальные вершины
"P1", "P2", "P3", "P4", # Вероятностные вершины
# Дополнительные вершины (всего 32, добавляем по необходимости)
]
# Матрица смежности (32x32) для связей
# Пример: T -> S, T -> A1, AT -> S, ...
adj_matrix = np.zeros((32, 32))
# Установим связи (1 = связь существует)
# Пример: Тезис связан с синтезом, и так далее
adj_matrix[0, 2] = 1 # T -> S
adj_matrix[1, 2] = 1 # AT -> S
adj_matrix[0, 3] = 1 # T -> A1
adj_matrix[1, 4] = 1 # AT -> A2
# Задаем начальные значения узлов (1 = истина, 0 = ложь)
values = np.zeros(32)
values[0] = 1 # Тезис истинный
values[1] = 0 # Антитезис ложный
# Логические правила
def calculate_values(adj_matrix, values):
new_values = values.copy()
for i in range(len(values)):
for j in range(len(values)):
if adj_matrix[i, j] == 1: # Есть связь
if values[i] == 1: # Пример: Истинный узел влияет на связанный
new_values[j] = 1 # Применяем правило
elif values[i] == 0: # Пример: Ложный узел влияет
new_values[j] = 0 # Применяем правило
return new_values
# Итеративный расчет до стабилизации
prev_values = values
while True:
new_values = calculate_values(adj_matrix, prev_values)
if np.array_equal(new_values, prev_values):
break
prev_values = new_values
# Вывод финальных значений
result = {nodes[i]: new_values[i] for i in range(len(nodes))}
result
aW1wb3J0IG51bXB5IGFzIG5wCgojINCj0LfQu9GLICgzMiDRg9C30LvQsCDQtNC70Y8gItCb0L7Qs9C40YfQtdGB0LrQvtC5INC70LDQvNC/0YsiKQpub2RlcyA9IFsKICAgICJUIiwgIkFUIiwgIlMiLCAgIyDQotC10LfQuNGBLCDQkNC90YLQuNGC0LXQt9C40YEsINCh0LjQvdGC0LXQtwogICAgIkExIiwgIkEyIiwgIkEzIiwgIkE0IiwgICMg0JvQvtCz0LjRh9C10YHQutC40LUg0LLQtdGA0YjQuNC90Ysg0LrQstCw0LTRgNCw0YLQsCDQvtC/0L/QvtC30LjRhtC40LgKICAgICJNMSIsICJNMiIsICJNMyIsICJNNCIsICAjINCc0L7QtNCw0LvRjNC90YvQtSDQstC10YDRiNC40L3RiwogICAgIlAxIiwgIlAyIiwgIlAzIiwgIlA0IiwgICMg0JLQtdGA0L7Rj9GC0L3QvtGB0YLQvdGL0LUg0LLQtdGA0YjQuNC90YsKICAgICMg0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQtSDQstC10YDRiNC40L3RiyAo0LLRgdC10LPQviAzMiwg0LTQvtCx0LDQstC70Y/QtdC8INC/0L4g0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0LgpCl0KCiMg0JzQsNGC0YDQuNGG0LAg0YHQvNC10LbQvdC+0YHRgtC4ICgzMngzMikg0LTQu9GPINGB0LLRj9C30LXQuQojINCf0YDQuNC80LXRgDogVCAtPiBTLCBUIC0+IEExLCBBVCAtPiBTLCAuLi4KYWRqX21hdHJpeCA9IG5wLnplcm9zKCgzMiwgMzIpKQoKIyDQo9GB0YLQsNC90L7QstC40Lwg0YHQstGP0LfQuCAoMSA9INGB0LLRj9C30Ywg0YHRg9GJ0LXRgdGC0LLRg9C10YIpCiMg0J/RgNC40LzQtdGAOiDQotC10LfQuNGBINGB0LLRj9C30LDQvSDRgSDRgdC40L3RgtC10LfQvtC8LCDQuCDRgtCw0Log0LTQsNC70LXQtQphZGpfbWF0cml4WzAsIDJdID0gMSAgIyBUIC0+IFMKYWRqX21hdHJpeFsxLCAyXSA9IDEgICMgQVQgLT4gUwphZGpfbWF0cml4WzAsIDNdID0gMSAgIyBUIC0+IEExCmFkal9tYXRyaXhbMSwgNF0gPSAxICAjIEFUIC0+IEEyCgojINCX0LDQtNCw0LXQvCDQvdCw0YfQsNC70YzQvdGL0LUg0LfQvdCw0YfQtdC90LjRjyDRg9C30LvQvtCyICgxID0g0LjRgdGC0LjQvdCwLCAwID0g0LvQvtC20YwpCnZhbHVlcyA9IG5wLnplcm9zKDMyKQp2YWx1ZXNbMF0gPSAxICAjINCi0LXQt9C40YEg0LjRgdGC0LjQvdC90YvQuQp2YWx1ZXNbMV0gPSAwICAjINCQ0L3RgtC40YLQtdC30LjRgSDQu9C+0LbQvdGL0LkKCiMg0JvQvtCz0LjRh9C10YHQutC40LUg0L/RgNCw0LLQuNC70LAKZGVmIGNhbGN1bGF0ZV92YWx1ZXMoYWRqX21hdHJpeCwgdmFsdWVzKToKICAgIG5ld192YWx1ZXMgPSB2YWx1ZXMuY29weSgpCiAgICBmb3IgaSBpbiByYW5nZShsZW4odmFsdWVzKSk6CiAgICAgICAgZm9yIGogaW4gcmFuZ2UobGVuKHZhbHVlcykpOgogICAgICAgICAgICBpZiBhZGpfbWF0cml4W2ksIGpdID09IDE6ICAjINCV0YHRgtGMINGB0LLRj9C30YwKICAgICAgICAgICAgICAgIGlmIHZhbHVlc1tpXSA9PSAxOiAgIyDQn9GA0LjQvNC10YA6INCY0YHRgtC40L3QvdGL0Lkg0YPQt9C10Lsg0LLQu9C40Y/QtdGCINC90LAg0YHQstGP0LfQsNC90L3Ri9C5CiAgICAgICAgICAgICAgICAgICAgbmV3X3ZhbHVlc1tqXSA9IDEgICMg0J/RgNC40LzQtdC90Y/QtdC8INC/0YDQsNCy0LjQu9C+CiAgICAgICAgICAgICAgICBlbGlmIHZhbHVlc1tpXSA9PSAwOiAgIyDQn9GA0LjQvNC10YA6INCb0L7QttC90YvQuSDRg9C30LXQuyDQstC70LjRj9C10YIKICAgICAgICAgICAgICAgICAgICBuZXdfdmFsdWVzW2pdID0gMCAgIyDQn9GA0LjQvNC10L3Rj9C10Lwg0L/RgNCw0LLQuNC70L4KICAgIHJldHVybiBuZXdfdmFsdWVzCgojINCY0YLQtdGA0LDRgtC40LLQvdGL0Lkg0YDQsNGB0YfQtdGCINC00L4g0YHRgtCw0LHQuNC70LjQt9Cw0YbQuNC4CnByZXZfdmFsdWVzID0gdmFsdWVzCndoaWxlIFRydWU6CiAgICBuZXdfdmFsdWVzID0gY2FsY3VsYXRlX3ZhbHVlcyhhZGpfbWF0cml4LCBwcmV2X3ZhbHVlcykKICAgIGlmIG5wLmFycmF5X2VxdWFsKG5ld192YWx1ZXMsIHByZXZfdmFsdWVzKToKICAgICAgICBicmVhawogICAgcHJldl92YWx1ZXMgPSBuZXdfdmFsdWVzCgojINCS0YvQstC+0LQg0YTQuNC90LDQu9GM0L3Ri9GFINC30L3QsNGH0LXQvdC40LkKcmVzdWx0ID0ge25vZGVzW2ldOiBuZXdfdmFsdWVzW2ldIGZvciBpIGluIHJhbmdlKGxlbihub2RlcykpfQpyZXN1bHQ=