desarrollodesbc ingenieríadelossbc desarrollodesbc · desarrollodesbc ingenieríadelossbc...
TRANSCRIPT
Desarrollo de SBC Ingeniería de los SBC
Desarrollo de SBC
El punto más importante del desarrollo de SBC es la extracción delconocimientoRequiere la interacción entre el Ingeniero del Conocimiento y elexpertoLas metodologías de ingeniería de software han de encajar esteproceso entre sus fasesLas metodologías de ingeniería del software han de adaptarse a lascaracterísticas específicas de los SBC
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 1 / 41
Desarrollo de SBC Ingeniería de los SBC
IS: Modelo en cascada
Analisis
Especificacion
Diseño
Implementacion
Prueba
Mantenimiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 2 / 41
Desarrollo de SBC Ingeniería de los SBC
IS: Modelo en espiral
Formulacion
Evaluacion Id
entifica
cion
Analisis
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 3 / 41
Desarrollo de SBC Ingeniería de los SBC
Diferencias de los SBC
Sistemas software convencionales =⇒ Algoritmos conocidos y de usocomúnSBC =⇒ Conocimiento incompleto, impreciso, heurísticoSistemas software convencionales =⇒ Posible estimar la naturaleza ycantidad del conocimientoSBC =⇒ Difícil estimar la naturaleza y cantidad del conocimiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 4 / 41
Desarrollo de SBC Ingeniería de los SBC
Diferencias de los SBC
Es complicado obtener un diseño adecuado en las fases inicialesDecisiones iniciales erróneas pueden provocar el replanteamientoradical del diseño durante el desarrolloEl ingeniero del conocimiento debe realizar un proceso deadquisición del conocimiento =⇒ Entrevistas con los expertos
El IC debe aprender los elementos básicos del dominioEncontrar un formalismo representación que pueda entender el expertoLos expertos prefieren casos al razonamiento a partir de definicionesgeneralesA los expertos les es difícil explicitar su conocimiento en detalle(paradoja del experto)
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 5 / 41
Desarrollo de SBC Ingeniería de los SBC
Diferencias de los SBC
Solución: Diseño incremental y prototipado rápidoObjetivo: Desarrollar un prototipo funcional que recoja lasfuncionalidades básicas del sistemaEl análisis y la especificación deben tener en cuenta el sistemacompletoEl diseño e implementación se limita al prototipo inicialEste prototipo se completa incrementalmenteVentaja: Disponemos de un sistema funcional durante todo el proceso
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 6 / 41
Desarrollo de SBC Ingeniería de los SBC
Ciclo de vida de un SBC
Evaluacion
AnalisisEspecificacion
DiseñoPreliminar Prototipo
inicial
DiseñoFinal
VerificacionValidacion
Ajustes
Implementacion
Mantenimiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 7 / 41
Desarrollo de SBC Ingeniería de los SBC
Ciclo de vida de un SBC (I)
1. Análisis del problema: Recopilar información sobre el proyecto ydeterminar su viabilidad.
2. Especificación de requerimientos: Fijar los objetivos y métodospara conseguirlos.
3. Diseño preliminar: Decisiones a alto nivel sobre el diseño(formalismo de representación del conocimiento, herramientas,fuentes de conocimiento)
4. Prototipo Inicial y evaluación: Construir un prototipo con coberturalimitada, evaluar las decisiones de diseño a partir del prototipo
5. Diseño final: Validar las decisiones y proponer el diseño del sistemade manera que permita un desarrollo incremental.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 8 / 41
Desarrollo de SBC Ingeniería de los SBC
Ciclo de vida de un SBC (II)
6. Implementación: Completar la adquisición del conocimiento, ampliarincrementalmente el prototipo inicial.
7. Validación y verificación: Comprobar que el sistema cumple lasespecificaciones.
8. Ajustes de diseño: Realimentar el proceso (los cambios en el diseñodeberían se mínimos)
9. Mantenimiento: Mantener el sistema.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 9 / 41
Desarrollo de SBC Ingeniería de los SBC
Metodologías especializadas
CommonKADSCiclo de vida en espiral y modelado mediante herramientas parecidas aUMLSe construyen seis modelos: Organización, tareas, agentes,comunicación, conocimiento y diseño.
MIKECiclo de vida en espiral: Adquisición del conocimiento (modelo deadquisición y modelo de estructura), diseño, implementación,evaluación.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 10 / 41
Desarrollo de SBC Una metodología simplificada
Una metodología simplificada
Para aplicaciones pequeñas se puede aplicar una metodología encascada que integra todo el proceso de desarrollo
1 Identificación del problema2 Conceptualización3 Formalización4 Implementación5 Validación y Prueba
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 11 / 41
Desarrollo de SBC Una metodología simplificada
Identificación
Debemos determinar si el problema es adecuado¿Hay una solución algorítmica?¿Disponemos de fuentes de conocimiento?¿El tamaño/objetivo/complejidad del problema es adecuado?
Buscar y evaluar las fuentes de conocimientoDeterminar el conocimiento necesario para el sistemaEstablecer los objetivos del sistema (¿Que respuesta esperamos?)
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 12 / 41
Desarrollo de SBC Una metodología simplificada
Conceptualización
Esta fase nos debería dar la perspectiva del problema desde el punto devista del experto
Deberemos:Detallar los elementos del dominio =⇒ Descripción informal de laontologíaDescomponer el problema en subproblemas mediante refinamientossucesivos, descubriendo los bloques de razonamientoDetallar el flujo de razonamiento y las entradas y salidas de cadasubproblemaDetallar y distinguir entre evidencias, hipótesis y acciones y descubrirsus relaciones
Toda esta información la obtendremos a partir de la interacción con elexperto (entrevistas) y las fuentes de conocimientoEl resultado será un modelo semiformal del dominio y de losproblemas y métodos de resolución
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 13 / 41
Desarrollo de SBC Una metodología simplificada
Formalización
Esta fase transformará la perspectiva del experto en la perspectiva delingeniero del conocimiento
Decidir el formalismo de representación del conocimiento adecuadoIdentificar el espacio de búsquedaAnalizar la tipología de los problemas y bloques de razonamiento ydecidir los métodos de resolución de problemas adecuadosAnalizar la necesidad de tratamiento de incertidumbre y/oinformación incompleta
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 14 / 41
Desarrollo de SBC Una metodología simplificada
Implementación
Construir una ontología del dominioEncajar los problemas identificados en las metodologías de resoluciónde problemas escogidasConstruir los diferentes módulos que correspondan a cada problemasiguiendo el conocimiento obtenidoSi utilizamos una aproximación basada en prototipado rápidoconstruiremos el prototipo inicial y lo iremos aumentandoincrementalmente
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 15 / 41
Desarrollo de SBC Una metodología simplificada
Validación y Prueba
Escoger casos representativos y resolverlos mediante el sistemaLos casos deberían incluir tanto casos usados para la construcción delsistema como casos nuevosSi seguimos una estrategia de construcción incremental esta fase seirá repitiendo a medida que se desarrolle el prototipoLa validación de SBC es más compleja que la de los sistemas desoftware habituales
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 16 / 41
Resolución de problemas en SBC Clasificación de problemas
Tipos de problemas en SBC
La identificación de tipologías de problemas en SBC facilita sudesarrolloCada tipo permite determinar:
Un conjunto de tareas usualesUn conjunto de metodologías de resolución específicasMétodos de representación del conocimiento e inferencia adecuados
Clasificaremos los problemas a resolver en un SBC a partir de dostareas genéricas:
Tareas de análisis: Interpretación de un sistemaTareas de síntesis: Construcción de un sistema
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 17 / 41
Resolución de problemas en SBC Clasificación de problemas
Síntesis - Análisis
Ambas tareas se pueden especializarTareas de análisis
Identificación, nos dice que tipo de sistema tenemosMonitorización, detecta discrepancias de comportamientoDiagnóstico, explica las discrepancias
Predicción, nos dice que salida podemos esperarControl, determina que entradas nos permiten obtener cierta salida
Tareas de síntesisEspecificación, busca las restricciones que se deben satisfacerDiseño, genera una configuración de elemenos según unas restriccionesEnsamblaje, construye un sistema juntando elementos
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 18 / 41
Resolución de problemas en SBC Métodos de resolución de problemas
Métodos de resolución de problemas
Cada tipo de problema genérico tiene unas características especialesExisten métodos de resolución adecuados para cada tipoNos centraremos en dos métodos:
Clasificación Heurística (Heuristic Classification)Resolución Constructiva (Constructive Problem Solving)
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 19 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística
Es adecuado para tareas de análisisEl objetivo es escoger una solución de entre un conjunto limitadoAsociamos los datos de entrada con las soluciones (simple o medianterazonamiento)Tres fases:
1 Abstracción de datos (Definicional, cualitativa, generalización, ...)2 Asociación heurística3 Refinamiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 20 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística
ProblemaConcreto
ProblemaAbstracto Abstracta
Solución
ConcretaSolución
Abstracción dedatos
Refinamiento/Adaptación
Asociación heurística
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 21 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Adquisición del conocimiento
La adquisición del conocimiento que permite resolver un problemamediante clasificación heurística se puede hacer de forma sistemática.Podremos distinguir tres conjuntos de conceptos:
Las hipótesis: Soluciones posibles a nuestro problemaLos síntomas: Características que describen las hipótesisLas causas originales: Información del problema que lleva a lossíntomas
Entre cada conjunto de conceptos deberemos extraer el conjunto dededucciones que llevan del uno al otroDe las causas originales a los síntomas tendremos las reglas deabstracciónDe los síntomas a las hipótesis tendremos las reglas de asociaciónheurística
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 22 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Adquisición del conocimiento
Para cada grupo de reglas deberemos:Obtener qué conceptos del primer conjunto (antecedentes) estánasociados con los del segundo (consecuentes)Escoger como antecedentes de las reglas los conceptos que seandiferenciadores de cada consecuente (separabilidad)Si es necesario se deberían añadir conceptos intermedios que lleven delos antecedentes a los consecuentes y crear las cadenas de deducciónnecesariasObservar la confianza de las asociaciones entre antecedentes yconsecuentes (incertidumbre)
Si las hipótesis son soluciones abstractas =⇒ Determinar las reglas derefinamiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 23 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (1)
Supongamos que queremos construir un SBC para la concesión decréditos bancariosEl conjunto de respuestas que puede dar el sistema son limitadas (seconcede/no se concede)El objetivo es determinar, dadas la características del cliente, siconcederemos el crédito y en que condiciones, o si no loconcederemos.Es un problema de análisis que podemos resolver medianteclasificación heurística.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 24 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (2)
Supongamos que una solicitud contiene la siguiente información:
Si tiene avales bancarios.Si tiene familiares que puedan responder por él.Si tiene cuentas corrientes, casas, coches, fincas, etc. y su valoración.Si tiene antecedentes de morosidad.Si ha firmado cheques sin fondos.Si tiene créditos anteriores concedidos.Tipo de empresa que quiere crear.Cantidad de dinero que solicita.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 25 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (3)
Determinamos un conjunto de características que definen las solucionesApoyo financiero (Muy bueno, bueno, normal, regular, malo, muymalo)BienesFiabilidad de devoluciónCompromiso con el clienteViabilidad de la empresa
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 26 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (4)
Decidimos un conjunto de soluciones abstractas
DenegaciónAceptaciónAceptación con rebajaAceptación con interés preferente
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 27 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (5)
Determinamos unas reglas que nos abstraen los datos del problema
si avales > un millón euros o tío rico entonces apoyofinanciero=buenosi avales < 100000 euros entonces apoyo financiero= malosi suma bienes < un millón entonces bienes=malosi suma bienes > dos millones entonces bienes=buenosi cheques sin fondos o moroso entonces fiabilidad=muy malasi hamburguesería o heladería entonces viabilidad=normalsi grandes almacenes o proveedor de internet entoncesviabilidad=muy buenasi concedido crédito > un millón o hermano del director entoncescompromiso=bueno...
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 28 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (6)
Determinamos unas reglas que asocian las características con lassoluciones
si apoyo financiero=regular y bienes=malo entonces denegarsi fiabilidad={mala,muy mala} entonces denegarsi apoyo financiero=normal y bienes=normal y viabilidad=buenaentonces aceptar con rebajasi apoyo financiero=bueno y bienes=normal y compromiso=normal yviabilidad=buena entonces aceptarsi apoyo financiero=bueno y bienes=bueno y compromiso=muy buenoy viabilidad=muy buena entonces aceptar con interés preferente...
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 29 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (7)
Determinamos unas reglas que refinan las soluciones que lo necesitan
si aceptación con rebaja y petición > 500000 euros y bienes =500000 euros entonces rebaja a 500000 eurossi aceptación con interés preferente y petición > un millón y bienes >un millón entonces rebaja de un 1% de interéssi aceptación con interés preferente y hermano del director entoncesrebaja de un 2% de interés...
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 30 / 41
Resolución de problemas en SBC Clasificación Heurística
Clasificación Heurística: Ejemplo (8)
Apoyo Financiero=Muy buenoFiablidad=Buena
Bienes=Muy bueno
Compromiso=BuenoViabilidad=buena
preferente
Aceptación coninterés
preferenteinterés
+ Rebaja del interés en 1 punto
Aceptación conBienes (casa, 300k)Bienes(yate, 100k)Bienes(fondos,1M)Credito_anterior(300k)
Avales(1M)
Empresa(Logística)Petición(1M)
Abstracción
Asociación
Refinamiento
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 31 / 41
Resolución de problemas en SBC Resolución Constructiva
Resolución constructiva
Orientada a problemas en los que no existe un número acotado desolucionesLa resolución implica construir la solución a partir de un conjunto deelementos (acciones, componentes, fallos, ...)Se aplica en problemas de síntesisLos métodos de búsqueda son aplicables, pero con un costeimpracticable
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 32 / 41
Resolución de problemas en SBC Resolución Constructiva
Resolución constructiva
La construcción de la solución necesita conocimiento sobre:El modelo de la estructura de la soluciónEl modelo del comportamiento de los elementos de la soluciónLos operadores que permiten construir la soluciónEl conjunto de restricciones entre los elementos y la soluciónLa forma de evaluar las decisiones sobre la construcción de la solucióny sobre la solución total o parcial
Las restricciones pueden ser:Sobre la configuración de los componentes (físicas, temporales, ...)Respecto a las entradas/salidas/precondiciones/postcondiciones de losoperadores de construcciónInteracciones entre los tipos de restricciones anteriores
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 33 / 41
Resolución de problemas en SBC Resolución Constructiva
Métodos de resolución constructiva
Proponer y aplicar (propose and apply): Partimos desde unasolución vacía. Seleccionamos el operador de entre los posibles quenos permita extender la solución actual hasta llegar a obtener lasolución completaMínimo compromiso (Least commitment): Partimos desde unasolución inicial completa. Seleccionamos el operador que nos permiteextender la solución actual que menos restricciones nos imponga a lasdecisiones futuras
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 34 / 41
Resolución de problemas en SBC Resolución Constructiva
Proponer y aplicar
Buscamos en el espacio de soluciones parcialesPartimos de una solución inicial vacía o una solución incompletaCada paso va completando la soluciónSiempre elegimos el mejor operadorNos mantenemos en el espacio de soluciones
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 35 / 41
Resolución de problemas en SBC Resolución Constructiva
Proponer y aplicar
Necesitamos conocimiento exhaustivo sobre:Operadores de resolución del problemaRestricciones y relaciones entre los componentes de la soluciónEvaluación del efecto de los operadores en la soluciónEvaluación de la bondad de la solución
Podemos plantear la resolución de diferentes manerasConstrucción secuencial (necesita mucho conocimiento para sereficiente)Descomposición jerárquica de tareas (mas eficiente, pero requiereobtener operadores de descomposición)
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 36 / 41
Resolución de problemas en SBC Resolución Constructiva
Proponer y aplicar: Proceso de resolución
1 Inicializar el objetivo: Se crea el elemento que define la solución actual2 Proponer un operador: Se seleccionan operaciones plausibles sobre la
solución actual3 Podar operadores: Se eliminan operadores de acuerdo con criterios
globales.4 Evaluar operadores: Se comparan los efectos de los operadores sobre
la solución y se evalúa su resultado.5 Seleccionar un operador: Se escoge el operador mejor evaluado. Si no
hay operadores adecuados se reconsideran pasos anteriores6 Aplicar el operador: Se aplica el operador al estado actual.7 Evaluar el objetivo: Se para si se ha llegado al objetivo final o se
reinicia el proceso.
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 37 / 41
Resolución de problemas en SBC Resolución Constructiva
Mínimo Compromiso
Exploramos en el espacio de soluciones completasPartimos de una solución inicial completa (también puede ser nosolución)Vamos modificando la solución mejorándola o corrigiéndolaLa elección del operador a aplicar la define la estrategia de mínimocompromiso: mínima modificación que imponga menos restriccionesfuturas.Permitimos pasar entre el espacio de soluciones y no soluciones
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 38 / 41
Resolución de problemas en SBC Resolución Constructiva
Mínimo Compromiso: Proceso de resolución
1 Partir de una solución inicial no óptima, si es posible, que satisfagalas restricciones.
2 Hacer una modificación sobre la solución usando la heurística demínimo compromiso (acción que menos restricciones imponga sobre lasolución)
3 Si la modificación viola alguna de las restricciones deshacer alguno delos pasos anteriores haciendo las mínimas modificaciones (Puede noser el último paso)
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 39 / 41
Resolución de problemas en SBC Resolución Constructiva
Resolución Constructiva: Ejemplo (1)
Queremos planificar la mejor trayectoria de un robot en unahabitaciónLa habitación tiene un conjunto de obstáculos que queremos evitarDisponemos de un conjunto de operadores:
Movernos hacia adelante o hacia atrás a cierta velocidad ciertadistanciaGirar cierto número de grados
R
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 40 / 41
Resolución de problemas en SBC Resolución Constructiva
Resolución Constructiva: Ejemplo (2)
Restricciones globales: llegar a la puerta de salida, trayectoria mínimaen recorrido y tiempoRestricciones de elección de operadores: No chocar con obstáculos ola pared, mantener la distancia para poder maniobrarEvaluación de los operadores:
Mover: Mejor cuanto más lejos y más deprisa nos lleve al objetivoGirar: Mejor cuanto mas lejos deje los obstáculos de nuestra trayectoria
cbea (LSI - FIB) Sistemas Basados en el Conocimiento IA - Curso 2008/2009 41 / 41