Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haz lo que hicimos en el aula: Construyendo un sistema experto

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)
1 respuesta

Hola, Alberto! ¿Cómo vas?

Gracias por compartir tus reflexiones y aprendizajes con la comunidad Alura.

Me gustó tu implementación del sistema experto utilizando una base de conocimiento, hechos, reglas e inferencia. La lógica que aplicaste permite que el sistema agregue nuevos hechos cuando se cumplen todas las condiciones, mostrando cómo funciona el razonamiento basado en reglas. Es un buen ejercicio para comprender los fundamentos de los sistemas basados en conocimiento.

Sigue practicando con nuevos escenarios y reglas para fortalecer tu aprendizaje. Dica: prueba agregar más reglas con distintos conjuntos de síntomas y conclusiones. Así podrás observar cómo el motor de inferencia genera diferentes resultados y entender mejor el proceso de deducción.

Cuenta con el apoyo del foro en tu viaje. Saludos y buenos estudios.