Бинарная логика¶
В данном примере мы исследуем применение бинарной логики для решения логических задач, используя уравнение, написанное на языке программирования Julia, и его реализацию в модели.
Бинарная логика – это форма логики, основанная на работе с двумя состояниями: истина (1) и ложь (0). Она используется для описания и решения задач, где результаты можно выразить в терминах «да» или «нет». Бинарная логика широко применяется в компьютерных системах, цифровой электронике и программировании.
Логические задачи – это задачи, решение которых связано с применением логических операций, таких как «И» (AND), «ИЛИ» (OR), «НЕ» (NOT) и их комбинаций. Такие задачи часто возникают в области автоматизации, проектирования цифровых схем и программирования.
Пример демонстрирует, как можно соединить теоретическую основу (логическое уравнение на Julia) с её практической реализацией в моделях, позволяя наглядно исследовать и анализировать процесс решения логических задач.
Описание бинарного уравнения¶
Зададим состояния нашей системы, которых в данном случае будет три: 𝐴, 𝐵 и 𝐶. При этом состояние 𝐴 будет определяться случайным образом: если случайное значение 𝑋 больше 0.5, то 𝐴 истина, иначе ложь.
X = rand()
println("X = $(X)")
A = X > 0.5
println("A = $(A)")
B = false
C = true
println("B = $(B)")
println("C = $(C)")
Теперь перейдём к описанию уравнения. Предположим, что наша логика определяется следующим уравнением: Z = ((A and B) or (C and B)).
Z = ((A && B) || (C && B))
println("Z = $(Z)")
Теперь по этому уравнению построим модель и сравним результаты моделирования и результаты, полученные в модели.
Вспомогательные функции¶
# Подключение вспомогательной функции запуска модели.
function run_model( name_model)
Path = (@__DIR__) * "/" * name_model * ".engee"
if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
model = engee.open( name_model ) # Открыть модель
model_output = engee.run( model, verbose=true ); # Запустить модель
else
model = engee.load( Path, force=true ) # Загрузить модель
model_output = engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
end
sleep(5)
return model_output
end
Моделирование бинарной логики¶
run_model("Logical_Operator") # Запуск модели.
Z_model = collect(Z_model)
println("Z_model = $(Z_model.value[1])")
Выполним проверку, сравнив результаты моделирования и результаты, полученные при расчётах в Engee.
println((Z_model.value[1]) == Z ? "Проверка пройдена" : "Результаты не совпали")
Вывод¶
В результате исследования была продемонстрирована работа бинарной логики на примере уравнения, реализованного на Julia и в модели. Заданные состояния системы (𝐴, 𝐵, 𝐶) корректно отрабатываются, а логические операции выполняются согласно описанию. Проверка показала, что модель и код совпадают, и система функционирует без ошибок.