Engee 文档
Notebook

二进制逻辑

在本例中,我们将使用 Julia 编程语言编写的方程及其在模型中的实现,探索二元逻辑在解决逻辑问题中的应用。

二元逻辑是一种基于两种状态的逻辑形式:真(1)和假(0)。它用于描述和解决结果可以用 "是 "或 "否 "来表示的问题。二元逻辑广泛应用于计算机系统、数字电子技术和编程。

逻辑问题是指需要应用 AND、OR、NOT 等逻辑运算及其组合才能解决的问题。这类问题经常出现在自动化、数字电路设计和编程领域。

该示例演示了如何将理论框架(Julia 中的逻辑方程)与模型的实际实现相结合,让您可以直观地探索和分析解决逻辑问题的过程。

二元方程描述

让我们指定系统的状态,在本例中为三个: 𝐴、𝐵 和 𝐶。在这种情况下,状态 𝐴将随机确定:如果一个随机值为 𝑋 大于 0.5,则 𝐴 为真,否则为假。

In [ ]:
X = rand()
println("X = $(X)")
A = X > 0.5
println("A = $(A)")
X = 0.7960830917866893
A = true
In [ ]:
B = false
C = true
println("B = $(B)")
println("C = $(C)")
B = false
C = true

现在让我们来看看等式的描述。 假设我们的逻辑由以下等式定义:Z = ((A 和 B) 或 (C 和 B)).

In [ ]:
Z = ((A && B) || (C && B))
println("Z = $(Z)")
Z = false

现在,让我们用这个等式建立一个模型,并将模拟结果与模型中得到的结果进行比较。 image.png

辅助函数

In [ ]:
# Подключение вспомогательной функции запуска модели.
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

二进制逻辑建模

In [ ]:
run_model("Logical_Operator") # Запуск модели.
Z_model = collect(Z_model)
println("Z_model = $(Z_model.value[1])")
Building...
Progress 100%
Progress 100%
Z_model = false

让我们通过比较模拟结果和 Engee 计算结果来进行验证。

In [ ]:
println((Z_model.value[1]) == Z ? "Проверка пройдена" : "Результаты не совпали")
Проверка пройдена

结论

通过研究,我们以在朱莉娅和模型中实现的方程为例,演示了二进制逻辑的操作。系统的指定状态(𝐴, 𝐵, 𝐶)被正确地计算出来,逻辑运算也按描述进行。验证结果表明,模型和代码相匹配,系统运行无误。

示例中使用的块