Skip to content

Commit 664653e

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent c7cd58f commit 664653e

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

inference_engine_algorithms/forward_chaining.py

+26-21
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33

44
def find_symbols_in_kb(knowledge_base: list[str]) -> dict:
5-
'''
6-
'''
5+
""" """
76
inferred = {}
87

98
for i in range(len(knowledge_base)):
10-
symbols = re.findall(r'[a-zA-Z]', knowledge_base[i])
9+
symbols = re.findall(r"[a-zA-Z]", knowledge_base[i])
1110
for symbol in symbols:
1211
if symbol not in inferred:
1312
inferred[symbol] = False
@@ -16,25 +15,21 @@ def find_symbols_in_kb(knowledge_base: list[str]) -> dict:
1615

1716

1817
def number_of_symbols_in_premise(knowledge_base: list[str]) -> dict:
19-
20-
'''
21-
'''
18+
""" """
2219

2320
count = {}
2421
for clause in knowledge_base:
25-
if(len(clause) != 1):
22+
if len(clause) != 1:
2623
index = clause.find("=>")
2724
premise = clause[:index]
28-
letters = ''.join(e for e in premise if e.isalpha())
25+
letters = "".join(e for e in premise if e.isalpha())
2926
count[premise] = len(letters)
3027

3128
return count
3229

3330

3431
def get_known_facts(knowledge_base: list[str]) -> list[str]:
35-
36-
'''
37-
'''
32+
""" """
3833
facts = []
3934
for clause in knowledge_base:
4035
if len(clause) == 1:
@@ -43,17 +38,15 @@ def get_known_facts(knowledge_base: list[str]) -> list[str]:
4338
return facts
4439

4540

46-
47-
48-
def forward_chianing(knowledge_base: list[str], query:str) -> bool:
49-
41+
def forward_chianing(knowledge_base: list[str], query: str) -> bool:
5042
count = number_of_symbols_in_premise(knowledge_base)
5143
inferred = find_symbols_in_kb(knowledge_base)
5244
queue = get_known_facts(knowledge_base)
5345

54-
while(len(queue) > 0):
46+
while len(queue) > 0:
5547
p = queue.pop()
56-
if p == query: return True
48+
if p == query:
49+
return True
5750
if inferred[p] == False:
5851
inferred[p] = True
5952
for clause in knowledge_base:
@@ -67,10 +60,22 @@ def forward_chianing(knowledge_base: list[str], query:str) -> bool:
6760
return False
6861

6962

70-
7163
if __name__ == "__main__":
72-
73-
kb = ["p => q", "q => r", "r => p", "s => t", "u => v", "v => w", "w => u", "a", "b", "c" , "w" , "u&q=>r", "q"]
64+
kb = [
65+
"p => q",
66+
"q => r",
67+
"r => p",
68+
"s => t",
69+
"u => v",
70+
"v => w",
71+
"w => u",
72+
"a",
73+
"b",
74+
"c",
75+
"w",
76+
"u&q=>r",
77+
"q",
78+
]
7479

7580
result = forward_chianing(kb, "p")
76-
print(result)
81+
print(result)

0 commit comments

Comments
 (0)