TESIS DEFENDIDA POR Pedro Damián Reyes
Y APROBADA POR EL SIGUIENTE COMITÉ
Dr. Jesús Favela Vara Dr. Juan José Contreras Castillo
Codirector del Comité Codirector del Comité
Dra. Marcela Deyanira Rodríguez Urrea Dr. José Antonio García Macías
Miembro del Comité Miembro del Comité
Dr. Hugo Homero Hidalgo Silva
Miembro del Comité
Dra. Ana Isabel Martínez García Dr. David Hilario Covarrubias Rosales
Coordinador del programa de posgrado en Ciencias de la
Computación
Director de Estudios de Posgrado
CENTRO DE INVESTIGACIÓN CIENTÍFICA Y DE EDUCACIÓN SUPERIOR DE ENSENADA
PROGRAMA DE POSGRADO EN CIENCIAS EN CIENCIAS DE LA COMPUTACIÓN
ADMINISTRACIÓN DE INCERTIDUMBRE EN CÓMPUTO CONSCIENTE DEL CONTEXTO
TESIS
que para cubrir parcialmente los requisitos necesarios para obtener el grado de DOCTOR EN CIENCIAS
Presenta:
PEDRO DAMIÁN REYES
RESUMEN
de la tesis de Pedro Damián Reyes, presentada como requisito parcial para la obtención del grado de DOCTOR EN CIENCIAS en Ciencias de la Computación. Ensenada, Baja California, México, Agosto de 2009.
ADMINISTRACIÓN DE INCERTIDUMBRE EN CÓMPUTO CONSCIENTE DEL CONTEXTO
Resumen aprobado por:
___________________________ ___________________________ Dr. Jesús Favela Vara Dr. Juan José Contreras Castillo
Codirector de Tesis Codirector de Tesis
obtuvieron como resultado de los experimentos se encontró que la incertidumbre es un factor que puede ser controlado sin aumentar la complejidad de la arquitectura de una aplicación consciente del contexto; también, se demostró que la inclusión de mecanismos de administración de incertidumbre en las aplicaciones aumenta su robustez haciéndolas más tolerantes a fallas provocadas por problemas en el contexto; así mismo, se confirmó que la presencia de la incertidumbre disminuye la confianza de los usuarios en la aplicación, por lo que debe ser atendida de manera adecuada.
ABSTRACT
of the thesis presented by Pedro Damián Reyes as a partial requirement to obtain the Doctor of Science degree in Computer Science. Ensenada, Baja California, México, August, 2009.
UNCERTAINTY MANAGEMENT IN CONTEXT-AWARE COMPUTING
Context-aware computing enables the design and implementation of applications that adapt their behavior according to the context the user inhabits. Context is any kind of information that can be used by software applications to characterize the situation of the user. However, despite all of the hardware infrastructure and software developed to create context-aware applications, there are major challenges to be faced to ensure their full and successful implementation in the real world. One of the most important ones is the treatment of uncertainty in contextual information, mainly generated by the complexity in the mechanisms and the difficulties associate to the acquisition and processing of context. Whether this uncertainty is not considered and adequately handled may cause the context-aware applications to become unusable for the user.
This thesis deals with the management of uncertainty in context-aware computing, with the main objective of establishing a general methodology to help software developers deal with the uncertain nature of context and allowing them to create mechanisms for its treatment. The methodology is based on a systematic follow-up of three main stages: analysis of the potential risks of uncertainty, analysis of types of uncertainty in the context, and strategies for managing uncertainty. The first two stages involve a series of basic questions that can be used as guidelines in obtaining the information needed to identify uncertainty. In the third stage different strategies can be implemented for the treatment of uncertainty, which are grouped in two classes: automatic management of uncertainty and user-assisted uncertainty management. This methodology was implemented and evaluated by conducting a series of experiments involving the creation of three context-aware software applications. The first one was used in a collaborative learning environment within a classroom, the second one involved the estimation of the activity performed by a nurse in a hospital, and the third one was a location-aware electronic museum guide. Among the most significant conclusions that were obtained, as a result of the experiments, we found that uncertainty is a factor that can be controlled without increasing the complexity of the architecture of context-aware software applications. We also found that the inclusion of this kind of mechanisms for uncertainty management makes software applications more robust and fault-tolerant due to common problems in the context. Finally, it was confirmed that the presence of uncertainty reduces confidence of the user in context-aware software applications.
DEDICATORIAS
A mi esposa, Carmen Alicia por su cariño, comprensión e inquebrantable
paciencia que me ha dado durante todos estos años.
A mis tres queridos hijos, Erik Roberto, Carlos Eduardo y Manuel Alejandro por
AGRADECIMIENTOS
Quiero agradecer a Dios, por conservarme con vida y salud, por darme inteligencia y fortaleza que me ha permitido terminar satisfactoriamente mis estudios, y muy especialmente por cuidar a mi familia en los días de ausencia.
Al Dr. Jesús Favela por todo su apoyo, sus sabios consejos, sus acertados comentarios, sus excepcionales ideas, su deslumbrante inteligencia y visón de las cosas, y muy particularmente por su maravilloso espíritu humano y sencillez que ha dejado en mí un recuerdo imborrable y un ideal a lo que todo ser humano debe aspirar.
Al Dr. Juan Contreras por su amistad, su incondicional apoyo, sus ideas y comentarios.
A los miembros del comité de tesis: Dra. Marcela Rodríguez, Dr. Antonio Macías y Dr. Hugo Hidalgo, por sus aportaciones, comentarios y apoyo que me brindaron durante la realización de mis estudios.
A mis amigos y compañeros de estudio: la Maestra Mary Andrade, Erika Ramos, Víctor Castillo y Juan Manuel Ramírez, por estar conmigo en los momentos difíciles y estresantes que vivimos durante el Doctorado.
A mis compañeros de trabajo: Ricardo Acosta por su apoyo en la gestión en la Universidad, la Maestra Claudia Ramírez por toda su ayuda desinteresada, la Contadora Ana Mejía por su apoyo en los asuntos económico-administrativo en la Universidad.
contagioso entusiasmo que siempre mostró hacia el proyecto. También agradezco a Yerania Barajas quien amablemente compartió su conocimiento y experiencia en el Museo.
CONTENIDO
Página
RESUMEN ... i
ABSTRACT ... iii
DEDICATORIAS ... iv
AGRADECIMIENTOS ... v
CONTENIDO ... vii
LISTA DE FIGURAS ... xii
LISTA DE TABLAS ... xv
CAPÍTULO I Introducción ... 1
I.1 Cómputo ubicuo y consciente del contexto ... 2
I.2 Planteamiento del problema ... 4
I.3 Preguntas de investigación ... 7
I.4 Hipótesis ... 8
I.5 Objetivos ... 9
Objetivo general. ... 9
Objetivos específicos. ... 9
I.6 Metodología ... 9
Entendimiento inicial. ... 10
Caracterización de la incertidumbre. ... 10
Diseño de mecanismos para la administración de incertidumbre. ... 11
CONTENIDO (Continuación)
Página
Validación y experimentación. ... 12
Análisis de resultados y generación de conclusiones. ... 13
I.7 Contenido de la tesis ... 14
CAPÍTULO II El cómputo consciente del contexto y la incertidumbre en el contexto ... 17
II.1 Conceptos generales. ... 18
El contexto del usuario ... 18
Aplicaciones conscientes del contexto ... 20
II.2 La incertidumbre en aplicaciones conscientes del contexto. ... 21
II.3 Técnicas para manipulación de incertidumbre. ... 25
II.4 Manipulación de incertidumbre en cómputo consciente del contexto. ... 26
II.4.1 Administración automática de incertidumbre. ... 27
III.4.2 Administración de incertidumbre asistida por el usuario. ... 42
CAPÍTULO III Procedimiento para la administración de incertidumbre en aplicaciones conscientes del contexto ... 47
III.1 Análisis de riesgos potenciales de incertidumbre ... 48
III.1.1 Riesgos de incertidumbre original ... 49
III.1.2 Riesgos de incertidumbre derivada ... 52
III.2 Análisis de tipos de incertidumbre ... 55
III.3 Aplicación de estrategias para el tratamiento de la incertidumbre ... 58
CONTENIDO (Continuación)
Página
III.3.2 Tratamiento de incertidumbre asistido por el usuario... 60
CAPÍTULO IV Implementación de mecanismos de administración de incertidumbre en aplicaciones conscientes del contexto ... 64
IV.1 Arquitecturas para la creación de aplicaciones conscientes del contexto y sus modificaciones para incluir la administración de incertidumbre ... 65
Consciencia del Contexto Orientado a Servicios (SOCAM) ... 65
Arquitectura “The Context Toolkit” ... 72
Arquitectura Gaia ... 77
Arquitectura CABOT ... 83
IV.2 Diseño e implementación de una aplicación consciente de la localización que incluye mecanismos para la administración de la incertidumbre ... 87
Aplicación de la metodología propuesta para la inclusión de mecanismos administradores de incertidumbre ... 99
1. Análisis de riesgos de incertidumbre ... 99
2. Análisis de tipos de incertidumbre ... 100
3. Aplicación de estrategias para el tratamiento de la incertidumbre ... 101
CAPÍTULO V Evaluación del procedimiento para la implementación de mecanismos administradores de incertidumbre ... 106
V.1 Consciencia del contexto e incertidumbre en actividades de aprendizaje colaborativo asistido por computadoras ... 107
Análisis de riesgos de incertidumbre ... 108
CONTENIDO (Continuación)
Página
Aplicación de estrategias para el tratamiento de la incertidumbre ... 112
Resultados ... 114
V.2 Incertidumbre en un algoritmo de estimación de la actividad ... 116
Análisis de riesgos de incertidumbre ... 117
Análisis de tipos de incertidumbre ... 119
Aplicación de estrategias para el tratamiento de la incertidumbre ... 120
Resultados ... 121
V.3 Guía electrónica consciente de la localización para Museos ... 122
V.4 Experimento para la evaluación de estrategias de administración de incertidumbre ... 134
Resultados ... 139
V.5 Conclusión ... 141
CAPÍTULO VI Conclusiones y trabajo futuro ... 143
VI.1 Contribuciones y resultados ... 144
Caracterización de la incertidumbre ... 144
Procedimiento para la implementación de mecanismos administradores de incertidumbre. ... 146
Arquitecturas para la creación de aplicaciones. ... 147
Guía electrónica consciente de la localización para el Museo Universitario Alejandro Rangel Hidalgo de la Universidad de Colima. ... 147
VI.2 Trabajo futuro ... 149
CONTENIDO (Continuación)
Página Creación de escenarios de validación de aplicaciones conscientes del
contexto. ... 150
Esquemas de seguridad para el cuidado y mantenimiento de la infraestructura física de ubicomp. ... 151
VI.3 Conclusiones ... 152
Referencias ... 155
Anexo 1. Cuestionario aplicado a los visitantes del museo ... 165
LISTA DE FIGURAS
Figura Página
1. Representación de una ontología en una red Bayesiana ... 28
2. Diseño relacional (a) y Modelo probabilístico (b) ... 29
3. Mecanismos de razonamiento con manejo de incertidumbre ... 30
4. Contexto con valores de probabilidad y la red Bayesiana derivada ... 31
5. Red Bayesiana para una aplicación de localización de taxis ... 32
6. Red Bayesiana para inferir actividad ... 35
7. Estructura de una entidad que utiliza razonamiento ... 36
8. “Instancia del contexto” y “Patrón del contexto” ... 39
9. Coincidencia del contexto ... 40
10. Ejemplo de un contexto complejo ... 41
11. Arquitectura “The Context Toolkit” ... 43
12. Nueva arquitectura “The Context Toolkit” ... 44
13. Estructura general del procedimiento para la administración de incertidumbre. ... 48
14. Modelo de ontología basado en una jerarquía de dos niveles ... 67
15. Arquitectura SOCAM ... 68
16. Arquitectura SOCAM con manejo de incertidumbre ... 71
17. Arquitectura “The Context Toolkit” ... 74
18. Arquitectura “The Context Toolkit” con manejo de incertidumbre ... 76
19. Arquitectura del meta sistema operativo Gaia. ... 78
20. Arquitectura de la infraestructura del contexto en Gaia ... 80
LISTA DE FIGURAS (continuación)
Figura Página
22. Arquitectura Cabot ... 84
23. Arquitectura Cabot incluyendo administración de incertidumbre. ... 86
24. Distribución física del Museo Universitario Alejandro Rangel Hidalgo. ... 89
25. Diagrama de secuencia de la aplicación consciente de la localización. ... 92
26. Arquitectura general de la aplicación consciente de la localización. ... 93
27. Estructura general del algoritmo de estimación de la localización ... 93
28. División en zonas de la sala introductoria. ... 94
29. Casos de uso de la Guía electrónica consciente de la localización ... 95
30. Interfaz de usuario de la guía electrónica para el Museo Alejandro Rangel Hidalgo ... 97
31. Estructura general de la aplicación con el mecanismo administrador de incertidumbre. ... 105
32. Estructura general del algoritmo de estimación del grupo. ... 110
33. Estructura general del algoritmo con el mecanismo heurístico de administración de incertidumbre. ... 114
34. Estructura general del algoritmo de estimación de la actividad. ... 119
35. Estimación de la actividad con el mecanismo heurístico de administración de incertidumbre. ... 121
36. Secciones de la encuesta aplicada. ... 129
37. Fotografías de usuarios durante el experimento. ... 129
38. Resultados a la pregunta “La aplicación le pareció: Fácil - 6 - 5 - 4 - 3- 2 - Difícil. ... 130
39. Impresión general de la aplicación consciente de la localización. ... 131
LISTA DE FIGURAS (continuación)
Figura Página
41. La aplicación consciente de la localización le pareció:
Confiable – No confiable. ... 133 42. La acción de mostrar información de manera automática le pareció:
LISTA DE TABLAS
Tabla Página
I. Porcentajes de estimaciones correctas y erróneas. ... 115
II. Beneficio social normalizado. ... 116
III. Porcentaje de estimaciones inciertas que son errores. ... 122
IV. Número de errores. ... 125
V. Número de interacciones del usuario. ... 125
VI. Datos generales de los participantes en el experimento. ... 130
Capítulo I
Introducción
En este capítulo se introduce el tema de investigación de la tesis. Iniciando con la presentación de los antecedentes teóricos del cómputo consciente del contexto, área de la computación en la que se desarrolla esta tesis. Específicamente, se describe el cómputo ubicuo (ubicomp, por sus siglas en inglés). En esta visión de la computación, la computadora se encuentra presente en todo momento, en todo lugar y en cualquier objeto de nuestras vidas cotidianas, pero la diferencia radica en algunas características fundamentales que hacen de su utilización una experiencia satisfactoria para los usuarios, al mismo tiempo que se encuentra integrada en el ambiente físico del usuario, al grado de resultarle invisible (Weiser, 1998; Weiser y Brown, 1997).
También se identifican algunos de los problemas potenciales a los que se puede enfrentar
ubicomp, con la finalidad de establecer una base que ayude a describir el planteamiento del problema sobre el que se desarrolla la tesis. Específicamente los problemas identificados se enfocan en aspectos que pueden afectar la confianza del usuario en los ambientes ubicomp
y dificultan su adopción e implementación, como por ejemplo, situaciones donde se hace presente la incertidumbre y provoca funcionamiento incorrecto de la aplicación (Ranganathan et al., 2004; Satyanarayanan, 2003, Bellotti y Sellen, 1993; Dey et al., 2004). Posteriormente se presentan las preguntas de investigación que fueron utilizadas como guía para determinar las acciones a realizar para la integración y desarrollo del trabajo de investigación que se aborda en esta tesis. Al mismo tiempo se estableció la hipótesis general que fundamenta el trabajo de investigación.
ayudó a clarificar las diferentes metas que se deben alcanzar para avanzar de manera sistemática hacia el cumplimiento de cada uno de ellos.
Tomando como base estos objetivos se definió las diferentes etapas que integran la metodología. Y finalmente, cerramos este capítulo con la descripción de la organización de este documento de tesis.
I.1 Cómputo ubicuo y consciente del contexto
El cómputo ubicuo (ubicomp) es un área enfocada en la creación de ambientes inteligentes, donde las computadoras y todo su poder de procesamiento se encuentren perfectamente integradas en el mundo físico del usuario (Satyanarayanan, 2001). El desarrollo del
ubicomp inició en la década de los 90’s cuando Mark Weiser describió su visión sobre el futuro de la computadora, en donde planteaba la existencia de dispositivos y tecnologías que se encontraban integrados en el ambiente del usuario y eran utilizados de manera tan natural y transparente que el usuario dejaba de percibir su existencia (Weiser, 1991, 1993a, 1993b). La finalidad del ubicomp es proveer al usuario de información y servicios que le sean útiles y relevantes en el lugar y en el momento en que los necesita (Abowd y Mynatt, 2000; Weiser y Brown, 1997).
iluminación, de humedad, de ritmo cardiaco, de niveles de glucosa, etc. Otro elemento importante que ha facilitado la creación de la infraestructura de hardware es la miniaturización de los microprocesadores, debido a que ha permitido crear pequeños dispositivos portátiles e inteligentes con capacidades de procesamiento, entre los que podemos mencionar, asistentes personales digitales (PDA), computadoras de bolsillo y teléfonos inteligentes, entre otros (Hansmann et al., 2003).
La visión de Weiser no se limitaba únicamente a la infraestructura de hardware, sino que incluía un cambio en el paradigma de las tecnologías de información, él decía “se tiene disponible y a nuestro alcance más información durante una caminata en el bosque que en cualquier sistema de información, todavía las personas encuentran una caminata entre los árboles relajante y las computadoras frustrantes. Las máquinas que se adapten al medio ambiente humano en lugar de obligarlo a entrar al suyo, lograrán que su utilización le resulte tan refrescante como realizar una caminata en el bosque” (Weiser, 1991). En busca de lograr esta visión, las tecnologías de información modifican su paradigma tradicional de funcionamiento en donde el usuario se introduce en el mundo digital a través de una interfaz de usuario, trabaja en ese ambiente realizando alguna tarea determinada, obtiene resultados y al finalizar se desconecta; ahora las tecnologías de información se extienden al mundo real en donde los usuarios viven y actúan, al mismo tiempo que utilizan información del entorno para proveerle información y servicios que le sean útiles y relevantes en el lugar y en el momento que los necesita (Moran y Dourish, 2001; Shaja y Mukherjee, 2003). Surge así lo que se ha denominado computación consciente del contexto (Abowd et al., 2002; Streitz y Nixon, 2005).
obtienen la información de sensores colocados en el ambiente del usuario (Abowd y Mynatt, 2000). Aquí, la palabra “sensores” incluye tanto a elementos de la infraestructura hardware del ubicomp, así como a cualquier otra fuente de información que permita crear un contexto válido, por ejemplo, los datos del perfil y la agenda de trabajo del usuario, los registros históricos, entre otros (Indulska y Sutton, 2003).
Sin embargo, a pesar de toda la infraestructura de hardware y software desarrollada hasta el momento para la creación del ubicomp, existen grandes retos que deben ser resueltos para lograr su completa y exitosa implementación en el mundo real (Satyanarayanan, 2001; Shaja y Mukherjee, 2003). Uno de los más importantes consiste en el tratamiento de la incertidumbre generada por la naturaleza incierta de la información contextual (Ranganathan et al., 2004; Satyanarayanan, 2003). La incertidumbre en el contexto puede ser generada por diferentes causas, las cuales pueden ser agrupadas en dos etapas: (a) etapa de creación del contexto, en donde se puede presentar, la utilización de fuentes no confiables, el error o la falta de información utilizada, la inexactitud e imprecisión en los instrumentos o mecanismos utilizados y la definición ambigua del contexto; (b) etapa de utilización del contexto: falta de claridad, contexto muy general o no específico, contradicciones entre diferentes fuentes, ejecución de acciones opuestas en un mismo tiempo, entre otras. La incertidumbre en el contexto puede provocar que las aplicaciones funcionen de manera incorrecta, por ejemplo, mostrando información errónea, ejecutando acciones inadecuadas o fuera de contexto, entre otras. Por lo que resulta necesario que las aplicaciones cuenten con mecanismos que permitan su tratamiento y administración.
I.2 Planteamiento del problema
Ranganathan et al., 2004; Shaja y Mukherjee, 2003), incluso (Bellotti y Edwards, 2001) afirman que algunos elementos contextuales relacionados con aspectos humanos, son imposibles de capturar con la tecnología existente. Esta complejidad existente en el contexto ha motivado uno de los principales retos por afrontar en ubicomp: el tratamiento de incertidumbre en aplicaciones conscientes del contexto.
La incertidumbre se presenta cuando no se tiene el conocimiento seguro y claro de algo, cuando existe el temor al error o cuando se duda sobre lo que se afirma (RAE, 2008). Éste concepto describe la incertidumbre desde el punto de vista del ser humano y es altamente subjetivo, ya que se refiere a un sentimiento personal e interno del individuo. Bajo esta perspectiva, Penrod (2007) define a la incertidumbre como un sentimiento estrechamente relacionado con la confianza que el individuo tiene en sí mismo, y el control que tiene sobre las acciones realizadas; afirma que a mayor confianza y control se tiene una menor incertidumbre. También (Antifakos et al., 2005; Ruohomaa y Kutvonen, 2005) coinciden al señalar que la confianza es un sentimiento interno del usuario y se encuentra estrechamente relacionado con la incertidumbre. Li y Du (2008) definen la incertidumbre como la aleatoriedad y falta de claridad o precisión de los conceptos utilizados en el lenguaje natural.
Varios autores definen la información imperfecta como un sinónimo de incertidumbre, en donde incluye la vaguedad en el sentido de que algo no está bien definido, la imprecisión como una falla en la especificidad, la no completitud referente a la falta de piezas de información, la ambigüedad que existe cuando no es posible distinguir entre dos alternativas y la actualidad de la información referente a la posibilidad de cambio de la información en el trascurso del tiempo (Cahill et al., 2003; Crestani y Pasi, 2003; Korpipää
situaciones que violan las reglas de funcionamiento establecidas (Ranganathan et al., 2004; Xu y Cheung, 2005; Xu et al., 2006).
La incertidumbre puede afectar de diferente manera a las aplicaciones conscientes del contexto. Pero las consecuencias dependen en gran medida del objetivo de la aplicación, existen algunas situaciones en las cuales la presencia de contexto incierto, ambiguo o erróneo es un factor extremadamente delicado y de consecuencias graves, por ejemplo en Broens et al. (2007) se presenta un escenario para la atención remota de pacientes epilépticos utilizando una aplicación consciente del contexto, en donde se combinan sensores corporales para medir los signos vitales del usuario, sensores de movimiento, tecnologías de localización, de telecomunicación y dispositivos personales de procesamiento. Los autores afirman que la ocurrencia de algún problema en la información contextual puede convertir al sistema en inservible y causar graves daños al usuario, incluso llegar a provocarle la muerte. En el extremo contrario tenemos aplicaciones en donde las consecuencias no llegan a afectar al usuario de manera grave, por ejemplo en Konomi y Roussos (2007) se describe una aplicación conscientes de la identidad basada en tecnología RFID, entre otras funcionalidades el sistema muestra a los clientes de la tienda la información del producto, incluyendo la existencia, los autores reportaron que los usuarios dudaban de la información mostrada al momento de consultar las existencias de los productos y consultaban a los empleados sobre la veracidad de la información, gastando tiempo del usuario, pero no afectándolo gravemente.
tratada, puede convertirse en una gran barrera para el éxito de la introducción del cómputo consciente del contexto a nuestras actividades cotidianas.
En este sentido esta tesis se enfoca en el estudio y caracterización de la incertidumbre en el cómputo consciente del contexto, con la finalidad de proponer y evaluar mecanismos de administración de incertidumbre que le proporcionen a las aplicaciones robustez y tolerancia a la presencia de incertidumbre en el contexto y al mismo tiempo fortalezcan la confiabilidad del sistema.
I.3 Preguntas de investigación
Tomando en consideración la problemática descrita, las preguntas de investigación que nos planteamos al inicio de la investigación fueron:
¿Cuáles son los elementos contextuales que generan incertidumbre en aplicaciones de cómputo consciente del contexto? Ahora sabemos que la incertidumbre es un fenómeno que se puede presentar en cualquier situación, ya que siempre existe la posibilidad de poner en duda una afirmación considerando alguna de las posibles fuentes de incertidumbre que serán descritas más adelante.
¿Cuáles son los problemas que pueden presentarse cuando las aplicaciones conscientes del contexto no cuentan con mecanismos para la manipulación de incertidumbre? Como se mencionó anteriormente, los problemas o consecuencias que pueden ocurrir dependen del uso de la aplicación, por lo que la respuesta particular a esta pregunta se realiza dentro de la etapa de identificación de la incertidumbre del proceso propuesto para crear mecanismos de administración de incertidumbre que será descrito más adelante. Sin embargo, el problema general que se puede presentar en cualquier aplicación, como consecuencia de la incertidumbre, se relaciona con la afectación de la confianza del usuario sobre la aplicación y puede provocar que se convierta en algo inservible y el usuario deje de utilizarla.
computación para el tratamiento de la incertidumbre y estudiar la posibilidad de implementarlas o adaptarlas para su funcionamiento en un entorno consciente del contexto. Además la información que sea recopilada para dar respuesta a esta pregunta es una base importante que puede ayudar en la definición de un panorama global de la incertidumbre, con la finalidad de facilitar su organización y posterior tratamiento.
¿Es posible establecer una clasificación de la incertidumbre que puede generarse en los elementos contextuales? Existe una gran variedad de tipos de incertidumbre por lo que el establecimiento de una clasificación es un paso importante para lograr definir una estructura que facilite su entendimiento, con la finalidad de crear mecanismos que permitan hacer frente a los posibles problemas que se pueden presentar en la generación y manipulación del contexto.
¿Es posible definir un procedimiento general para crear mecanismos de administración de incertidumbre? Aun cuando el proceso de creación de software existe y ha sido validado durante mucho tiempo, es necesario establecer los puntos esenciales que deben ser analizados, diseñados y desarrollados para el tratamiento de la incertidumbre en el contexto.
¿Cuáles son las implicaciones en la aplicación al incluir la administración de incertidumbre? Se busca conocer los posibles efectos en el desempeño, complejidad y usabilidad de las aplicaciones cuando se incluye un mecanismo de administración de incertidumbre, con la finalidad de analizar el costo-beneficio que se puede obtener y determinar la conveniencia de la implementación de los mecanismos.
I.4 Hipótesis
I.5 Objetivos
Objetivo general.
Identificar, proponer y evaluar mecanismos para la administración de la incertidumbre en aplicaciones conscientes del contexto.
Objetivos específicos.
Identificar las principales causas de la incertidumbre en el contexto, con la finalidad de conocer las fuentes de incertidumbre y establecer lineamientos que ayuden a su identificación.
Identificar los problemas asociados a la presencia de incertidumbre en la aplicación, de igual manera resulta de utilidad conocer las consecuencias o implicaciones que se pueden tener cuando la incertidumbre no es considerada, ya que nos ayuda a profundizar el elemento contextual y su uso, apoyando el proceso de identificación de la incertidumbre.
Establecer una clasificación de la incertidumbre con la finalidad de facilitar su identificación y tratamiento.
Proponer un procedimiento general para la creación de mecanismos de administración de incertidumbre. Consiste en establecer los pasos que se deben seguir para la generación de un mecanismo heurístico particular que le proporcione a la aplicación la capacidad de administrar la incertidumbre.
Evaluar los mecanismos creados. Nos permite conocer la utilidad que puede adquirir la aplicación al incluir el mecanismo.
I.6 Metodología
Entendimiento inicial.
En esta etapa se realizó una revisión de la literatura con la finalidad de establecer y delimitar los términos utilizados durante el desarrollo del trabajo de investigación. Se consultaron fuentes documentales de cómputo ubicuo, cómputo consciente del contexto e incertidumbre. En forma paralela, se recopiló información de una gran variedad de aplicaciones conscientes del contexto que han sido desarrolladas desde el surgimiento de ubicomp, poniendo especial atención en los problemas que se han presentado y que han sido generados por algún tipo de incertidumbre. También, se estudiaron los trabajos desarrollados en CICESE que se encuentran relacionados con aplicaciones de ubicomp, con la finalidad de identificar posibles escenarios de implementación de aplicaciones conscientes del contexto.
Caracterización de la incertidumbre.
En esta etapa se procedió a crear una estructura organizacional de toda la información recopilada, con la finalidad de establecer un panorama global de la incertidumbre en aplicaciones conscientes del contexto.
Como parte de esta organización se definió una clasificación de los diferentes conceptos y nociones de incertidumbre, con la finalidad de simplificar su entendimiento y facilitar su manejo. Al mismo tiempo, se identificó que la incertidumbre puede ser tratada en dos diferentes momentos de la existencia del contexto, durante su creación y durante su utilización. Como resultado de lo anterior, se definieron los conceptos de incertidumbre original e incertidumbre derivada.
Diseño de mecanismos para la administración de incertidumbre.
Esta fase se desarrolló en dos etapas. La primera consistió en la definición de una metodología para la creación de mecanismos administradores de incertidumbre, en donde se tomaron como base las metodologías existentes para la creación de sistemas de información y la teoría de análisis de riesgos en sistemas de seguridad. El objetivo fue establecer un procedimiento sistemático que los creadores de aplicaciones de software puedan seguir para identificar riesgos de incertidumbre y establecer las acciones necesarias para su tratamiento.
La segunda parte consintió en el análisis de arquitecturas de diseño para la creación de aplicaciones conscientes del contexto. Como resultado de este análisis, se identificaron los elementos en los que se pueden incluir los mecanismos de administración de incertidumbre, sin modificar la estructura original, respetando al 100% lo propuesto por los autores y evitando en todo momento incrementar la complejidad del diseño de la aplicación en desarrollo.
Definición de escenarios de implementación
Con la información recopilada sobre los diferentes proyectos realizados en CICESE se procedió a establecer posibles escenarios en donde se pueden implementar aplicaciones conscientes del contexto. Específicamente nos enfocamos en los algoritmos de estimación de la localización (Castro y Favela, 2005; Rodríguez et al., 2004) y el procedimiento de estimación de la actividad del personal médico del hospital general de Ensenada (Favela et al., 2007; Sánchez et al., 2008).
información en un lugar y un momento determinado. El museo seleccionado fue el Museo Universitario Alejandro Rangel Hidalgo de la Universidad de Colima.
El procedimiento de estimación de la actividad formó parte de un escenario en donde se obtienen las actividades de una enfermera durante su jornada laboral dentro del hospital. Básicamente la aplicación se enfoca en calcular la actividad que las enfermeras realizan en un momento determinado e informarlo al usuario de la aplicación.
Otro escenario de aplicación que establecimos incluye el desarrollo e implementación de una aplicación consciente de la localización para el apoyo al aprendizaje colaborativo asistido por computadora desarrollada por (Messeguer et al., 2006).
Validación y experimentación.
Durante esta fase se definieron una serie de experimentos que permitieron evaluar la aplicabilidad y funcionalidad de la metodología propuesta para la creación de mecanismos administradores de incertidumbre, conocer la utilidad que se puede obtener al incluir en las aplicaciones conscientes de la localización los mecanismos administradores de incertidumbre e identificar la manera en que el usuario puede beneficiarse de estas acciones, principalmente en aspectos relacionados con la confiabilidad y usabilidad de las aplicaciones.
Los experimentos diseñados fueron: Una simulación de una aplicación consciente de la actividad de las enfermeras del hospital general de Ensenada; una simulación de una aplicación consciente de la localización para el apoyo al aprendizaje colaborativo asistido por computadora; un experimento de campo en el Museo Universitario Alejandro Rangel hidalgo.
Específicamente para el experimento de campo en el museo, se desarrolló e implementó una guía electrónica consciente de la localización. En este experimento participaron 118 visitantes al museo, los cuales realizaron un recorrido en el museo utilizando la guía electrónica y contestaron una serie de preguntas diseñadas para obtener datos sobre la utilidad, usabilidad y confiabilidad de la aplicación.
Otro experimento realizado, también se basó en la guía electrónica consciente de la localización creada en el experimento de campo en el museo. Pero el objetivo adicional fue comparar las diferentes estrategias propuestas para el tratamiento de la incertidumbre. El experimento se realizó en un laboratorio controlado dentro de la Facultad de Telemática de la Universidad de Colima. En este experimento se simuló la visita al museo a través de computadoras. Los participantes fueron 205 estudiantes de la Facultad, quienes realizaron un recorrido virtual en el museo utilizando la guía electrónica. Nuevamente se diseñaron una serie de preguntas para obtener datos sobre la utilidad, usabilidad y confiabilidad de la aplicación, pero adicionalmente se crearon preguntas enfocadas en obtener datos que nos permitieran comparar las diferentes estrategias de tratamiento de incertidumbre implementadas.
Análisis de resultados y generación de conclusiones.
En esta fase se realizaron una serie de actividades para obtener un análisis estadístico de los datos recopilados en cada uno de los experimentos, con la finalidad de tener una base sólida para respaldar los resultados y conclusiones obtenidas en los experimentos. Para ello, se aplicaron pruebas comparativas, pruebas de hipótesis, mediciones paramétricas y mediciones no paramétricas.
I.7 Contenido de la tesis
En este documento de tesis se resume el trabajo de investigación que ha sido llevado a cabo para alcanzar los objetivos planteados, siguiendo la metodología presentada en la sección anterior. El documento se encuentra organizado en seis capítulos.
El primero es un capítulo introductorio en donde se explica la motivación global de esta tesis y los objetivos que se persiguen con este trabajo. Además se describe la metodología que ha sido aplicada para llevar a cabo esta investigación.
El capítulo II “El cómputo consciente del contexto y la incertidumbre en el contexto”, describe el marco teórico de la tesis. Se presentan las definiciones más comúnmente utilizadas del concepto de cómputo ubicuo y cómputo consciente del contexto. Al mismo tiempo se describen algunos de los principales retos a los que se enfrenta esta rama de la computación para lograr su completa inclusión en el mundo real. Particularmente el énfasis de lo presentado en el capítulo se centra en la incertidumbre que puede existir en las aplicaciones conscientes del contexto y el posible daño que causaría en la confiabilidad de los ambientes ubicuos. En este sentido, se describen los diferentes conceptos y nociones de incertidumbre, así como las técnicas generales que han sido utilizadas en la computación para su tratamiento. Se concluye con la presentación y discusión de las diferentes técnicas utilizadas para el tratamiento de la incertidumbre en cómputo consciente del contexto. Además se estableció una clasificación de las técnicas presentadas, tomando como base el grado de intervención y conocimiento del usuario sobre la existencia de la incertidumbre, quedando definidos dos grupos: administración automática de incertidumbre y administración de incertidumbre asistida por el usuario.
de la incertidumbre desde las primeras etapas de creación de la aplicación. La metodología se basa en el seguimiento sistemático de tres etapas principales: Análisis de los riesgos potenciales de incertidumbre, análisis de tipos de incertidumbre en el contexto y aplicación de estrategias de administración de incertidumbre. En las dos primeras etapas se definen una seria de preguntas base que pueden ser utilizadas como guías para obtener la información necesaria para la identificación de la incertidumbre. En la tercera etapa se plantean las diferentes estrategias que pueden implementarse para el tratamiento de la incertidumbre, nuevamente son agrupadas en: administración automática de la incertidumbre y administración de incertidumbre asistida por el usuario. También se plantea la necesidad de realizar un análisis costo/beneficio de cada una de las técnicas que pretendan ser utilizadas para crear mecanismos administradores de incertidumbre, enfatizando que entre los objetivos de la administración de incertidumbre se encuentran el no complicar el diseño de la aplicación, ni perjudicar el desempeño de la misma y principalmente facilitarle al usuario la utilización del sistema.
Una vez descrita la metodología propuesta pasamos ahora a la parte relacionada con la creación de una aplicación consciente del contexto, para ello en el capítulo IV “Implementación de mecanismos de administración de incertidumbre en aplicaciones conscientes del contexto” se describen las principales arquitecturas de diseño existentes para la creación de sistemas ubicuos. Al mismo tiempo se describen los elementos de la arquitectura en donde es posible incluir un mecanismo de administración de incertidumbre creado con la metodología propuesta. Es importante aclarar que el objetivo es únicamente presentar a los creadores de aplicaciones diferentes opciones de arquitecturas que pueden ser utilizadas y donde pueden incluir el mecanismo, pero respetando al 100% el planteamiento original, sin la intención de modificar o crear una nueva arquitectura.
incertidumbre”. En este capítulo se detallan una serie de experimentos desarrollados con la finalidad de obtener información que permita demostrar la aplicabilidad y funcionalidad del procedimiento propuesto para la creación de mecanismos administradores de incertidumbre. También la información recopilada fue utilizada para evaluar la utilidad de la introducción de un mecanismo de administración de incertidumbre y su impacto en la confiabilidad de las aplicaciones conscientes del contexto. Para la realización de los experimentos se desarrollaron tres aplicaciones conscientes del contexto, cada una aplicada a un escenario diferente. La primera es utilizada en un ambiente de aprendizaje colaborativo dentro de un aula de clases, la segunda consiste en la estimación de la actividad realizada por una enfermera en un Hospital y la tercera es una guía electrónica consciente de la localización para Museos. Algunas de las conclusiones importantes que se obtuvieron como resultado de los experimentos, es que las aplicaciones conscientes del contexto se benefician al contar con mecanismos que les permitan mantener su funcionamiento en presencia de incertidumbre en el contexto. Otro resultado obtenido nos indica que la confianza de los usuarios puede verse afectada por la presencia de la incertidumbre en la aplicación.
Capítulo II
El cómputo consciente del contexto y la incertidumbre en
el contexto
histórico dentro del área de la computación. Desde sus inicios con la utilización de la lógica clásica de probabilidad hasta el manejo actual utilizando lógica difusa.
Finalmente, se hace la exposición de algunas de las técnicas que se han utilizado para el tratamiento de la incertidumbre específicamente en aplicaciones conscientes del contexto. Todas las técnicas presentadas se agrupan en dos clasificaciones generales: Tratamiento automático de incertidumbre y tratamiento de incertidumbre asistido por el usuario. Esta clasificación se basa en el nivel de intervención del usuario requerido por la aplicación para administrar la incertidumbre. En la primera clasificación la aplicación ejecuta las acciones necesarias para la administración de la incertidumbre sin requerir la intervención del usuario y en la segunda clasificación el usuario es el elemento ejecutor.
II.1 Conceptos generales.
El contexto del usuario
Diversos autores han propuesto definiciones de contexto en el ámbito computacional, entre ellos tenemos a Dey (2001) quién define contexto como cualquier información que puede ser usada para caracterizar la situación de una entidad (persona, lugar, u objeto) que es considerada relevante para la interacción entre un usuario y una aplicación. Salber et al.
el estado emocional, entre otros. En este sentido, el contexto puede ser utilizado por las aplicaciones para adaptarse y mejorar su desempeño. Abowd y Mynatt (2000) escribieron que es difícil establecer una definición completa del contexto, pero es posible determinar un conjunto mínimo necesario de lo que es el contexto respondiendo a las cinco W’s (“five W’s”), quién (“Who”) enfocándose en la identidad del usuario, qué (“What”) refiriéndose a
lo que el usuario está haciendo, dónde (“Where”) que es la localización del usuario, cuándo
(“When”) referente al tiempo, por qué (“Why”) relacionado con el “What” incluye
elementos del estado emocional de la persona como pueden ser temperatura corporal, ritmo cardiaco y reacciones de la piel. Schilit et al. (1994) afirman que tres aspectos importantes del contexto son, ¿dónde está el usuario?, ¿con quién está? y ¿qué recursos están cerca de él?, el contexto abarca mucho más que la localización del usuario, incluye iluminación, niveles de ruido, conectividad en la red, costo de comunicación, ancho de banda en la comunicación y situaciones de aspecto social.
Como se puede observar, es difícil encontrar una definición única del contexto, ya que depende en gran medida de la situación en que se quiera aplicar. Pero de manera general, el contexto del usuario puede definirse como el entorno físico, situacional, emocional, y social en el que se encuentra inmerso el usuario y que le dan significado, sentido y valor a las acciones o actividades que se realizan en torno a él.
primero reconocemos el contexto de nuestra persona objetivo y en el segundo utilizamos el contexto personal.
Sin embargo, las computadoras no cuentan con estas capacidades de percepción del entorno, por lo que no pueden aprovechar la gran cantidad de información que se encuentra en el ambiente del usuario y que puede ser utilizada para su beneficio. Proporcionarle a las computadoras estas capacidades de percepción y procesamiento del ambiente que rodea al usuario, es uno de los principales objetivos del cómputo consciente del contexto (Abowd et al., 2002; Abowd y Mynatt, 2000).
Aplicaciones conscientes del contexto
Ahora bien, tenemos que las aplicaciones de cómputo pueden hacer uso del contexto y convertirse así en una aplicación consciente del contexto.
Una de las primeras definiciones de software consciente del contexto fue propuesta por Schilit et al. (1994), donde afirman que un sistema consciente del contexto se adapta de acuerdo a la localización del usuario, a las personas que se encuentran cerca y a los dispositivos accesibles, puede examinar el ambiente computacional y reaccionar a los cambios del mismo para proveer servicios al usuario que le sean de utilidad para la realización de sus actividades cotidianas. Salber et al. (1999) describen que una aplicación consciente del contexto percibe la información contextual y modifica su comportamiento sin la intervención explícita del usuario. Abowd y Mynatt (2000) escribieron que la consciencia del contexto es la capacidad de las aplicaciones para adaptar el comportamiento basándose en información percibida del ambiente físico y del computacional. Prekop y Burnett (2003) afirman que las aplicaciones que integran un ambiente consciente del contexto deben ser capaces de adaptar su comportamiento dependiendo de la actividad que se realice.
información y/o servicios relevantes para el usuario, donde la relevancia depende de la tarea que se encuentra realizando el usuario.
Tenemos entonces que una aplicación es considerada consciente del contexto cuando cuenta con mecanismos que le permitan percibir, procesar y utilizar el contexto del usuario con la finalidad de adaptar su comportamiento para brindarle un mejor servicio al usuario. Por ejemplo, pensemos en un teléfono celular; una situación muy común es recibir una llamada y que el teléfono suene en un momento en el cual estamos en una reunión o en una actividad donde el sonido llega a ser molesto o inoportuno. Pues bien, una aplicación consciente del contexto podría utilizar información de nuestro contexto, como puede ser la localización, nuestra agenda de trabajo, la hora del día, el ruido ambiental, el número de personas alrededor, entre otros, para cambiar de manera automática a modo vibración cuando considere que nos encontramos en una situación en donde el sonido del teléfono puede ser un problema, o en caso contrario si se encuentra en modo vibración y la aplicación determina que nos encontramos en un ambiente extremadamente ruidoso, como por ejemplo conduciendo el auto, entonces que ajuste el volumen del teléfono con la finalidad de llamar nuestra atención y que sea atendida la llamada entrante.
II.2 La incertidumbre en aplicaciones conscientes del contexto.
como la aleatoriedad y falta de claridad o precisión de los conceptos utilizados en el lenguaje natural.
Ahora bien, la incertidumbre en el cómputo consciente del contexto puede ser generada por diferentes fuentes, entre las cuales podemos mencionar:
Sensores de contexto no confiables. Aquí, la palabra “sensor” se refiere no solo al hardware de detección, sino también a toda fuente de datos que pueda generar información del contexto del usuario. De manera general los sensores pueden ser clasificados en: (a) sensores físicos, como un detector de temperatura, de movimiento, de iluminación, de ruido, etc., (b) sensores virtuales, como la agenda de trabajo, el perfil del usuario, etc. y (c) sensores lógicos, como un mecanismo de inferencia que combina sensores físicos y virtuales (Indulska y Sutton, 2003). Tenemos entonces que la incertidumbre generada por sensores no confiables pude presentarse como consecuencia de dos situaciones diferentes. La primera se relaciona con el hecho de que el sensor del contexto utilizado es desconocido por completo; en este caso el sensor se comporta como una caja negra que únicamente proporciona el contexto que es utilizado por la aplicación, pero se desconoce su funcionamiento y no existe la posibilidad de interactuar con él. Por ejemplo, Hong et al. (2004) afirman que existen aplicaciones conscientes del contexto que utilizan información contextual proporcionada por terceros, en la cual se debe confiar, aun desconociendo la manera como ha sido generada y procesado. La segunda situación por la que puede generarse la incertidumbre se refiere al caso contrario, esto es, cuando es conocido que el sensor del contexto utilizado es no confiable por naturaleza, lo que significa que de origen existe un error asociado a la información contextual que genera. Por ejemplo, si el sensor se basa en la tecnología GPS, se sabe que la información generada tiene un margen de error de algunos metros en su estimación, por lo que el sensor es no confiable de origen. Sin embargo, como anteriormente se mencionó, el conocimiento de este error puede ser utilizado para disminuir la incertidumbre.
elemento. Por ejemplo, Benford et al. (2006) reportan que durante el uso experimental de aplicaciones conscientes de la localización, se presentaron situaciones en las cuales la información requerida para estimar la localización del usuario no era completa, debido a que existían zonas en donde no se tenía recepción de las señales de los satélites utilizados por el GPS y aún con esta falta de información se realizaba la estimación de la localización, lo cual provocaba un comportamiento errático en la aplicación.
Error en la información o datos. Se pueden presentar situaciones en las que tenemos toda la información requerida para crear el contexto pero ésta puede ser errónea. Este aspecto se encuentra relacionado con el ruido que puede existir en la información. Por ejemplo, al utilizar un registro dañado, señales distorsionadas, desconexiones en la red de datos o la falla en los dispositivos.
Ambigüedad en el contexto. Se pueden presentar diferentes interpretaciones de la misma información utilizada, por ejemplo, cuando el contexto es generado utilizando palabras como: “el objeto se encuentra cerca del lugar” o “la temperatura del dispositivo es alta”.
Independientemente de la fuente de generación, en general, la incertidumbre en el contexto puede referirse a tres diferentes nociones: (a) contexto incierto, (b) contexto ambiguo y (c) contexto erróneo.
b) Contexto ambiguo. Se presenta en diferentes situaciones, una de ellas se relaciona con el uso del lenguaje natural en la definición del contexto. Por ejemplo en Beeharee y Steed (2007) y Hightower et al. (2005) coinciden en señalar que la representación de la información es en ocasiones muy abstracta y difícil de relacionar con el mundo real, lo que dificulta la interpretación por parte de los usuarios; Poole y Smyth (2005) presentan casos en los cuales la no especificidad expresada en los conceptos que definen los objetos puede generar incertidumbre.
Otra situación de contexto ambiguo se presenta cuando se tienen diferentes fuentes para su creación. La heterogeneidad en las tecnologías utilizadas incrementan la complejidad en la adquisición y procesamiento del contexto, lo que al mismo tiempo puede provocar contradicciones entre la información proporcionada. Por ejemplo, en las aplicaciones donde se utilizan sensores físicos para la adquisición del contexto (Anliker et al., 2005; Broens et al., 2007; Sheikh et al., 2008; Siewiorek et al., 2003) los autores coinciden en la dificultad para la generación del contexto debido a la variedad y naturaleza de los sensores y tecnologías utilizadas.
Las contradicciones, violaciones de reglas o inconsistencias son otra situación en la que se genera contexto ambiguo. Por ejemplo, cuando la información señala que el usuario realiza dos o más actividades diferentes al mismo tiempo (Siewiorek et al., 2003); cuando dos o más acciones realizan operaciones contrarias sobre la misma propiedad del contexto en el mismo periodo de tiempo (Park et al., 2005); cuando se genera contexto que activa diferentes reglas al mismo tiempo y cada una de ellas ejecuta una acción diferente o bien cuando se presentan contradicciones generada por la ocurrencia de eventos disjuntos (Ranganathan et al., 2004); cuando diferentes fuentes de generación crean información contradictoria o que se contrapone (Dobson et al., 2006; Xu y Cheung, 2005; Xu et al., 2006).
diferencia existente entre el valor obtenido y el valor real, mientras que la precisión denota que tan seguido podemos esperar obtener esa exactitud (Grubesic y Murray, 2005; Hightower y Borriello, 2001). Para el caso de la información contextual, la exactitud se refiere a la fidelidad con que el contexto estimado representa la realidad del mundo físico. Por ejemplo, el Global Positioning System (GPS), una de las tecnologías de localización más ampliamente utilizadas por los sistemas conscientes de la localización, tiene una gran cantidad de factores que afectan la exactitud en la localización obtenida (Lachapelle, 2007), por lo que puede ser un factor que genere contexto erróneo. También el contexto erróneo puede ser generado por la falta o ausencia de información necesaria para crear el contexto, por ejemplo, Benford et al.
(2003, 2006) mencionan que se presentan situaciones en donde no existe la información completa de la localización y su utilización genera un comportamiento errático de la aplicación. Otro factor que puede generar contexto erróneo es la caducidad de la información contextual, esta característica se encuentra asociada al dinamismo del entorno del usuario, el cual cambia muy rápidamente provocando que la información contextual pueda perder su validez al momento de su utilización (Cahill et al., 2003; Korpipää et al., 2003).
II.3 Técnicas para manipulación de incertidumbre.
Existen diferentes técnicas para la manipulación de incertidumbre, en general se pueden agrupar en técnicas basadas en procedimientos numéricos y cualitativos.
sistemas de mantenimiento de la verdad (Truth Maintenance System) (Doyle, 1987) y la teoría de justificación (Theory of Endorsements) (Cohen y Grinberg, 1983a, 1983b). El problema principal que presentan se debe a su naturaleza cualitativa, por lo que no pueden considerar los distintos grados de certeza o incertidumbre en las hipótesis (Halpern, 2003; Parsons, 2001).
Los métodos numéricos tienen la característica de permitir la asignación de un valor a la certeza o incertidumbre en las hipótesis. En este grupo podemos mencionar los mecanismos probabilísticos clásicos, que se basan en la utilización de la teoría de probabilidad y el teorema de Bayes (Gámez-Martín y Puerta-Callejón, 1998), o en algunas extensiones como la teoría de la posibilidad y la teoría de la evidencia de Dempster-Shafer (Yager y Liu, 2008). Las Redes Bayesianas también utilizan la probabilidad pero incluyen relaciones de dependencia o causalidad en sus variables, además permiten la representación gráfica del modelo (Duda et al., 2000). Los factores de certeza se basan en la asignación a cada una de las hipótesis de un valor que representa la creencia sobre la veracidad de cada una de ellas; las hipótesis se encuentran formadas por reglas (Buchanan y Shortliffe, 1984). Finalmente, la lógica difusa se basada en la teoría de los conjuntos difusos cuya característica principal es la función de pertenencia, con la cual un evento puede pertenecer a un conjunto con un valor determinado por la función de pertenencia del mismo (Duda et al., 2000). El problema principal que presentan estos métodos numéricos es la necesidad de conocer las probabilidades o factores de certeza de los eventos, que en muchas situaciones de la vida real no es posible obtenerlos de manera sencilla o en algunos casos es casi imposible calcularlos, para la lógica difusa es necesario la intervención de expertos en la etapa de creación de las funciones de pertenencia, lo que dificulta su utilización.
II.4 Manipulación de incertidumbre en cómputo consciente del
contexto.
II.4.1 Administración automática de incertidumbre.
En este grupo se encuentran estrategias en donde las aplicaciones realizan acciones sin la intervención del usuario, en estas aplicaciones el usuario no es consciente de la existencia de la incertidumbre, todo el trabajo es realizado por la aplicación de manera automática. Se enfoca en el concepto de diseño de sistemas ubicuos con integración refinada y oculta de sus elementos (Chalmers y MacColl, 2003), en donde se busca disminuir la intervención del usuario en las aplicaciones, integrando capacidades a las aplicaciones que le ayuden a resolver de manera automática posibles problemas durante la ejecución. Dentro de este grupo podemos encontrar algunas propuestas que se basan en métodos cuantitativos para el tratamiento de la incertidumbre:
Basadas en redes Bayesianas.
Tau Gu et al. (2004a) proponen un modelo para la representación de contexto incierto utilizando redes Bayesianas para la inferencia de la actividad que se encuentra realizando una entidad. Para representar el contexto utilizan un modelo de predicados de primer orden de la forma Predicado(sujeto, valor) donde los sujetos pueden ser personas, lugares u objetos, los predicados pueden ser localizado en, tiene un estatus de, etc., los valores son el conjunto de valores que el sujeto puede tener como: en un cuarto, abierto, cerrado, vacío, etc. Por ejemplo, Location(John, bathroom) significa que John se encuentra localizado en el baño, Temperature(kitchen, 60) la temperatura en la cocina es de 60º C.
En la ontología se agregan dependencias entre los predicados que definen el contexto por lo que cuenta con los elementos necesarios para representarla en una red Bayesiana. Los nodos de la red son representados por los predicados del contexto y los arcos dirigidos entre los nodos son las dependencias entre los predicados. Por ejemplo, en la Figura 1a, se describe gráficamente una parte de una ontología de predicados que describen el contexto y las relaciones entre ellos, se observa que el estatus de Alis (cocinando) depende de su localización (cocina) y del estatus del microondas (prendido), entre otros. Ahora bien, en la Figura 1b, se muestra la representación de la ontología en una red Bayesiana que permite inferir la actividad de Tom, que depende de su localización, de los niveles de ruido y luz en la sala, de la localización y estatus de sus amigos, del número de personas en la casa, y de su perfil que indica la fecha de nacimiento, etc., con lo cual se infiere que Tom se encuentra celebrando su cumpleaños.
Figura 1. Representación de una ontología en una red Bayesiana (Tomada de Gu et al. (2004)).
Truong et al. (2005a, 2005b) proponen el modelado y manejo de la incertidumbre existente en el dominio en donde se implementa el sistema consciente del contexto basado en valores de probabilidad. Para ello utilizan Redes Bayesianas que permiten realizar inferencia del contexto con valores de probabilidad establecidos. Al mismo tiempo los autores sugieren la utilización de ontologías para la representación y almacenamiento del contexto, con la finalidad de permitir la reutilización de las ontologías en diferentes dominios de aplicación en donde se puedan crear las aplicaciones conscientes del contexto, ayudando a disminuir el tiempo y el esfuerzo requerido para la definición del contexto.
Primeramente, los autores definieron un modelo de contexto que consiste en dos partes: (a) El diseño relacional, mostrado en la Figura 2a, que representa la estructura y organización de la información en forma de clases, relaciones binarias, cadenas de relación y propiedades. (b) El modelo probabilístico, mostrado en la Figura 2b, en donde se encuentran las relaciones de dependencias probabilísticas entre las propiedades de las clases.
Figura 2. Diseño relacional (a) y Modelo probabilístico (b) (Tomado de Truong et al. (2005b)).
En el diseño relacional la unidad básica del modelo son las clases, por ejemplo, Room,
Window, Person, etc. Cada clase se integra por propiedades, por ejemplo, hasLightStatus,
El modelo probabilístico representa las relaciones de dependencia entre las propiedades de las clases. Estas propiedades cuentan con dos elementos una lista de valores, denominado
hasValue, y la distribución de probabilidad de cada uno de esos valores, denominada
hasPD, por ejemplo, la propiedad hasTemperature de la clase Room puede tener un
hasValue={Caliente, Tibio, Fresco, Frio} y un hasPD={0.3, 0.25, 0.25, 0.3}, la suma de todos los valores de hasPD debe ser igual a 1 para cumplir con el axioma Cada una de las propiedades con valores de probabilidad corresponden a un nodo de la Red Bayesiana. Teniendo definido el modelo del contexto, las aplicaciones pueden utilizarlo y realizar inferencia de contexto de alto nivel considerando la incertidumbre que pueda existir en el entorno en donde se implemente el sistema consciente del contexto. Como se muestra en la Figura 3, ellos establecen tres tipos de razonamiento.
Figura 3. Mecanismos de razonamiento con manejo de incertidumbre (Tomado de Truong et al. (2005b)).
Figura 4. Contexto con valores de probabilidad y la red Bayesiana derivada (Tomado de Truong et al.
(2005b)).
Abdelsalam y Ebrahim (2004) describen un procedimiento de estimación de la localización que se basa en la utilización de una Red Bayesiana formada a partir de un modelo de usuario que se integra con las características, hábitos y preferencias de los usuarios, aseguran que con este procedimiento se mejora la exactitud en la estimación de la localización, al mismo tiempo que se introduce el manejo de la incertidumbre por medio de la utilización de valores de probabilidad.
Para construir el modelo del usuario los autores primeramente definieron una serie de variables que se agruparon de la siguiente manera: (a) variables temporales, que representan cuando ocurre un evento, incluyendo, la hora del día y el día de la semana. (b) variables espaciales, representan la posible ubicación del objeto, como puede ser en una ciudad, en una parte de la ciudad, en una calle, en una carretera, en un edificio, etc. (c) variables del ambiente, representan cosas como las condiciones climáticas, las condiciones de tráfico en las carreteras y eventos especiales. (d) variables de comportamiento, representa elementos como la velocidad, aéreas de trabajo preferidas y reacciones comunes a ciertas situaciones. Posteriormente los autores generan el modelo del usuario con todas estas variables y les agregan relaciones de causalidad entre ellas. Al mismo tiempo incluyen valores de probabilidad asociados las variables y a las relaciones. Con esta información los autores crean una red Bayesiana como la mostrada en la Figura 5.
Por medio de esta red Bayesiana se puede inferir información de contexto, por ejemplo, conociendo el origen, el destino y las condiciones climáticas, es posible determinar la ruta más probable que sigue el chofer del taxi y la velocidad a que se desplaza, combinando esta información con la última localización conocida, es posible inferir la futura localización del taxista.
En esta propuesta nuevamente se maneja la incertidumbre desde el punto de vista probabilístico, en donde se asignan valores de probabilidad a cada una de las variables involucradas en la inferencia de información con una red Bayesiana. Nuevamente la debilidad más fuerte radica en la obtención de la información necesaria para el funcionamiento de las redes Bayesianas, los autores sugieren utilizar técnicas de aprendizaje computacional para obtener los valores de probabilidad de los archivos históricos, sin embargo ellos mismos afirman que esta puede ser una tarea muy complicada y tardada. También afirman que el número de variables que integren el modelo del usuario no puede ser muy grande, debido a que la red Bayesiana puede llegar a ser muy compleja y dificultar su implementación.
Ranganathan et al. (2004) presentan un prototipo de una infraestructura para la creación de aplicaciones y servicios que razonen acerca de la incertidumbre utilizando mecanismos de lógica probabilística, lógica difusa y redes Bayesianas.