AI人工智能 邏輯編程的例子

2020-09-23 16:11 更新

以下是一些可以通過邏輯編程解決的例子 -

匹配數(shù)學(xué)表達(dá)式

實際上,我們可以通過使用邏輯編程以非常有效的方式找到未知值。 以下 Python 代碼用于匹配數(shù)學(xué)表達(dá)式 -

考慮先導(dǎo)入下列軟件包 -

from kanren import run, var, fact
from kanren.assoccomm import eq_assoccomm as eq
from kanren.assoccomm import commutative, associative

需要定義要使用的數(shù)學(xué)運算 -

add = 'add'
mul = 'mul'

加法和乘法都是交互進(jìn)程。 因此,我們需要指定它,這可以按照以下方式完成 -

fact(commutative, mul)
fact(commutative, add)
fact(associative, mul)
fact(associative, add)

定義變量是強制性的; 這可以如下完成 -

a, b = var('a'), var('b')

需要將表達(dá)式與原始模式相匹配。有以下原始模式,基礎(chǔ)是(5 + a)* b-

Original_pattern = (mul, (add, 5, a), b)

有以下兩個表達(dá)式來匹配原始模式 -

exp1 = (mul, 2, (add, 3, 1))
exp2 = (add,5,(mul,8,1))

輸出可以使用以下命令打印 -

print(run(0, (a,b), eq(original_pattern, exp1)))
print(run(0, (a,b), eq(original_pattern, exp2)))

運行此代碼后,將得到以下輸出 -

((3,2))
()

第一個輸出表示ab的值。 第一個表達(dá)式匹配原始模式并返回ab的值,但第二個表達(dá)式與原始模式不匹配,因此沒有返回任何內(nèi)容。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號