jueves, 27 de junio de 2013

Una discución sobre inteligencia artificial, modelos agentes, algoritmos genéticos y problemas sociales

El otro día en clase de inglés discutimos la siguiente situación: una multinacional petrolera ha descubierto reservas de petróleo en reservas indígenas de cierto país del norte y desea a toda costa hacerse con esas tierras para poder explotar los recursos del lugar. Sin embargo, para hacer esto de manera legal deben convencer a las tribus de indígenas que ahí viven y no dejar que el peso político de cierta organización pro-naturaleza los intimide.

La discusión fue muy amena, argumentos por aquí y por allá. Los indígenas deseaban escuelas y empleos que la compañía le deseaba dar a cambio, la organización no deseaba que una malvada multinacional entrara a violar una zona ecológica protegida.

Por otro lado, en algunas de estas reservas, estos indígenas habían comenzado a producir drogas o construir casinos, que en cualquier otro lugar serían ilegales; a su vez, la multinacional es responsable de por lo menos cuatro accidentes y catástrofes ecológicas, de las que una y otra vez se lavó las manos; y a la organización verde le han donado 50 millones de dólares para poder resolver este conflicto, pero posee una bien ganada reputación de ser extremadamente radicales.

Esta discusión me llevo a pensar sobre algo que leí sobre los agentes programables en el estupendo y clásico libro “Inteligencia Artificial, un enfoque moderno”. Vale, mientras duraba la plática de mi clase yo veía a tres agentes que intentaban completar ciertos objetivos: producir dinero, impedir daños ecológicos y conseguir empleos, educación e integración social. Cada uno de estos agentes buscaba una manera de convencer a los otros para conquistar la meta que tiene planteada.

En aquel momento yo era miembro del grupo de los chicos ecológicos así que mi objetivo era impedir que los chicos petroleros acabaran con el ecosistema de las reservas. “Bueno” pensé, “tengo varias opciones, por un lado, la causa que persigo es del todo justa, desinteresada y moralmente superior… pero eso a los chicos petroleros no les importa, así que también puedo amarrarme a los arboles e impedir su paso, aunque eso no serviría de nada porque quizá los indígenas me saquen a golpes porque decidieron  vender su tierra”.

En fin, hay un mundo de posibilidades… pero, pensé, siendo que se trata de un problema de optimización y tenemos cierta variedad de opciones, quizá pensarlo como un algoritmo genético pudiera ser más eficiente. Me explico.

Cada agente tiene una propuesta que muestra a los otros dos agentes, y estos evalúan (función de fitness o adaptación, usando el argot de los algoritmos genéticos) cada una de las propuestas para decidir si aceptan una u otra propuesta (podría decirse que esto es una selección) y a la ves extienden ciertas recomendaciones para cada propuesta (a esto le llamaré radiación, por no tener una mejor palabra para describir a una idea que tiene probabilidades de producir un cambión en el código genético).

Una vez terminado este proceso, cada agente decide que propuestas deben retirar y cuales solo deben cambiar (selección). Finalmente, cada agente decide qué cambios deberán realizarse sobre su código genético (mutación) o si aceptan las modificaciones propuestas (cruzamiento). Lo siguiente es iterar por los siglos de los siglos hasta que alguien se canse o muera, lo mismo que podría decirse de cualquier plática babilónica.



Bueno, en mi vida diaria juego a ser programador y en mis fantasías a que sé algo sobre IA, así que creo que este proceso se puede optimizar para no llegar a un loop infinito.

Para empezar, me parece que los tres agentes deberían considerarse como un solo agente cuyo objetivo a optimizar es una mezcla de los objetivos de los otros agentes. En segundo lugar, cada propuesta de los antiguos agentes debería ser mutada para optimizar (o complacer) los nuevos objetivos principales ¿qué es una calumnia que unos se ayuden a otros? Bueno, quizá, pero en este momento trato de pensar que las personas involucradas actúan de la manera racional, y que uno de sus objetivos principales siempre es llegar a una conclusión lo más pronto posible.

Pero queda una pregunta: ¿cómo? Pues usando un operador de “Cruzamiento” modificado. Lo pensé con una de las propuestas que se dieron ese día. Para tratar de ser un poco más claro, propongo la siguiente forma de presentar el siguiente formato para los argumentos:

  1. El ex-agente “petrolero” desea: “producir dinero”, para conseguirlo:
  2. El ex-agente “petróleo” propone: “industria del petróleo”, escucha:
  3. El ex-agente “chico verde” se niega porque desea: “respeto por la naturaleza”.
  4. El ex-agente “petróleo” muta su propuesta y propone: “industria del petróleo respetuosa con la naturaleza”.
  5. El ex-agente “chico verde” pide una mayor mutación.
Hasta este punto llegamos en clase. Pero ¿qué habría pasado de haber continuado? No lo sé, pero considero que comenzar a mezclar las propuestas podría acelerar la conversación un poco. Por ejemplo:

  1. El ex-agente “petrolero” desea: “producir dinero”, para conseguirlo:
  2. El ex-agente “petrolero” propone: “industria respetuosa con la naturaleza”.
Es en realidad casi lo mismo si consideramos que el cruzamiento cambia de manera azarosa cada gen de ese código genético, considerando al código como un enunciado completo y cada palabra como un gen (“industria”, “del”, “petróleo” cruzado con “respeto”, “por”, “la”, “naturaleza” podría cambiar a “Industria del respetuosa” o a algún enunciado con menos sentido, como puede ser “industria del petróleo respetuoso” o “respeto por la industria”).

En fin, a lo que quiero llegar, es que cada viejo código puede ser tratado como una vía de optimizar los objetivos de los diferentes agentes y mezclarlos en el caso de considerar al grupo como un solo agente que busca optimizar los objetivos de cada uno de los agentes. Supongo que en las teorías de administración a esto se le llama Win Win, la verdad no lo sé.

El verdadero problema es que, en el mundo real las personas no siempre toman las decisiones más óptimas, por no decir que en muchos casos los objetivos de los agentes son totalmente contrarios, lo que no pasa en este ejemplo, donde se halló una situación de cooperación o simbiosis de una manera bastante directa.

No hay comentarios.:

Publicar un comentario