Hola y bienvenidos a la unidad 7 de la introducción al modelado basado en agentes
en esta unidad vamos a discutir 3 conceptos comunes que uno tiene que pensar
cuando construimos nuestros propios modelos basados en agentes
verificación, validación y replicación y estos están relacionados debido a que
están vinculados entre sí
la primera cosa de la que quiero hablarles es de la distinción entre verificación y
validación
la verificación es el proceso mediante el cual uno se asegura que el modelo
conceptual coincida con el modelo que fue implementado
comenzamos diseñando el modelo y empezamos pensando en cómo se va a ver el modelo
uno escribió un modelo basado en agentes que es una pieza de código, un producto
del código, un artefacto si queremos, basado en el modelo conceptual
la verificación nos da certeza acerca de que nuestro modelo implementado coincida
con el modelo conceptual
por otra parte, la validación es el proceso mediante el cual nos aseguramos
que nuestro modelo implementado coincida con el mundo real, hay algo acerca de la
forma en que construimos nuestro modelo, nos ayuda a comprender que sucede en el
mundo real, esto puede venir de experimentos mentales, un tipo de punto de
vista, podría venir de la necesidad de tener un pronóstico acerca de lo que pasa
pero en algún sentido nos ayuda a entender el mundo real
la replicación no fue mencionada en esta diapositivo, pero está vinculada con cada
una de ellas, ya que sucede cuando alguien más trata de construir un modelo
implementado que se basa en nuestro modelo conceptual
y en ese escenario nos ayuda para iluminar algunos de los procesos que involucran a
la verificación y a la validación, del que hablaremos más adelante
la comunicación es esencial para la veriificación
vamos a comenzar hablando de verificación
a veces el desarrollador del modelo y el autor del modelo no son la misma persona
una persona implementa el modelo y hay otra persona que piensa el modelo
reducir o eliminar la distancia que existe entre el desarrollador y el autor puede
ayudar a mejorar el modelo como un todo puede mejorar la verificación
de hecho NetLogo fue escrito en parte como para ayudar a estar seguro de que esa
distancia es la menor posible, así el desarrollador del modelo, quien escribe el
modelo puede compartir ese modelo directamente con el autor del modelo
de tal manera que ambos pueden comprender que es lo que ocurre
el rigor en la verificación asume un número diferente de formatos y veremos el
rigor en la verificación, es decir que estamos usando estándares apropiados
para verificar que el modelo fue implementado correctamente
uno de los estándares es la documentación que hemos discutido antes, siempre tenemos
que estar seguros que el diseño conceptual y que la documentación sobre la
implementación están bien documentadas el modelo implementado tiene que estar
bien documentado, de hecho en el mejor escenario posible uno debería poder tomar
partes del modelo conceptual y que se reflejen directamente en la implementación
algunos ejemplos de la verificación vienen con el testeo de la programación, probar
el código del modelo y esto se puede realizar de diversas formas, vamos a
hablar de algunas de ellas mediante algunos ejemplos
el testeo de las unidades significa que vamos a testear componentes individuales
del código
el código paso a paso significa que nos vamos a sentar con alguien más y avanzamos
a través del código y le explicamos que es lo que estamos haciendo en esa parte
del código, para que pueda ser comprendido
el debugueo paso a paso implica que cuando corremos el código y vamos parando para
estar seguros que está haciendo lo que esperamos en cada punto individual
y el testeo formal es algo a considerar en los modelos basados en agentes debido a
que a veces los modelos basados en agentes son demasiado complejos para entenderlos
pero en algunos casos se puede probar que el código cumple con lo que uno se propuso
además del test de programación tenemos el testeo de casos y escenarios
aquí es donde nos situamos entre la validación y la verificación
lo que realmente queremos hacer es probar el modelo conceptual y ver si coincide con
el modelo implementado
nuestro modelo conceptual está construido sobre el mundo real, en algún sentido ya
estamos probando la relación entre el modelo implementado y el mundo real
pero no es ese el objetivo de este test, el objetivo es probar la relación entre el
modelo conceptual y el modelo implementado
una par de cosas que hay que tomar en cuenta, podemos pensar en un nivel más
alto, probar los componentes, probar el modelo local de una vez
por ejemplo el caso de las esquinas, que es cuando asignamos parámetros a 0 o
algunos parámetros son asignados al máximo valor y luego corremos el modelo para ver
si realmente hace lo que esperamos
el caso de las muestras, podemos, al azar, probar un conjunto de muestras
y ver si la conducta del sistema, al menos no rompe el sistema, al menos cumple con
la conducta que esperamos
puede ser que para algunos escenarios particulares, uno puede saber cuales son
los valores, podemos pensar de nuevo en el modelo de difusión que construimos en la
unidad 4, nosotros sabemos que si asignamos la influencia a valores de 0
nada va a suceder, no hace nada y eso es un valor de salida natural para el modelo
podemos realizar también una prueba de valores relativos, puede ser posible que
ajustando algunos de los valores, que están relacionados, podemos obtener
algunas intuiciones acerca de lo que está sucediendo, sabemos que si el eje X va
para arriba, el valor de salida también irá para arriba
podemos probar eso
esta es una clase de introducción a la verificación y una vista general
en las próximas charlas vamos a hablar de esto con más detalle, vamos a ver sus
partes componentes