Copyright © 2010 GatoGringo.com. All Rights Reserved. Snowblind by Themes by bavotasan.com. Powered by WordPress.
Lo ideal sería tener una computadora como la de Star Trek: uno le pregunta algo o le pide algo, y en el 99% de los casos lo responde y/o lo lleva a cabo satisfactoriamente. Por qué no es tan sencillo como en la tele-serie?
Inteligencia Imprecisa
Hay dos problemas fundamentales: primero, recepcionar los enunciados del humano, y segundo, analizarlos/procesarlos/ejecutarlos. Estos problemas son considerados en la disciplina denominada “inteligencia artificial” (IA), la cual desde hace décadas intenta salir de un estado que podríamos denominar “embrionario”.
Aceptando la limitación de la IA, el segundo problema se suele resolver mediante el auxilio de lenguajes de programación especializados, y los consiguientes especialistas que los utilizan. Dependiendo de la sofisitación de los algoritmos y el diseño de los programas, el computador es (como sabemos) capaz de realizar un sinnúmero de tareas de manera espectacular por decir lo menos. En lo que sigue, queremos llamar la atención acerca del primer problema: cómo recepcionar los enunciados del humano. Concretamente, si aceptamos que es un conjunto de especialistas los encargados de alimentar de órdenes al computador (programarlo), queda todavía pendiente cómo hacer que estas instrucciones sean pasadas adecuadamente desde los usuarios finales a estos especialistas. Esto no es sencillo puesto que (generalizando), las personas a toda hora piensan y se expresan de un modo muy poco preciso. Todo aquel que ha estudiado matemáticas, sabe que es tremendamente sencillo enunciar proposiones aparentemente claras pero que resultan totalmente imprecisas sin un gran conjunto de formalismos.
Si estos profesionales requieren mucha precisión al interactuar con el computador, entonces es de esperarse que exijan una preción similar en los requerimientos de las personas (no especialistas) que desean especificar lo que el computador ha de hacer. En la práctica, el especialista está acostumbrado a ser visto como una persona que hace preguntas tontas, obvias o a veces muy difíciles de comprender.
Ejemplos por doquier: un comerciante requiere un sistema que le brinde de modo actualizado la “información de precios de todos los productos”… el especialista necesita dilucidar si se refiere a los precios actuales o a través del tiempo para cada producto; incluyendo los descuentos anunciados? interesan los precios ofertados o los precios a los que se vendieron finalmente? los precios se deben mostrar en moneda nacional o extranjera o en la moneda ofertada o en la moneda pagada por los clientes? al por mayor o por unidad? precios rebajados por promociones o libres de promociones? etc.
El Computador vs. el Cerebro
Del mismo modo, muchas personas no se dan cuenta de la complejidad de una tarea que se desa informatizar; esto puede ser debido a que el cerebro es extremadamente listo en muchos casos (típicamente ambigüos), y se asume que el computador debe serlo aún más. Por ejemplo, el zapatero más humilde puede realizar cortes de cuero bastante sofisticados de acuerdo al pie de su cliente, mientras que un programa que haga el respectivo análisis 3D se topa con una gran cantidad de dificultades: la matemática de superficies 3D es compleja (mientras que el cerebro del zapatero produce de manera inmediata una aproximación satisfactoria); la “captura” de la forma del pie es difícil (mientras que el zapatero la aproxima satisfactoriamente tomando algunas medidas referenciales); la interacción de cualquier persona con un software 3D suele ser compleja (podrá nuestro zapatero acostumbrarse al lenguaje de los vectores tridimensionales?), etc.
Limitaciones de la automatización
Recuerdo el caso de un cliente que fabricaba ciertas máquinas a partir de (entre otros materiales) varillas de fierro. Él deseaba que un sofware le especifique los cortes más apropiados en cada varilla a fin de reducir la cantidad de “retazos” que quedaban conforme se confeccionaban las máquinas.
Dado un conjunto de máquinas por confeccionarse, y las medidas de las partes, sería posible conocer la manera más adecuada de hacer los cortes de las varillas para reducir los sobrantes (y así comprar menos varillas.) Sin embargo, debe considerarse también:
* Cada trozo de varilla tendrá que etiquetarse y almacenarse hasta ser usado en su momento (en el taller la costumbre es cortar y usar de inmediato)
* El algoritmo aumenta su eficiencia con más máquinas a incluirse (pero los pedidos de las máquinas suelen ser muy pequeños)
* Cualquier error en los cortes también debe ser reingresado al sistema a fin de obtener una nueva serie de cortes óptima (requiere interrumpir el proceso)
* Esta nueva configuración óptima de cortes debe considerar las varillas que sí se cortaron bien, lo que obliga a ingresarlas en este punto (requiere constante alimentación al sistema)
Es decir, la “automatización de los cortes” requiería de un conjunto de cambios tales que (para aquel taller) resultaba impráctica.
Quién es más listo?
Muchas personas, quizá la mayoría, consideran que la habilidad de realizar operaciones matemáticas se constituye en la máxima muestra de inteligencia. Esto definitivamente no es cierto, y en cierto sentido puede ser todo lo contrario: los problemas matemáticos tienen como característica distintiva el tener enunciados precisos y no requieren mucho análisis contextual. Esto es, el matemático inteligente no requiere vérselas con la ambigüedad de los problemas más “reales” o “humanos” en el sentido más amplio.
Volviendo al público en general, puesto que éste asume gran inteligencia del matemático, espera algo similar del computador. Después de todo, son personas muy inteligentes sus creadores, por lo que el producto debería tener capacidades análogas.
Lamentablemente las inteligencias son múltiples, y la realidad demuestra que la excelencia matemática no proporciona otras capacidades de manera automática.
Qué pueden hacer los usuarios finales frente a la des-inteligencia del computador?
La respuesta fácil: contratar un “especialista” que comprenda las especificaciones ambiguas del usuario y las precise tal como el computador las requiere para hacer un trabajo útil. Este especialista además deberá detectar los casos en que no es conveniente utilizar al computador para satisfacer las especificaciones (como en el caso del corte de varillas metálicas antes comentado.) De aquí se colige que el especialista deberá ser capaz de comprender completamente las necesidades del usuario, para lo cual de seguro deberá conocer diversos aspectos de su actividad diaria (de su dominio de conocimiento.)
Esto resulta más complejo de lo que parece. El problema obvio radica en la complejidad del dominio de conocimiento del usuario, la cual puede ser excesiva para un especialista que pretende hacer un análisis superficial para estimar la magnitud y el costo del sistema informático. Ocasionalmente se requiren varios especialistas con preparación mixta, y/o equipos multidisciplinarios de éstos.
En ocasiones el dominio de conocimiento es tan especializado que el mismo usuario se ve en la obligación de capacitar al especialista informático durante largo tiempo; el riesgo aquí aumenta tremendamente en función de la efectividad del usuario para realizar dicha capacitación: estará el especialista dispuesto a recibir “clases” durante algunos meses sólo para realizar una cotización? El usuario (que muchas veces trabaja durante años en su rama) tendrá la capacidad de estimar el tiempo necesario para tal capacitación? Muchas veces se plantea un enfoque mixto: el usuario capacita superficialmente, el especialista propone a partir de esta capacitación; el usuario vuelve a capacitar con más profundidad, y así sucesivamente. Cuántas iteraciones de éstas serán aceptables por el usuario y el especialista? es permisible legalmente lanzar propuestas “correctivas”?

June 3, 2010 at 5:04 am
Los informáticos son corchos.