Пример #1
0
        /// <summary>
        /// Método para mostrar el modulo de justificación de la inferencia
        /// </summary>
        private void mostrarModuloDeJustificación()
        {
            dialogo = new FormDialogoPanel(ventana_justificacion);
            List <string> log = new List <string>();

            if (tipo_de_encadenamiento == ENCADENAMIENTO_HACIA_ATRAS)
            {
                log = motor_atras.loggeo_inferencia;
            }
            else
            {
                log = motor_adelante.loggeo_inferencia;
            }
            for (int i = 0; i < log.Count; i++)
            {
                string texto = _procesador_log_inferencia.ProcesarLineaDeLoggeo(log[i]);
                if (texto != null)
                {
                    ventana_justificacion.agregarLineaLog(texto);
                }
            }

            // ventana_justificacion.agregarLineaLog(log[i]);
            dialogo.FormClosing += dialogo_justificacion_FormClosing;
            ventana_justificacion.evento_guardar       += ventana_justificacion_evento_guardar;
            ventana_justificacion.evento_ventana_lista += evento_ventana_respuesta_lista;
            dialogo.ShowDialog(ventana_padre);
            dialogo = null;
        }
Пример #2
0
        int[] motor_inferencia_evento_confimar_hecho(string id_hecho, string id_regla)
        {
            Regla    regla    = base_conocimiento.leerRegla(id_regla);
            Hecho    hecho    = base_conocimiento.leerHecho(id_hecho);
            Variable variable = base_conocimiento.leerVariable(hecho.id_variable);

            string[] lista_de_antecedentes = regla.listarAntecedentes();
            Hecho[]  hechos_antecedente    = new Hecho[lista_de_antecedentes.Length];
            for (int i = 0; i < lista_de_antecedentes.Length; i++)
            {
                hechos_antecedente[i] = base_conocimiento.leerHecho(lista_de_antecedentes[i]);
            }



            dialogo              = new FormDialogoPanel(ventana_validar_hecho);
            dialogo.FormClosing += dialogo_FormClosing;
            ventana_validar_hecho.evento_respuesta_lista += evento_ventana_respuesta_lista;
            ventana_validar_hecho.inciarConsultaHecho(id_regla, hecho, hechos_antecedente, variable.ruta_texto_descriptivo);
            dialogo.ShowDialog(ventana_padre);
            if (terminar_inferencia)
            {
                return(null);
            }
            int[] respuestas = new int[3];
            if (ventana_validar_hecho.hecho_validado)
            {
                respuestas[0] = ConstantesShell.HECHO_CONFIRMADO;
            }
            else
            {
                respuestas[0] = ConstantesShell.HECHO_DESCARTADO;
            }

            if (ventana_validar_hecho.se_soluciono_el_problema)
            {
                respuestas[1] = ConstantesShell.PROBLEMA_SOLUCIONADO;
            }
            else
            {
                respuestas[1] = ConstantesShell.PROBLEMA_NO_SOLUCIONADO;
            }

            if (ventana_validar_hecho.continuar_inferencia)
            {
                respuestas[2] = ConstantesShell.CONTINUAR_PROCESO;
            }
            else
            {
                respuestas[2] = ConstantesShell.DETENER_PROCESO;
            }
            return(respuestas);
        }
Пример #3
0
 /// <summary>
 /// Método que muestra la selección del objetivo a buscar en el encadenaiento hacia atrás
 /// </summary>
 private void iniciarSeleccionDeObjetivo()
 {
     dialogo              = new FormDialogoPanel(ventana_selecion_de_objetivo);
     dialogo.FormClosing += dialogo_FormClosing;
     ventana_selecion_de_objetivo.evento_comenzar += ventana_selecion_de_objetivo_evento_comenzar;
     ventana_selecion_de_objetivo.evento_cambio_en_seleccion_variable += ventana_selecion_de_objetivo_evento_cambio_en_seleccion_variable;
     string[] id_variables_objetivo = motor_atras.obtenerPosiblesVariablesObjetivos();
     for (int i = 0; i < id_variables_objetivo.Length; i++)
     {
         Variable variable = base_conocimiento.leerVariable(id_variables_objetivo[i]);
         ventana_selecion_de_objetivo.agregarOpcionPanelVariables(variable.id_variable, variable.nombre_variable);
     }
     ventana_selecion_de_objetivo.titulo = metadatos.titulo_sistema_experto;
     dialogo.ShowDialog(ventana_padre);
     dialogo = null;
     if (!terminar_inferencia)
     {
         motor_atras.establecerHechoObjetivo(ventana_selecion_de_objetivo.id_estado_chequeada);
     }
 }
Пример #4
0
        /// <summary>
        /// Método que inicializa en motor de inferencia y muestra la ventana inicial
        /// </summary>
        private void iniciarVentana()
        {
            if (tipo_de_encadenamiento == ENCADENAMIENTO_HACIA_ATRAS)
            {
                motor_atras = new EncadenamientoHaciaAtras();
                string errores = motor_atras.inicializarEncadenamiento();
                if (errores != null)
                {
                    MessageBox.Show(errores, "Proceso de inferencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    terminar_inferencia = true;
                    return;
                }
            }
            else
            if (tipo_de_encadenamiento == ENCADENAMIENTO_HACIA_ADELANTE)
            {
                motor_adelante = new EncadenamientoHaciaAdelante();
                string errores = motor_adelante.inicializarEncadenamiento();
                if (errores != null)
                {
                    MessageBox.Show(errores, "Proceso de inferencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    terminar_inferencia = true;
                    return;
                }
            }
            else
            {
                throw new System.ArgumentException("Opción invalida de encadenamiento", "GestorMotorInferencia - iniciarVentana");
            }
            ventana_inicial.tiulo_sistema_experto = metadatos.titulo_sistema_experto;
            ventana_inicial.ruta_rtf_descripcion  = metadatos.ruta_rtf_descripcion_sistema_experto;
            ventana_inicial.ruta_imagen_logo      = metadatos.ruta_imagen_logo_sistema_experto;

            dialogo = new FormDialogoPanel(ventana_inicial);
            ventana_inicial.evento_continuar += pantalla_inicial_evento_continuar;
            dialogo.FormClosing += dialogo_FormClosing;
            dialogo.ShowDialog(ventana_padre);
            ventana_inicial.liberarRecursosImagenLogo();
            dialogo = null;
        }
Пример #5
0
        ArrayList motor_inferencia_evento_consultar_variable(string id_variable)
        {
            Variable variable = base_conocimiento.leerVariable(id_variable);

            dialogo              = new FormDialogoPanel(ventana_preguntar_variable);
            dialogo.FormClosing += dialogo_FormClosing;
            ventana_preguntar_variable.evento_respuesta_lista += evento_ventana_respuesta_lista;
            ventana_preguntar_variable.consultarVariable(variable);
            dialogo.ShowDialog(ventana_padre);
            if (terminar_inferencia)
            {
                return(null);
            }
            ArrayList respuesta_pregunta = ventana_preguntar_variable.obtenerResultadosPregunta();

            //Limpiando dialogo
            //evento_interno = true;
            //dialogo.Dispose();
            dialogo = null;



            return(respuesta_pregunta);
        }