/// <summary> /// Estaqblece un nuevo Hecho en el consecuentes /// </summary> /// <param name="hecho">Objeto tipo hecho que se va a agregar</param> public void agregarHechoAlConsecuente(Hecho hecho) { consecuente = new DatosHechos() { id_hecho = hecho.id_hecho, nombre_hecho = "" + hecho, estado_hecho = false, hecho_establecido = false }; }
/// <summary> /// Método que limpia los atributos asociados al proceso de inferencia /// </summary> public void limpiarReglaParaInferencia() { consecuente.estado_hecho = false; consecuente.hecho_establecido = false; for (int i = 0; i < antecedentes.Count; i++) { DatosHechos aux = (DatosHechos)antecedentes[i]; aux.estado_hecho = false; aux.hecho_establecido = false; antecedentes[i] = aux; } _regla_validada = false; }
/// <summary> /// ToString modificado /// </summary> /// <returns>Regla</returns> public override string ToString() { string retorno = "SI "; for (int i = 0; i < antecedentes.Count; i++) { if (i != 0) { retorno += " Y "; } DatosHechos datos = (DatosHechos)antecedentes[i]; retorno += datos.nombre_hecho; } retorno += " ENTONCES " + consecuente.nombre_hecho; return(retorno); }
/// <summary> /// Método que elimina un hecho de los antecedentes /// </summary> /// <param name="id_hecho">id del hecho a eliminar</param> public void eliminarAntecedente(string id_hecho) { object encontrado = null; foreach (object item in antecedentes) { DatosHechos datos_hecho = (DatosHechos)item; if (datos_hecho.id_hecho.Equals(id_hecho)) { encontrado = item; } } if (encontrado != null) { antecedentes.Remove(encontrado); } }
/// <summary> /// Se agrega un nuevo Hecho a lista de antecedentes /// </summary> /// <param name="hecho">Objeto tipo hecho que se va a agregar</param> public bool agregarHechoAlAntecedente(Hecho hecho) { //tod comprobar hecho no existente if (consultarAntecendente(hecho.id_hecho)) { return(false); } DatosHechos datos_hecho = new DatosHechos() { id_hecho = hecho.id_hecho, nombre_hecho = "" + hecho, estado_hecho = false, hecho_establecido = false }; antecedentes.Add(datos_hecho); return(true); }
/// <summary> /// Método que cambia el estado del hecho en la regla ya sea en antecedente o consecuente /// </summary> /// <param name="id_hecho">id del Hecho a modificar</param> /// <param name="estado_hecho">Estado del hecho</param> public void cambiarEstadoHecho(string id_hecho, bool estado_hecho) { if (consecuente.id_hecho.Equals(id_hecho)) { consecuente.estado_hecho = estado_hecho; consecuente.hecho_establecido = true; return; } for (int i = 0; i < antecedentes.Count; i++) { DatosHechos aux = (DatosHechos)antecedentes[i]; if (aux.id_hecho.Equals(id_hecho)) { aux.estado_hecho = estado_hecho; aux.hecho_establecido = true; antecedentes[i] = aux; return; } } }
/// <summary> /// Método que elimina el hecho consecuente de la regla /// </summary> public void eliminarConsecuente() { consecuente = new DatosHechos(); }