class BaseDeConocimiento:
def __init__(self):
self.hechos = []
self.reglas = []
def agregar_hecho(self, hecho):
self.hechos.append(hecho)
def agregar_regla(self, condicion, conclusion):
self.reglas.append((condicion, conclusion))
class SistemaExperto:
def __init__(self, base_conocimiento):
self.base_conocimiento = base_conocimiento
def inferir(self):
nuevos_hechos = True
while nuevos_hechos:
nuevos_hechos = False
for condicion, conclusion in self.base_conocimiento.reglas:
if all(hecho in self.base_conocimiento.hechos for hecho in condicion):
if conclusion not in self.base_conocimiento.hechos:
self.base_conocimiento.hechos.append(conclusion)
nuevos_hechos = True
# Creando la base de conocimiento
base = BaseDeConocimiento()
# Agregando hechos
base.agregar_hecho("dolor de cabeza intenso")
base.agregar_hecho("dolor en el pecho o palpitaciones")
base.agregar_hecho("dificultad para respirar")
base.agregar_hecho("visión borrosa o cambios en la vista")
base.agregar_hecho("mareos, vértigo o confusión")
base.agregar_hecho("sangrado nasal")
# Agregando reglas
base.agregar_regla(["dolor de cabeza intenso", "dolor en el pecho o palpitaciones", "dificultad para respirar", "visión borrosa o cambios en la vista", "mareos, vértigo o confusión", "sangrado nasal"], "Presión Alta")
# Creando el sistema experto
sistema = SistemaExperto(base)
# Ejecutando la inferencia
sistema.inferir()
# Mostrando los hechos actualizados
print("Hechos inferidos:")
print(base.hechos)