Para esta atividade, criei um sistema especialista simples em Python para auxiliar no diagnóstico de condições respiratórias com base nos sintomas informados pelo paciente.
class BaseDeConhecimento:
def __init__(self):
self.fatos = set()
self.regras = []
def adicionar_fato(self, fato):
self.fatos.add(fato)
def adicionar_regra(self, condicoes, conclusao):
self.regras.append((condicoes, conclusao))
class SistemaEspecialista:
def __init__(self, base_conhecimento):
self.base = base_conhecimento
def inferir(self):
novos_diagnosticos = True
while novos_diagnosticos:
novos_diagnosticos = False
for condicoes, conclusao in self.base.regras:
if all(condicao in self.base.fatos for condicao in condicoes):
if conclusao not in self.base.fatos:
self.base.adicionar_fato(conclusao)
print(f"Diagnóstico inferido: {conclusao}")
novos_diagnosticos = True
# Criando a base de conhecimento
base = BaseDeConhecimento()
# Adicionando fatos informados pelo paciente
base.adicionar_fato("febre alta")
base.adicionar_fato("tosse")
base.adicionar_fato("dificuldade para respirar")
# Adicionando regras
base.adicionar_regra(
["febre alta", "tosse"],
"infecção respiratória"
)
base.adicionar_regra(
["infecção respiratória", "dificuldade para respirar"],
"pneumonia"
)
# Criando e executando o sistema especialista
sistema = SistemaEspecialista(base)
sistema.inferir()
print("\nFatos finais:")
for fato in base.fatos:
print("-", fato)
Nesse exemplo, o paciente informou febre alta, tosse e dificuldade para respirar. Primeiro, o sistema identifica uma possível infecção respiratória. Depois, como também existe dificuldade para respirar, ele conclui que pode haver pneumonia.
Assim, o sistema usa fatos e regras para chegar a diagnósticos de forma lógica.