domingo, 9 de octubre de 2011

TENDENCIAS: Combinación de modelos de simulación basados en agentes con programación matemática

Modelos de simulación basados en agentes con programación matemática
Para empezar hablar sobre los modelos de simulación basados en agentes con programación matemática, debemos primero saber que es un modelo; un modelos es una representación simplificada de la realidad, diseñada para representar, conoce, o predecir propiedades de un objeto real, estos se construyen con el fin de estudiar un objeto real con más facilidad y poder determinar ciertas propiedades difíciles de observar en la realidad, claro que lo modelos también pueden representar procesos de simulación, en este caso es posible experimentar diferentes procesos bajo diferentes escenarios, que son el conjunto de condiciones bajo las cuales se construye el modelo, aunque aquí pueden darse algunos factores variables que pueden influir en el funcionamiento de la simulación.
Existen ciertos tipos de modelos:
Ø  Modelos analógicos: estos se construyen mediante mecanismos físicos (maquetas, mapas, etc.)
Ø  Modelos digitales: aquí se codifica el objeto real en cifras organizadas en estructuras de datos por ejemplo la reconstrucción de un cráneo, pero también se simula mediante funciones matemáticas, teniendo en cuenta que cada elemento del modelo tiene propiedades y valores específicos y explícitos.
Ø Modelos estáticos: estos representan modelos que interpretan la realidad en un instante concreto.
Ø  Modelos dinámicos: estos representan procesos relacionados los objetos reales entre si, simulando los mecanismos de cambio donde se pude estudiar la secuenciación temporal (simulación de un incendio forestal, la difusión de contaminantes etc.)
Ø Modelos basados en agentes: este es el modelo en el cual profundizaremos y dirigiremos esta tendencia; este se basa en un tipo de modelo computacional, que permite la simulación de accidentes y la interacción de personas en un espacio.



Combinación de modelos de simulación basados en agentes con programación matemática
En segundo lugar debemos hablar un poco acerca de lo que es la programación matemática para así poder profundizar sobre el tema del modelo basado en agentes, la programación matemática no es mas que lo que en un principio fue un modo de resolver problemas con programación mediante métodos matemáticos.
Para construir un modelo hay que tener mucho en cuenta que el camino de este es de continuas idas y vueltas. Y que es muy normal que después de haber sido culminada una fase haya que volver a una etapa anterior y así sucesivamente.
Los modelos de programación matemática se encuentran constituidos así:


  •    Conjuntos de Datos: Conocer los tipos de datos de los que se dispone; permite establecer, conjuntos y con ellos índices
  •     Parámetros: Representar los conjuntos de datos mediante Símbolos con subíndices, permitirá comenzar la conceptualización del problema. Generalmente en esta fase aparecen nuevos índices, o incluso se establecen parámetros que luego se comprobará que son variables.
  •    Objetivo: Establecer la función objetivo en forma de lenguaje natural (Maximizar el beneficio esperado o minimizar el ratio de aprovechamiento) permite empezar a definir variables que se pueden denominar de control.
  •       Variables de Control: se puede decir que las variables en la función objetivo no son las decisiones que se toman, sino los efectos de dichas decisiones, es por ello que se ha preferido denominarlas; de control.
  •   Restricciones: El modo más habitual de generar restricciones es expresarlas verbalmente  y cuantificarlas  posteriormente.
  •      Variables de Decisión: En general al plantear la función objetivo no se está plasmando las decisiones que en realidad se quieren tomar. Dichas variables deben ser también reflejada.
  •    Modelo Completo : La construcción del modelo completo (funciones objetivo más restricciones) dará generalmente nuevos índices, parámetros, variables y restricciones.
  •   Validación: La validación del modelo exige su formulación y su resolución. La importancia de esta etapa exige un apartado entero (el siguiente). La validación suele exigir recomenzar el proceso de validación desde el principio.

Características de un buen modelo de programación matemática:  principalmente son 3 objetivos básicos que se deben perseguir al momento de construir modelos de programación matemática


  1.      Que sea un modelo fácil de entender.
  2.      Que sea un modelo cuyos errores sean fáciles de detecta
  3.      Que sea un modelo de fácil resolución


Ahora si hablando del modelo basado en agentes (MBA). Es aquella técnica que nos permite realizar una simulación de las diversas interacciones y acciones de los individuos que se encuentran en un determinado entorno, para así poder saber qué consecuencias traen consigo al sistema. Mediante este modelo cada componente que hace parte del sistema real, se encuentra representado de una forma evidente e individual en el modelo. Los componentes básicos del sistema real, corresponden con los agentes del  modelo y a su vez las interacciones que se dan en los componentes del sistema real también se presentan en los agentes del modelo.
Con él se recrean operaciones simultáneas de agentes, para lograr predecir las acciones que se pueden presentar en los sistemas más complejos.

Los modelos basados en agentes, poseen tres tipos diferentes de agentes, autónomos, heterogéneos e independiente, cada uno de estos tiene sus propias metas y objetivos, y tienen la capacidad de interactuar entre sí y con su entorno.
Este tipo de modelos es de mucha importancia en sistemas complejos como:
·   Sistemas con componentes individuales homogéneos: en este caso varias disciplinas como la economía neoclásica plantean la idea de un individuo prototipo, confiando en que los resultados arrojados por este sistema puedan ser utilizados en el sistema real, teniendo en cuenta que los individuos de ese sistema real son realmente heterogéneos, pero existen otros casos en los que los resultados se encuentran alejados de la parte experimental, estos son los sistemas caracterizados por fuertes externalidades.

·   Sistemas adaptativos: en este caso cada componente individual puede aprender o ser seleccionado y reemplazado de acuerdo con algún criterio.


·    Sistemas en donde el espacio geográfico influye significativamente: si dos individuos se encuentran separados, la interacción entre ellos es menor.

·    Sistemas con redes sociales de interacción: las interacciones pueden tener influencia de otros factores, aparte del espacio físico.

·  Sistemas en los cuales se analiza la relación existente entre los atributos y el comportamiento de los individuos, visto desde las propiedades globales del grupo.
El MBA Combina algunos elementos como son la teoría de juegos, sistemas multiagente y sistemas complejos.




Ejemplo:
Modelo de reserva forestal
Una reserva forestal fue designada para garantizar el mantenimiento de la industria maderera de la zona y conservar los mejores bosques del país, diversos factores han atentado contra  la sostenibilidad de esta, y ha pasado de ser una zona prácticamente sin intervención humana a una deforestada y en manos de ocupantes ilegales.


Motivación del estudio:
  •     Problema: los colonos ocupan tierras, cortan arboles, se establecen o venden tierras y se localizan en la reserva
  •      Objeto de estudio: entender mejor el proceso de ocupación y la emergencia de terratenientes en la reserva forestal
  • Proceso de aprendizaje social: permite a los agentes resolver problemas minimizando costos de riesgos aceptando las experiencias o entradas de otros.

Análisis de la invasión de los terrenos.

Un colono decide si invade o no invade de varias formas:
-       Pensando por si mismo
-       Imitando a otro colono

Modelando los agentes:


Colono
ü  Toma en cuenta la percepción de otros:

-     Imita un colono vecino
-     Escucha controlador
-     Escucha al motivador
-     Sigue su modelo mental

Modelo de conocimientos

·         Endoso
Etiqueta con un valor asociado

·         ¿Qué endosan los colonos?
Acciones (ocupar - no ocupar)

·         Esquema del endoso
Escucha controlador 1
Escucha motivador   2
Escucha así mismo   3
Imita vecino              4


Calculo


Tiempo de simulación: 50 interacciones (años)
Numero de colonos: 20 inicialmente- (2 agregados por año)
Terreno: 40x40 celdas
Rango de visibilidad e vecinos: 3 celdas

Ø  La proporción de agentes desalojados por año: 0.01, 0.02, 0.03

Ejemplo de una salida grafica:

como cambia β en el tiempo

Con este ejemplo podemos relacionar este tema con nuestra vida cotidiana, y aplicarlo a diferentes problemas o casos que se nos presenten; esto es una nueva tendencia!  observamos que la Investigacion de Operaciones crece cada vez mas y cada dia nos demuestra que es pieza fundamental en cualqueir empresa o en nuestra vida personal a la hora de resolver un problema.


tomado de: modelado de sistemas complejos mediante simulación basada en agentes y mediante dinámica de sistemas. 
http://luis.izqui.org/papers/Izquierdo_Galan_Santos_Olmo_2008.pdf



domingo, 2 de octubre de 2011

Bitácora


La investigación de operaciones II  ha sido una clase bastante interesantes desde el primer día de clases ya que muy a pesar de que somos muy pocos en el salón de clases hemos podido interactuar entre todos para un mayor entendimiento y desarrollo de cada temática.
Por eso en esta bitácora incluiremos los temas dados durante la ultima semana de clases.

clase 7
fecha 27 de septiembre del 2011


El día martes 27 de septiembre el profesor Jairo Coronado a la 1:00 pm, comenzamos la clase explicando un tema llamado los procesos de MARKOV, donde nos explicaron la teoría que dice que los procesos de Markov a un tipo especial de proceso estocástico discreto, que es un concepto matemático que sirve para caracterizar una sucesión de variables aleatorias que evolucionan en función de otra variable, generalmente el tiempo, pero ese proceso estocástico discreto en el que la probabilidad de que ocurra un ejemplo depende del evento inmediatamente anterior y pues con razón ya que  las cadenas de este tipo se caracteriza por la perdida de memoria y por este motivo condiciona las posibilidades o resultados de los próximos eventos o eventos futuros. Una cadena de Markov es una secuencia X1, X2, X3,... de variables aleatorias y El rango de estas variables, es llamado espacio estado, el valor de Xn es el estado del proceso en el tiempo n. Si la distribución de probabilidad condicional de Xn+1 en estados pasados es una función de Xn por sí sola, entonces:

Observamos que xi es el estado del proceso en el instante i.

P {Xt+1 = j/X0 = XO, X1, X2,..., Xt = i} = P{ Xt+1 = j/ Xt+1 = j/Xt = i}


La probabilidad de transición  a una cadena homogénea es la probabilidad de pasar de un estado i a un estado j y esta probabilidad no varia con el tiempo.

Diagrama  de transición 


Xt= variable aleatorio en el tiempo.

Luego que nos explicaron esta teoría y de resolver las dudas de esto procedimos a resolver ejercicios que aplicamos en nuestra vida cotidiana, que nos parece excelente aprender la teoría con ejemplos que vivimos día a día como este que mostramos a continuación: 

ejemplo:
 Se tienen diferentes situaciones con respecto a un teléfono en las cuales hay una probabilidad para cada una.
Que el teléfono este ocupado y siga estado ocupado = 0.7
Que el teléfono este ocupado y pase a desocupado =0.3
Que el teléfono este desocupado y siga desocupado = 0.9
Que el teléfono este desocupado y pase a ocupado = 0.1

S= {ocupado, desocupado}
Xt = estado en que se encuentra el sistema.


nota: la sumatoria de todos los saltos salientes debe ser igual a uno.

0.7+ 0.3 = 1                         0.9+0.1=1

{EJEMPLO: S  1*9}
Xt= lugar donde se encuentra la rata

La rata debe moverse cada determinado tiempo de lugar ya que si no se mueve esta será electrocutada, por eso solo puede moverse en estas direcciones izquierda-derecha-arriba-abajo, no puede moverse de manera diagonal.

Tabla De Probabilidades Condicionales Homogéneas Del Movimiento De La Rata


1
2
3
4
5
6
7
8
9
1
0
1/2
0
1/2
0
0
0
0
0
2
1/3
0
1/3
0
1/3
0
0
0
0
3
0
1/2
0
0
0
1/2
0
0
0
4
1/3
0
0
0
1/3
0
1/3
0
0
5
0
1/4
0
1/4
0
1/4
0
1/4
0
6
0
0
1/3
0
1/3
0
0
0
1/3
7
0
0
0
1/2
0
0
0
1/2
0
8
0
0
0
0
1/3
0
1/3
0
1/3
9
0
0
0
0
0
1/2
0
1/2
0



Ejemplo: Problema del inventario
En el siguiente problema  tenemos que hay una empresa que distribuye transformadores, cuando la empresa tiene una capacidad de máximo 3 transformadores, y solo se puede pedir transformadores cuando el inventario este en 0. 

Estados= (0, 1, 2,3)






Xt =Numero de transformadores que se tienen al final de t.
Esta problema sigue la distribución de Poisson:





0
1
2
3
0



1



2



3






Para rellenar las probabilidades de la anterior tabla se hace usa la distribución de Poisson.
Por ejemplo:
Inventario inicial es igual a 0, y transformadores que se tienen para el sigueinte inventario sea igual a 0.
Para que se de esto, la demanda tiene que ser igual a 3, ya que como el inventario inicial es igual a 0, se piden 3 transformadores, y como el inventario final es igual a 0, significa que hubo una demanda o un requerimiento de 3 transformadores.




0
1
2
3
0
0,08


1



2



3





Probabilidad que el inventario inicial sea igual a 0 y el final sea igual a 1.
Para que se de esto, la demanda tiene que ser igual a 2, ya que se piden 3 transformadores, y 3-2 =1.


0
1
2
3
0
0,08
0,183

1



2



3





Las probabilidades de que el inicial sea 1 y el final sea 2, inicial 1 y final 3, e inicial 2 y final 3, son 0, ya que solo podemos pedir transformadores si nuestro inventario inicial es igual a 0.
Asi podemos rellenar toda nuestra tabla:


0
1
2
3
0
0,08
0,183
0,367
0,367
1
0,63
0,367
0
0
2
0,266
0,367
0,367
0
3
0,08
0,183
0,367
0,367