i
UNIVERSIDAD DE COLIMA
FACULTAD DE TELEMÁTICA
“SIMULACIÓN ESTOCÁSTICA PARA PREDICCIÓN EN LOS
DEPORTES”
TESIS
QUE PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS, ÁREA TELEMÁTICA
PRESENTA
ING. HUMBERTO RAMÍREZ GONZÁLEZ
ASESORES
PH.D. CARLOS MOISÉS HERNÁNDEZ SUÁREZ
M.C. MARTÍN SANTOS VIRGEN
COLIMA, COL., JUNIO DE 2001.
i
Agradecimientos.
El expresarme correctamente nunca ha sido mi principal destreza, así que
solo espero no olvidar mencionar a ninguna persona, que de alguna forma
ú otra, me apoyaron para llegar hasta aquí.
A Dios, por todo lo que he recibido de él.
A mis padres, que desde niño me inculcaron el estudio y su
principal preocupación fue la educación de mis hermanos y
mía.
A mis hermanos, pues sé que siempre puedo contar con ellos.
A Livier gracias por tu apoyo y compañía, han sido muy
importantes.
A Anelsy, mi hija, quien ocupa gran parte de mis
pensamientos y por quien sé, debo superarme.
A Carlos, mi mejor amigo, pues sin sus regaños, consejos y
apoyo, difícilmente podría estar aquí.
A mis compañeros de la maestría, creo que fue muy divertida
esta etapa, y creo también, que aprendimos mucho.
A Carlos Moisés, por la oportunidad que me dio, de colaborar
con él y aprender muchas cosas, durante la elaboración de
este trabajo.
A mis maestros de la maestría, y al personal de la Facultad de
Telemática, de quienes he recibido bastante apoyo desde que
inicie mis estudios de maestría. Moisés, Román H., Román G.,
Martín, Gilberto, Erika, Raúl, Pedro, Sara, Omar, etc.
Humberto Ramírez González.
i
RESUMEN.
Este trabajo “Simulación estocástica para predicción en los deportes” fue
desarrollado con la finalidad de utilizar una herramienta tan poderosa y necesaria
hoy en día como lo es la computadora junto con otras ciencias del conocimiento,
como lo es la probabilidad y la estadística, demostrando que el campo de
aplicación de la ciencia de las computadoras va mas allá de los límites que
muchas veces son planteados.
Uno de los objetivos de esta investigación es el poder predecir con un alto
grado de confianza los resultados del torneo de fútbol mexicano de primera
división, este sistema no contempla la posibilidad que tienen lo equipos de
enfrentarse mediante el termino de repesca o “repechaje”, lo cual podría ser
implementado si se quisiera incrementar el grado de confianza de los resultados.
Es sabido que en un juego que es de equipo, todos los miembros tienen
fundamental importancia y repercusión en el desempeño del mismo, por lo tanto
cuando un equipo cambia de jugadores, no es tan importante el comportamiento
que haya tenido anteriormente. Considerando este punto podemos mencionar que
para la recopilación de información para este sistema, sólo deberán ser
considerados los resultados acumulados del torneo que se está jugando.
Para realizar las distintas pruebas del sistema se utilizaron los resultados
de torneos anteriores y se fueron comparando los resultados arrojados por el
sistema con el resultado de ese torneo en particular.
Por último es importante hacer notar que no existe ningún método que
pueda predecir totalmente el comportamiento de un sistema que tenga un
comportamiento aleatorio, sin embargo es posible mediante la combinación de
diversos métodos, lograr una muy buena predicción del mismo. Por ello, este
i
trabajo esta enfocado a predecir el comportamiento aleatorio de un evento a
través de una simulación estocástica, mediante una aplicación para el torneo de
fútbol mexicano de la primera división.
i
SUMMARY.
This work “Simulación estocástica para predicción en los deportes” was
developed with the intention of using a powerful and necessary tool such as the
computer together with another sciences, as probability and statistics, showing that
the application field of the computer science goes beyond limits that are usually
stipulated.
One of the objectives of this investigation, is to predict with a high accuracy
the results of the Mexican football soccer’s first division match, this system does
not contemplate to the possibility that have the equipments to face by means of
“repechaje”, which could be implemented to increase the accuracy of results.
It is known that in a equipment game, all the members have fundamental
importance and repercussion in the performance of the same one, therefore when
an equipment changes its players, is not so important the behavior that it has had
previously. Considering this point we can mention that for the compilation of
information for this system, only accumulated results of the match being played will
have to be considered.
In order to make the different tests from the system, the results of previous
matches were used and they went comparing the results thrown by the system with
the result of that individual match.
Finally, is important to make notice that does not exist any method that can
predict totally the behavior of a system that has a random behavior, nevertheless is
possible by means of the combination of diverse methods, to obtain a very good
prediction of the same one. For that reason, this work is focused to predict the
random behavior of an event through an stochastic simulation, by means of an
application for the mexican soccer first division match.
i
Índice
No. Página
Agradecimientos .................................................................................................. i
Resumen .............................................................................................................. ii
Summary ............................................................................................................. iii
Índice ............................................................................................................ iiii
Tabla de imágenes ......................................................................................... iiiiiiii
Introducción ................................................................................................... iiiiiiiii
Objetivo ..................................................................................................... iiiiiiiiii
Justificación .............................................................................................. iiiiiiiiii
Hipótesis ................................................................................................... iiiiiiiiii
I. Teoría de la probabilidad
I.1. Modelo estocástico. .................................................................................. 1
I.2. Procesos estocásticos. ............................................................................. 2
I.3. Aleatorio vs. Determinístico. ..................................................................... 3
I.4. Algunos generadores comunes ................................................................ 4
I.5. Variables aleatorias................................................................................... 6
I.6. Distribución de probabilidad para variables aleatorias discretas ............... 7
I.6.1. Pruebas de Bernoulli. ....................................................................... 8
I.6.2. Distribución binomial. ........................................................................ 9
I.6.3. Distribución hipergeométrica. ......................................................... 11
I.6.4. Distribución Poisson. ...................................................................... 12
I.7. Distribución de probabilidad para variables aleatorias continuas. ........... 13
I.7.1. Distribución uniforme. ..................................................................... 15
I.7.2. Distribución normal. ........................................................................ 15
I.7.3. Distribución exponencial. ..................................................................... 16
I.7.4. Distribución gamma. ............................................................................ 17
i
II. Simulación
II.1. Método Montecarlo ................................................................................ 20
II.2. Simulación. ............................................................................................ 21
II.2.1. Parámetros ambientales. ............................................................... 23
II.2.2. Variables. ....................................................................................... 23
II.2.3. Número de simulaciones. .............................................................. 23
II.3. Tipos de simulación. .............................................................................. 24
II.3.1. Simulación discreta. ....................................................................... 24
II.3.2. Simulación determinística. ............................................................. 24
II.3.3. Simulación estocástica. ................................................................. 25
II.4. Usos de la simulación. ........................................................................... 25
II.4.1. Herramientas educacionales. ........................................................ 26
II.4.2. Medios de análisis. ........................................................................ 26
II.4.3. Predictores. ................................................................................... 26
II.4.4. Ciencia de la computación. ............................................................ 27
II.4.5. Caos y sistemas complejos. .......................................................... 27
II.4.6. Realidad virtual. ............................................................................. 27
II.4.7. Vida artificial. ................................................................................. 28
II.4.8. Modelado físico y animación por computadora.............................. 28
II.5. Antecedentes de sistemas de simulación .............................................. 28
II.6. Ventajas de la simulación. ..................................................................... 30
II.7. Desventajas de la simulación. ................................................................ 31
II.8. Simulación de un proceso. ..................................................................... 32
III. Herramientas de desarrollo
III.1. Matlab. .................................................................................................. 35
III.1.1. Productos adicionales. .................................................................. 36
III.1.2. Características. ............................................................................. 36
III.1.3. Características adicionales del producto. ..................................... 37
i
III.1.4. Gráficos y Visualización. ............................................................... 37
III.1.5. Herramientas GUI y gráficas programables. ................................. 38
III.1.6. Simulación y modelización. .......................................................... 38
III.1.7. Algoritmos fundamentales:Matlab y Toolboxes. ........................... 38
III.1.8. Los beneficios de programar en Matlab. ....................................... 39
III.1.9. Conectando aplicaciones de Matlab con nuevos entornos. .......... 40
III.2. Simulink. ............................................................................................... 40
III.2.1. Características. ............................................................................. 41
III.2.2. Características principales. ........................................................... 41
III.2.3. Una extensa librería de bloques. .................................................. 42
III.2.4. Simulación. ................................................................................... 43
III.2.5. Modernos algoritmos de integración. ............................................ 43
III.2.6. Integración con Matlab. ................................................................ 43
III.2.7. Bibliotecas de enlace dinámico dll. ............................................... 44
III.3. Lenguaje de programación Visual Basic 6.0. ........................................ 44
III.3.1. Características. ............................................................................. 45
III.3.2. Entorno de desarrollo integrado. ................................................... 46
IV. Sistema de simulación
IV.1. Torneo de fútbol mexicano de primera división. ................................... 49
IV.2. Metodología. ......................................................................................... 49
IV.2.1. Simulación de un partido. ............................................................. 50
IV.2.2. Simulación de una jornada. .......................................................... 51
IV.2.3. Simulación del torneo. .................................................................. 51
IV.3. Sistema. ................................................................................................ 51
IV.3.1. Entrada de datos. ......................................................................... 52
IV.3.2. Procesamiento de Información. .................................................... 57
IV.3.2.1. Funcionamiento en modo pasivo. ........................................ 64
IV.3.2.2. Funcionamiento en modo activo. ......................................... 68
IV.3.3. Salida de información. .................................................................. 69
IV.3.3.1. Salida pasiva y activa. ......................................................... 69
i
IV.3.4. Solución a preguntas ¿QUÉ PASA SÍ?. ....................................... 70
IV.4. Prueba de la hipótesis. ......................................................................... 71
Conclusiones .................................................................................................... 77
Bibliografía ........................................................................................................ 81
i
Tabla de imágenes.
No. Página
Imagen
4.1 Captura de grupos .................................................................................. 53
4.2 Captura de jornadas................................................................................ 54
4.3 Captura de resultados ............................................................................. 55
4.4 Elección del tipo de simulación ............................................................... 63
4.5 Grafica de una simulación ....................................................................... 70
4.6 Pantalla para la simulación activa ........................................................... 72
4.7 Probabilidades de clasificación en la jornada 10 .................................... 73
4.8 Simulación del encuentro Atlas vs. Puebla ............................................. 74
4.9 Simulación del encuentro León vs. América ........................................... 75
4.10 Simulación del encuentro Puebla vs. Santos ........................................ 76
4.11 Simulación del encuentro Pachuca vs. Santos ..................................... 76
i
INTRODUCCIÓN.
Los avances en la tecnología llevan invariablemente a la construcción de
sistemas con capas adicionales de complejidad que están formados por
subsistemas aun más complejos. Con el tiempo estos sistemas llegaran a
convertirse en subsistemas de otros sistemas mucho más complejos. Dentro de
todo este crecimiento, los simuladores proveen un medio por el cual estos
sistemas abstractos o del mundo real pueden ser comprendidos y evaluados, al
duplicar el comportamiento de estos sistemas mediante hardware y/o software.
Un fenómeno aleatorio que surge en un proceso (ej. el movimiento de una
partícula en movimiento browniano, el crecimiento de una población, el
desempeño de una red de computadoras) que se desarrolla en el tiempo de una
manera controlada por medio de leyes probabilísticas se denomina proceso
estocástico.
Es importante mencionar que son muchos los recursos destinados al
desarrollo de equipo de cómputo poderoso que sea capaz de resolver problemas
complejos, problemas que también pueden ser atacados mediante la simulación
del mismo.
Por otro lado, el fútbol es un deporte que desde sus inicios hasta ahora ha
incrementado enormemente el número de sus seguidores, y es mucho el interés
que generan los torneos que se juegan a lo largo del mundo, llegándose incluso a
invertir grandes cantidades de dinero en apuestas en países donde esto es legal,
también forma parte del prestigio de algún medio de información el poder hacer
pronósticos o predicciones de los resultados que se tendrán en un torneo con un
alto grado de confianza.
i
Objetivo.
Desarrollar un sistema que utilice la simulación estocástica para predecir
los resultados del torneo mexicano de fútbol de primera división, demostrando que
la simulación es una herramienta útil para conocer el comportamiento de los
sistemas, antes de que los eventos involucrados ocurran.
Justificación.
La simulación ha sido uno de los principales objetivos del uso de las
computadoras desde sus inicios, son muchos los recursos que se han destinado al
desarrollo de hardware poderoso que permita simular sistemas complejos, sin
embargo es posible atacar muchos problemas mediante el uso de una PC y
lenguajes de programación o utilizando software de simulación.
Es muy importante cuando se va a implementar algún sistema, predecir su
comportamiento y saber cuales serian las condiciones que favorecerían el
desempeño del mismo, esto es posible lograrlo utilizando la simulación.
Hipótesis.
Después de haber hecho un análisis sobre distintos enfoques posibles para
este trabajo, se propone la siguiente hipótesis:
“Un modelo de simulación estocástica por computadora es capaz de
predecir con un alto grado de confianza, los resultados del torneo de fútbol
mexicano de primera división”
Simulación estocástica para predicción en los deportes.
1
CAPÍTULO I.
TEORÍA DE LA PROBABILIDAD.
En este capitulo se analizaran algunos conceptos básicos sobre la
probabilidad y la estadística, para primeramente, comprender el comportamiento de
un proceso estocástico y posteriormente poder reproducirlo.
I.1. Modelo estocástico.
La palabra estocástico se deriva del alfabeto griego y significa “aleatorio”,
antónimo de determinista, que significa seguro o cierto. Un modelo determinista
predice una salida dado un conjunto de circunstancias. Un modelo estocástico
predice un conjunto de salidas determinadas por sus probabilidades. Cuando
lanzamos una moneda al aire, es seguro que esta caerá en algún lugar, pero es
incierto si caerá cara o cruz. (Howard M. Taylor, 1994)
“Sin embargo los fenómenos que se analizan, no son inherentemente
estocásticos o deterministas, sino que es elección del observador definirlo, la
elección depende del propósito del observador.” (Howard M. Taylor, 1994)
Para crear un modelo científico se tienen tres componentes: un fenómeno
natural que es el objeto de estudio, un sistema lógico que permite realizar
deducciones sobre este fenómeno, y una manera de enlazar los elementos del
sistema natural que esta siendo estudiado con el sistema lógico que se utiliza para
modelarlo.
Para que un modelo estocástico sea útil, debe reflejar todos los aspectos que
son relevantes para el problema sobre el que se esta trabajando del fenómeno que
Simulación estocástica para predicción en los deportes.
2
esta siendo estudiado, además, el modelo debe realizar cálculos y permitir hacer
deducciones de importantes predicciones o implicaciones sobre dicho fenómeno.
Muchos sistemas tienen un comportamiento estocástico y por lo tanto deben
ser modelados mediante elementos estocásticos, esto significa que en estos
modelos de simulación estocástica se utilizaran distribuciones probabilísticas.
Conforme la simulación avanza, se toman muestras de estas distribuciones para
proveer un comportamiento estocástico.
I.2. Procesos estocásticos.
Los procesos estocásticos son formas de cuantificar las relaciones dinámicas
de secuencias de eventos aleatorios. Estos juegan un papel importante en muchas
áreas de las ciencias naturales y de la ingeniería. Pueden ser utilizados para analizar
la variabilidad inherente en los procesos médicos y biológicos y para proveer nuevas
perspectivas, modelos, metodologías, e intuición para apoyar en estudios
estadísticos y matemáticos.
Un fenómeno aleatorio que surge en un proceso (ej. el movimiento de una
partícula en movimiento browniano, el crecimiento de una población, el desempeño
de una red de computadoras, la dispersión de un virus en una población) que se
desarrolla en el tiempo de una manera controlada por medio de leyes probabilísticas
se denomina proceso estocástico.
Para entender mejor este concepto analizaremos la definición del movimiento
Browniano, (el movimiento browniano es el movimiento constante errático de
pequeñas partículas suspendidas en un fluido o en gas. El movimiento inherente del
fluido ocasiona que las partículas suspendidas sean golpeadas de forma aleatoria.
Este impacto ocasiona que las partículas se muevan, por estas razones es
prácticamente imposible conocer la posición de una partícula en un momento
determinado).
Simulación estocástica para predicción en los deportes.
3
Así pues un proceso estocástico es una familia de variables aleatorias Xt,
donde t es un parámetro de un conjunto adecuado de índices. Por conveniencia se
escribe X(t) en lugar de Xt. Normalmente el índice t corresponde a unidades
discretas de tiempo, y el conjunto de índices es t={0,1,2,3,…}. De esta forma Xt
puede representar el resultado de lanzar sucesivamente una moneda varias veces,
la respuesta repetida de una persona en un experimento de aprendizaje, o las
observaciones sucesivas de alguna característica en una población. (Howard M
Taylor, 1994)
Los procesos aleatorios se distinguen por su espacio estático, o el rango de
posibles valores para la variable aleatoria Xt, por su conjunto de índices t y por las
relaciones de dependencia entre las variables aleatorias Xt.
I.3. Aleatorio vs. Determinístico.
Se ha mencionado hasta este punto la palabra aleatorio, pero ¿como se
obtienen estas variables?. Lo primero que se necesita para la simulación estocástica
es una fuente de aleatoriedad. Este punto es muy importante ya que muchas de las
funciones llamadas generadoras de números aleatorios incluidas en muchos
lenguajes de programación están muy lejos del concepto de aleatoriedad y esto ha
traído como consecuencia la invalidez de muchos estudios. (Brian D. Ripley, 1987)
“Parece perverso utilizar una computadora, la mas precisa y determinista de
todas las maquinas concebidas por la mente humana, para producir números
“aleatorios”. (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T.
Vetterling, 1988)
Todas las funciones de uso común son en realidad pseudo-aleatorias, con
esto queremos decir que su comportamiento es determinista pero intenta imitar las
Simulación estocástica para predicción en los deportes.
4
propiedades de una secuencia de variables aleatorias independientes uniformemente
distribuidas.
Solo en ciertas y muy pocas ocasiones se requiere de variables aleatorias
independientes distribuidas uniformemente tal como son proporcionadas por los
métodos de generación de las computadoras. Sin embargo estas representan una
fuente útil de aleatoriedad que puede ser cambiada a cualquier forma.
La simulación fue uno de los primeros usos de las computadoras digitales. Los
pioneros de la computación notaron que los dispositivos físicos no se mezclaban bien
con las computadoras digitales. Aun cuando tablas de números aleatorios estaban
disponibles en cintas o tarjetas perforadas, éstas eran demasiado lentas y
complicadas. Así que se requirió buscar formas sencillas de generar secuencias
haphazard, y se consideraron diversos esquemas recursivos no lineales. Uno de los
primeros fue el método de la “mitad del cuadrado” de Von Neumann, que trabaja de
la siguiente forma: supongamos que se requiere una secuencia de números de
cuatro dígitos decimales. Comenzando con 8653, se eleva al cuadrado (74874409) y
se extrae la parte del medio 8744. Esto se repite para obtener.
8653,8744,4575,9306,6016,1922,6940,…
Esta es una secuencia determinista que parece aleatoria.
I.4. Algunos generadores comunes
El método de la mitad del cuadrado y otros desarrollados por la misma época
fueron prontamente rechazados como generadores de números pseudo aleatorios,
pero un método de esa era sobrevivió.
Se desarrollaron experimentos con este método congruente
Simulación estocástica para predicción en los deportes.
5
1mod1 ii aUU
que imita el efecto de una ruleta, el multiplicador a debe ser grande. En práctica esta
fórmula debe ser procesada en aritmética de precisión finita, así que es usual
generar enteros Xi
MaXX ii mod1
y ajustar MX
iiU donde a y M son enteros. Esta fórmula y sus variantes están ahora
muy difundidas.
Existen otros generadores implementados en las populares
microcomputadoras, aparentemente sin referencia a literatura existente.
Las secuencias producidas por todos estos generadores siguen una
estructura. Se han realizado muchos estudios para identificar esa estructura y
determinar sus consecuencias. Cualquier generador puede ser probado
empíricamente aplicando pruebas estadísticas para determinar la independencia y
uniformidad de (U1,…,UN) para un valor grande de N. Sin embargo esto puede
consumir mucho tiempo y además que deja la posibilidad de que existe una
estructura que no pudo ser detectada. (Brian D. Ripley, 1987)
Cabe mencionar que los algoritmos más complejos no son necesariamente
más aleatorios que los más simples. Por lo que muchos autores recomiendan utilizar
algoritmos simples y bien entendidos dentro de los cuales encontraremos algún
generador de números pseudo aleatorio suficientemente bueno para los propósitos
específicos.
Simulación estocástica para predicción en los deportes.
6
I.5. Variables aleatorias
En este punto mencionaremos las principales funciones de distribución
probabilísticas, comenzaremos por mencionar que existen dos tipos funciones de
distribución: las discretas y las continuas.
Una variable aleatoria discreta solo puede tener valores observados en
puntos aislados a lo largo de una escala. Los valores se expresan normalmente
como números enteros.
Como ejemplo tenemos el número de personas en un hogar, el número de
artículos en un inventario, la cantidad de goles por equipo en un encuentro, etc.
Una variable aleatoria continua puede superponer un valor en cualquier punto
fraccionario de un intervalo especificado. Como ejemplo tenemos el peso de un
embarque, la hora de salida de un vuelo, el número promedio de personas en una
comunidad.
Una vez que tenemos un conjunto de números pseudo aleatorios es necesario
generar variables independientes X1,X2,… con una función de distribución F dada o
una función de densidad de probabilidad (pdf) f.
Se asume que tenemos acceso al conjunto de muestras independientes
aleatorias de la distribución uniforme en (0,1). Aquí la tarea consiste en transformar
(Ui) a (Xi). En muchos casos se tienen algoritmos que facilitan esto. Aunque no existe
un mejor método que sea el universal para esta tarea, existen diferentes métodos
que pueden ser implementados.
Una variable aleatoria es un evento numérico cuyo valor se determina
mediante un proceso al azar. Cuando se asignan valores de probabilidad a todos los
valores numéricos de una variable aleatoria X, ya sea mediante un listado o a través
Simulación estocástica para predicción en los deportes.
7
de una función matemática, se obtiene como resultado una distribución de
probabilidad. La suma de las probabilidades para todos los resultados numéricos
posibles debe ser igual a uno, como se mencionó anteriormente.
Para seleccionar el algoritmo con que será generada la lista de variables
aleatorias es necesario considerar lo siguiente:
El método debe ser sencillo de entender y programar. Es muy fácil tener
errores mientras se implementan métodos sofisticados.
Los programas producidos deben ser compactos. Esto es importante
básicamente con equipos pequeños pero pueden reducir mucho tiempo en la
implementación y documentación en lenguajes interpretados.
El código final debe ser ejecutado razonablemente rápido. Este punto ha sido
enfatizado mucho al punto de excluir los dos anteriores. Es importante sobre
todo en donde el tiempo de proceso es muy costoso.
Los algoritmos utilizaran los números pseudo aleatorios y no deberán acentuar
las deficiencias de estos.
Esta demostrado que la velocidad de los algoritmos varía sorprendentemente
dependiendo del sistema y del lenguaje en que sean implementados.
I.6. Distribución de probabilidad para variables aleatorias discretas
Como se mencionó antes, este tipo de variables se representan normalmente
con valores enteros, por esto, para este tipo de variables se pueden listar todos los
valores numéricos posibles de la variable en una tabla junto con sus probabilidades
correspondientes. Una tabla, fórmula o gráfica que proporcione tales probabilidades
será una distribución de probabilidad para la variable aleatoria.
Simulación estocástica para predicción en los deportes.
8
En esta distribución de probabilidad aparecen todos los posibles valores que
puede tomar la variable junto con su correspondiente probabilidad de que ocurra ese
número de eventos.
Así pues la distribución de probabilidad para una variable aleatoria discreta Y
es una tabla, gráfica o fórmula que da la probabilidad p(y) asociada a cada posible
valor de y. La distribución de probabilidad p(y) para una variable aleatoria discreta
debe satisfacer dos propiedades. Primero dado que p(y) es una probabilidad, debe
asumir un valor en el intervalo 0p(y) 1. Segundo, la suma de los valores de p(y)
para todos los valores de y debe ser igual a uno. De esto se desprende que los
valores que y puede asumir representan diferentes conjuntos de eventos simples y
son, por lo tanto, eventos mutuamente excluyentes.
Existen diversas distribuciones estándar de probabilidades que pueden
utilizarse como modelos para una amplia gama de variables aleatorias discretas en
una aplicación.
I.6.1. Pruebas de Bernoulli.
Varias de las distribuciones de probabilidad que serán analizadas se basan en
experimentos o procesos en los que se realiza una secuencia de pruebas llamadas
pruebas de Bernoulli.
Una prueba de Bernoulli tiene uno de dos resultados mutuamente exclusivos,
que por lo regular se denotan como éxito y fracaso.
Un proceso Bernoulli es un proceso de muestreo en el que:
Simulación estocástica para predicción en los deportes.
9
1. Solo son posibles dos resultados mutuamente excluyentes en cada ensayo u
observación. Por conveniencia a estos resultados se les denomina como éxito
y fracaso.
2. Los resultados del conjunto de ensayos u observaciones constituyen eventos
independientes.
3. La probabilidad de éxito que se denota mediante p, permanece constante de
un ensayo a otro, por lo que se considera un proceso estacionario.
Aún cuando una variable aleatoria de Bernoulli tiene por sí sola poco interés
en aplicaciones, la realización de una serie de pruebas Bernoulli conduce a varias
distribuciones de probabilidad discretas bastante útiles.
I.6.2. Distribución binomial.
La distribución binomial es una distribución discreta de probabilidad aplicable
como modelo a diversas situaciones de toma de decisiones, siempre y cuando pueda
suponerse que el proceso de muestreo se ajusta a un proceso Bernoulli.
Puede utilizarse la distribución Binomial para determinar la probabilidad de
obtener un número determinado de éxitos en un proceso Bernoulli. Para esto se
pq
éxitodeadprobabilidp
donde
yqpyp
BernoullidepruebaunaparaadprobabiliddeónDistribuci
Ffracasoen
Sexitoeny
dondepruebaunaConsiderar
yy
1
)1,0()(
0
1
1
Simulación estocástica para predicción en los deportes.
10
requieren tres valores, el número específico de éxitos, el número de ensayos u
observaciones y la probabilidad de éxito de cada ensayo.
Las características que definen una variable aleatoria binomial son las
siguientes:
El experimento consiste en la suma de n pruebas de Bernoulli idénticas e
independientes.
ó
Cada prueba tiene únicamente dos posibles resultados. Éxito y Fracaso.
La probabilidad de éxito y la probabilidad de fracaso se mantienen constantes
a lo largo de todas las pruebas, además la suma de estas dos probabilidades
es igual a uno.
Las pruebas son independientes, lo que significa que el resultado de
cualquiera de las pruebas no influye en el resultado que se obtendrá en
alguna otra.
)!(!
!
1
,...,4,3,2,1,0)(
yny
n
y
n
pruebasnenéxitosdenúmeroy
pruebasdenúmeron
pq
pruebaunaenéxitodeadprobabilidp
donde
nyqpy
nyp
binomialunaparaadprobabiliddeónDistribuci
yny
Simulación estocástica para predicción en los deportes.
11
I.6.3. Distribución hipergeométrica.
Cuando se muestrea una población finita de éxitos y fracasos, los supuestos
de un experimento binomial se satisfacen con exactitud solo sí el resultado de cada
prueba se observa y luego se reincorpora a la población antes de hacerse la
siguiente observación. Este método de muestreo se denomina muestreo con
reemplazo. Sin embargo en la práctica lo usual es utilizar muestreo sin reemplazo, es
decir, seleccionamos al azar n elementos diferentes de entre los N elementos de la
población.
Cuando el muestreo se realiza sin reemplazo para cada uno de los elementos
que se toman de una población finita de elementos, no se puede aplicar el proceso
Bernoulli debido a que existe un cambio en la probabilidad de éxitos al ir extrayendo
elementos de la población. En este tipo de situaciones lo adecuado es utilizar la
distribución hipergeométrica.
Las características que definen una variable aleatoria hipergeométrica y su
distribución de probabilidad se resumen a continuación:
El experimento consiste en extraer al azar y sin sustitución n elementos de un
conjunto de N elementos, r de los cuales son éxitos y N-r de los cuales son
fracasos..
Si X es el número designado de éxitos, N es el número de elementos de la
población, r es el número total de éxitos incluidos en la población y n es el número de
elementos de la muestra, la fórmula para determinar las probabilidades
hipergeométricas es:
Simulación estocástica para predicción en los deportes.
12
I.6.4. Distribución Poisson.
La distribución de probabilidad de Poisson, así llamada en honor del
matemático francés S.D.Poisson proporciona un modelo para la frecuencia relativa
del número de eventos “poco comunes” que ocurren en una unidad de tiempo, área,
volúmen, etc.
Puede utilizarse la distribución Poisson para determinar la probabilidad de que
ocurra un número designado de eventos, cuando estos ocurren en un espacio de
tiempo continuo. A este proceso se le denomina proceso Poisson; es similar a un
proceso Bernoulli excepto en que los eventos ocurren en un espacio continuo como
puede ser un periodo de tiempo en vez de ocurrir en ensayos u observaciones fijas.
Un ejemplo es el número de llamadas que entran en un conmutador en determinada
hora, o la cantidad de goles que puede meter un equipo.
Las características que definen un proceso Poisson son las siguientes:
1. El experimento consiste en contar el número de veces que ocurre un evento
en particular durante una unidad de tiempo dada, o en un área o volumen.
elementosnlosenSresultadosdenúmeroy
extraidoselementosdenúmeron
elementosNlosenSresultadosdenúmeror
elementosdetotalnúmeroN
donde
nrMínimo
rNnMáximoy
n
N
yn
rN
y
r
yp
tricahipergeoméadprobabiliddeónDistribuci
,
,.....,)(,0)(
Simulación estocástica para predicción en los deportes.
13
2. La probabilidad de que un evento ocurra en una unidad dada de tiempo, área
o volumen, es la misma para todas las unidades.
3. El número de eventos que ocurren en una unidad de tiempo, área o volúmen
es independiente del número de los que ocurren en otras unidades.
4. El número medio de eventos en cada unidad se denota por la letra griega
lambda, .
Solo se requiere un valor para determinar la probabilidad de que ocurra un
número designado de eventos en un proceso Poisson: el número promedio a largo
plazo de eventos para el tiempo o dimensión especifico de interés. Por lo general
esta medida se denomina mediante la letra griega “lambda”.
I.7. Distribución de probabilidad para variables aleatorias continuas.
Para una variable aleatoria continua no es posible listar todos los posibles
valores fraccionarios de la variable ya que el número de posibles valores es infinito,
por lo tanto, las probabilidades se determinan a través de una función matemática y
su representación es de manera gráfica mediante una función de densidad de
probabilidad o curva de probabilidad.
La diferencia entre una variable aleatoria continua y una discreta se basa en la
diferencia entre sus funciones de distribución acumulativa.
...71828.2tan
,...3,2,1,0!
)(
Eulerdeteconse
voluménoáreatiempodeunidadunaeneventosdemedionúmero
donde
yy
eyp
PoissonunaparaadprobabiliddeónDistribuciy
Simulación estocástica para predicción en los deportes.
14
La función de distribución acumulativa F(y0) para una variable aleatoria y es
igual a la probabilidad
F(y0) = P(y≤y0)
Esto es, la función de distribución acumulativa es la suma acumulativa de p(y),
desde el valor más pequeño que y pueda asumir, hasta un valor de y0.
Cuando los datos representan mediciones de una variable continua y la
cantidad de datos es muy grande, podemos reducir la anchura de los intervalos hasta
que la distribución se vea como una curva continua, lo cual es conocido como
función de densidad de probabilidad.
Existen diversas distribuciones continuas de probabilidad comunes que son
aplicables como modelos a una amplia gama de variables continuas en determinadas
circunstancias.
Una variable aleatoria continua y es una que tiene las siguientes tres
propiedades:
1. y adopta un número infinito, imposible de contar, de valores en un subconjunto
del intervalo (-,).
dy
ydFyf
esyparayfdensidaddefunciónlaentonces
ycontinuaiableunaparaaacumulativóndistribucidefunciónlaesyFSi
)()(
)(
,var)(
Simulación estocástica para predicción en los deportes.
15
2. La función de distribución acumulativa F(y), es continua. La función de
distribución acumulativa para una variable y es F(y0) = P (yy0).
3. La probabilidad de que y sea igual a un valor en particular es cero. En el caso
de las distribuciones continuas de probabilidad, sólo es posible determinar un
valor de probabilidad para un intervalo de valores dado. Si en este tipo de
variable se quiere obtener la probabilidad de un valor especifico es cero, pues
recordando el espacio para este tipo de variables es el de los números reales,
y la probabilidad es igual a 1/(número de elementos) entonces se tiene 1/()
por lo que la probabilidad es cero.
I.7.1. Distribución uniforme.
Suponga que selecciona al azar un número y representado por un punto en el
intervalo ayb. La función de densidad de y se representa gráficamente como un
rectángulo. Como se debe asegurar que el área del rectángulo sea uno, la altura de
éste es 1/(b-a).
I.7.2. Distribución normal.
Esta función de densidad fue propuesta por K. F. Gauss como modelo para la
distribución de frecuencia relativa de errores, como los errores de medición. La
distribución normal de probabilidad es una distribución continua de probabilidad que
es simétrica. Con frecuencia se describe a la curva de probabilidad que representa a
la distribución normal como una campana.
puntootrocualquieren
byasiabyf
uniformeiableunaparadensidaddeFunción
0
1
)(
var
Simulación estocástica para predicción en los deportes.
16
Esta distribución es muy importante por tres razones principales:
1. Las mediciones que se obtienen en muchos procesos aleatorios tienen esta
clase de distribución.
2. Con frecuencia pueden utilizarse distribuciones normales para aproximar otras
distribuciones de probabilidad tal como las distribuciones binomial y Poisson.
3. Las distribuciones de estadísticas como la media muestral y la proporción
muestral tienen distribución normal cuando el tamaño de la muestra es
grande.
I.7.3. Distribución exponencial.
Si se presentan eventos en el contexto de un proceso Poisson, entonces la
longitud del tiempo o espacio entre eventos sucesivos tiene una distribución
exponencial de probabilidad. Como el tiempo o el espacio son continuos, una
medición de este tipo es una variable aleatoria continua.
Como los procesos Poisson son estacionarios, y se tiene una probabilidad
igual de que el evento ocurra a todo lo largo del periodo relevante de tiempo, la
distribución exponencial se aplica siempre y cuando lo que interesa sea el tiempo o
espacio hasta la ocurrencia del primer evento, o el tiempo entre dos eventos
iableladeianza
iablelademedia
donde
yeyf
normaliableunaparadensidaddeFunción
y
varvar
var
2
1)(
var
2
)2/()( 22
Simulación estocástica para predicción en los deportes.
17
sucesivos, o el tiempo que transcurre hasta que se presenta el primer evento
después de cualquier punto elegido al azar.
I.7.4. Distribución gamma.
Muchas variables aleatorias, como la duración de la vida útil de una
computadora, solo pueden asumir valores no negativos. Las distribuciones de
frecuencia relativa de datos de este tipo a menudo se pueden modelar mediante
funciones de densidad tipo Gamma. La fórmula para la función de densidad tipo
gamma tiene dos parámetros, uno llamado parámetro de escala, que refleja el
tamaño de las unidades en que se mide y el otro parámetro recibe el nombre de
parámetro de forma; este permite cambiar la forma de la distribución.
Es muy utilizada esta distribución para determinar cuando ocurrirá el siguiente
evento. En sí, una distribución gamma es la suma de n distribuciones exponenciales.
0
1
1
)(
0
0;0;0)()(
var
dyey
donde
puntootrocualuieren
ysiey
yf
GammaiableunaparadensidaddeFunción
y
y
Simulación estocástica para predicción en los deportes.
19
CAPÍTULO II.
SIMULACIÓN.
“La simulación se originó con los trabajos de John Von Newman y Stanislaw
Ulam a fines de la década de 1950”. (Thierauf, Robert J., 1990)
Jhon Von Newman y Stanislaw Ulam, en sus trabajos unieron técnicas
estadísticas con el análisis de Montecarlo para resolver problemas de blindaje
nuclear. Dado que el costo de estos experimentos era muy alto, además de lo
complejo que resultaban, se las ingeniaron para simular este proceso.
Los avances en la tecnología llevan invariablemente a la construcción de
sistemas con capas adicionales de complejidad que están formados por subsistemas
aun más complejos. Con el tiempo estos sistemas llegaran a convertirse en
subsistemas de otros sistemas mucho más complejos. Dentro de todo este
crecimiento, los simuladores proveen un medio por el cual estos sistemas abstractos
o del mundo real pueden ser comprendidos y evaluados, al duplicar el
comportamiento de estos sistemas mediante hardware y/o software.
Los primeros usos de las computadoras digitales fueron en el campo de la
simulación, y existe una gran cantidad de trabajos en que se utiliza la simulación por
computadora con diversos fines.
Aún ahora se destinan muchos recursos tanto económicos como humanos
para la elaboración de “supercomputadoras” que puedan realizar cálculos complejos
que se requieren para simular procesos.
Una orientación que ha tenido la simulación en los últimos años y para la cual
se destinan muchos recursos es en la probabilidad en un juego, el cual aunque
Simulación estocástica para predicción en los deportes.
20
muchas veces tiende a tener un enfoque ilegal, también puede ser considerado como
un tema de investigación.
Existen muchos factores que deben de ser considerados al momento de
emplear esta disciplina y todos serán tratados en este trabajo, desde los
requerimientos que se deben cumplir antes de poder simular hasta la interpretación
de los resultados obtenidos mediante la simulación del sistema, pasando por los
pasos para desarrollar el modelo a ser estudiado.
II.1. Método Montecarlo
Von Newman y Ulam estaban realizando trabajos secretos en el laboratorio
los Álamos y utilizaron como nombre clave para estos trabajos Montecarlo.
“Básicamente el método Montecarlo es una técnica de simulación en que se
crean funciones de distribución estadística, utilizando una serie de números
aleatorios”. (Thierauf, Robert J., 1990)
El objetivo principal de todo estudio de simulación es proveer la estimación de
uno o más valores esperados, pero el hecho de trabajar con probabilidades siempre
impone un margen de error en los resultados. La prueba de Montecarlo es una
técnica que permiten reducir la varianza y con esto reducir el margen de error del
experimento.
En el diseño de un experimento de simulación se debe considerar que para
mejorar su efectividad requiere un costo dado, costo que puede ser reducido
afectando la efectividad del experimento. Esto es, el tiempo de cómputo puede ser
estimado al momento del diseño para reducir costos. Esto considerando que se
requieren grandes incrementos en el poder y tiempo de cómputo para producir
incrementos moderados en la precisión del experimento. Por ello es necesario utilizar
algunas otras técnicas, muchas de ellas basadas en teorías de muestreo, para poder
Simulación estocástica para predicción en los deportes.
21
reducir la varianza, dado que la reducción de varianza está directamente relacionada
con la reducción de costos y así no afectar directamente a la precisión del
experimento.
II.2. Simulación.
“Los modelos de simulación representan la realidad, la simulación la imita.”
(Sasieni, Yaspan, Friedman, 1982)
Muchas veces tenemos la necesidad de implementar un sistema sin tener la
certeza de cuáles serían las condiciones y parámetros con que obtendríamos un
mejor rendimiento y resulta demasiado costoso implementarlo y realizar cambios
físicos al sistema una vez puesto en marcha. En otras ocasiones se requiere calcular
y obtener algún resultado de una operación muy compleja que implica demasiado
tiempo y estudio, por lo que es conveniente contar con algún método alternativo que
proporcione una solución muy cercana a la óptima.
En éstos y otros casos se puede trabajar estos sistemas mediante la
simulación por computadora, que ha sido utilizada desde hace mucho tiempo como
una herramienta importante para la toma de decisiones al momento de implementar
un sistema.
Comenzaremos por entender el concepto de simulación, y porqué y cuándo es
importante simular, además mencionaremos los requerimientos y los parámetros
necesarios para poder aplicar esta herramienta de tal forma que se obtengan
resultados útiles para el propósito que se requiere.
Simular es el proceso de diseñar un modelo de un sistema real y realizar
experimentos con este modelo con el propósito de entender el comportamiento del
sistema o de evaluar distintas estrategias para la operación del sistema.
Simulación estocástica para predicción en los deportes.
22
Así pues simular es reproducir un evento, suceso o situación con sus
condiciones normales ya sea para conocer el comportamiento o para entrenamiento.
Existen muchos métodos para realizar simulaciones, de igual forma existen
muchas áreas a las que se puede aplicar la simulación y existen muchos trabajos
sobre simulación al igual que simuladores.
La importancia de la simulación se basa en ayudar a reducir costos, ayudar al
entrenamiento, permitir predecir el comportamiento de un evento, esto debido a que
en algunos casos resulta muy caro reproducir el evento de manera real, o incluso el
suceso puede no haberse presentado aún, por lo que se desconoce la forma y el
comportamiento que presentará dicho evento; también es útil la simulación para
obtener resultados probabilísticos que resultan demasiado complejos y en los que no
se requiere conocer el resultado exacto, pero sí tener una muy buena aproximación.
Los pilotos antes de subirse y volar un avión de verdad, además de sus
estudios deben pasar muchas horas y pruebas en simuladores, donde se reproducen
muchas condiciones que se presentarían en una situación real; de esta manera los
pilotos se entrenan para cuando son enviados verdaderamente a volar un avión.
Cuando se diseña una red de computadoras se puede crear un modelo que
simule el comportamiento que tendría la red incluso trabajando con grandes cargas,
con ésto se pueden modificar algunas variables hasta lograr tener un
comportamiento deseado. Es más sencillo y menos costoso realizar cambios a un
modelo que realizar los cambios físicamente sobre el modelo real.
Cuando se realiza la simulación de un evento es necesario conocer algunos
puntos que dependiendo del modelo y del punto de vista del observador pueden ser
relevantes o no. Algunos ejemplos de estos puntos se mencionan a continuación:
Simulación estocástica para predicción en los deportes.
23
II.2.1. Parámetros ambientales.
Estos parámetros son aquellos valores o condiciones que influyen en el
comportamiento del evento, ya sea temperatura, conocimiento de información extra,
etc. Mientras mayor cantidad de información y condiciones sean consideradas,
mejores serán los resultados que arroje la simulación.
En el caso de una red de computadoras debemos considerar aspectos como
el tipo de información que será utilizada.
II.2.2. Variables.
Estos son los valores sobre los cuales tenemos control y que representan las
características que tendrá el simulador, el valor que tienen puede ser modificado
para buscar nuevas alternativas y obtener otro tipo de resultados hasta obtener lo
que se quiere y determinar cuál es la solución factible a ser implementada. En
algunos casos no se presenta este elemento de la simulación sobre todo cuando se
trata de predecir el comportamiento de algo que no se sabe exactamente como
ocurre.
En el ejemplo que se ha estado tratando de la red de computadoras, podemos
mencionar algunas variables tales como el número de computadoras que estarán
interconectadas, también la velocidad de los dispositivos de red, la ubicación de los
concentradores, etc.
II.2.3. Número de simulaciones.
Este valor es muy importante sobre todo en el estudio de procesos
estocásticos, (que serán tratados mas adelante), dado que existe un cierto grado de
aleatoriedad y no siempre se obtiene el mismo resultado, podemos valernos de este
Simulación estocástica para predicción en los deportes.
24
parámetro que al ser muy grande los resultados tienden a acercarse a los valores
óptimos o exactos.
II.3. Tipos de simulación.
El simular un proceso provee un amplio entendimiento de los procesos físicos
que están siendo modelados.
Existen distintos tipos de simulación, para la clasificación se pueden
considerar muchos aspectos tales como, la naturaleza del sistema a ser modelado, si
la simulación considerara o no el tiempo, y la más importante que se debe al
comportamiento del sistema a ser modelado.
II.3.1. Simulación discreta.
Una simulación de eventos discretos es la que utiliza una técnica de siguiente
evento para controlar el comportamiento del modelo. Muchas de las aplicaciones de
la simulación discreta envuelven sistemas de colas de uno u otro tipo. La estructura
de colas es obvia cuando se tiene una cola de trabajos esperando a ser procesados.
Consideremos también clientes en una cola dentro de un banco esperando a ser
atendidos.
II.3.2. Simulación determinística.
En muchas ocasiones se tienen sistemas que funcionan basándose en
estados, como es el caso de los autómatas de estados finitos. En este caso se
conoce de antemano el comportamiento del sistema cuando este se encuentra en
cualquiera de los posibles estados con que cuenta, sin embargo es útil simular este
tipo de sistemas pues ayudan a verificar entre otras cosas el orden de los estados; a
este tipo de simulación se le conoce como determinista.
Simulación estocástica para predicción en los deportes.
25
II.3.3. Simulación estocástica.
Muchos sistemas tienen un comportamiento estocástico y por lo tanto deben
ser modelados mediante elementos estocásticos, esto significa que en estos
modelos de simulación estocástica se utilizaran distribuciones probabilísticas.
Conforme la simulación avanza, se toman muestras de estas distribuciones para
proveer un comportamiento estocástico.
Un fenómeno aleatorio que surge en un proceso (ej. el movimiento de una
partícula en movimiento browniano, el crecimiento de una población, el desempeño
de una red de computadoras) que se desarrolla en el tiempo de una manera
controlada por medio de leyes probabilísticas se denomina proceso estocástico.
Esta es la principal clasificación que se tiene para la simulación y se da en
función del comportamiento del sistema, a partir de aquí existen otras clasificaciones
que se originan por la naturaleza de los eventos y el campo a que esta enfocada, así
como también existen clasificaciones dependiendo de sí el tiempo es factor crucial en
el sistema.
II.4. Usos de la simulación.
Ahora que se analizaran los usos de la simulación es necesario hacer énfasis
sobre el enfoque de este trabajo, que es sobre la simulación por computadora. La
simulación por computadora es la disciplina de diseñar un modelo de un sistema
físico teórico o actual, ejecutar el modelo en una computadora digital, y analizar los
resultados de la ejecución. La simulación encierra el principio de “Aprender haciendo”
–Para aprender de un sistema primero debemos desarrollar un modelo y ejecutarlo.
La simulación por computadora es el equivalente electrónico de esto. Es un campo
altamente interdisciplinario que puede ser utilizado de igual forma en el gobierno,
industria, ingeniería, medicina, etc.
Simulación estocástica para predicción en los deportes.
26
La simulación por computadora envuelve la experimentación de un modelo de
algún sistema basado en una computadora. El modelo es utilizado como un medio
para la experimentación, muchas veces se realiza en una forma de prueba y error
con el objeto de demostrar los efectos de algunas políticas.
El campo de aplicación que tiene la simulación es muy vasto, ya que puede
ser aplicada a cualquier disciplina, entre sus usos mencionaremos los siguientes.
II.4.1. Herramientas educacionales.
Mediante la simulación es posible aprender a manejar un vehículo sin los
riesgos que implica el aprender con un vehículo de verdad. En la armada de muchos
países se utilizan simuladores de vuelo y los cadetes son sometidos a muchas horas
de entrenamiento en ellos antes de sean llevados a un avión de verdad. Sin embargo
se deben realizar simuladores “muy reales“ de manera que se tenga un
comportamiento muy apegado al que se tendría en una situación real, y este tipo de
simuladores resultan muy costosos.
II.4.2. Medios de análisis.
Cuando se simula un sistema, mientras mayor sea el número de simulaciones
mayor será el acercamiento que tenga en comportamiento con un sistema real, por lo
que se podrán observar los elementos y componentes críticos que deben ser
analizados, los cuellos de botella y los posibles resultados del sistema. Con esta
información es posible plantear soluciones y medidas de seguridad.
II.4.3. Predictores.
Este punto es el enfoque de este trabajo. Es posible pronosticar
comportamientos y ayudar con esto a planear futuros desarrollos. Puede ser utilizada
la simulación para evaluar el desarrollo de todo un conjunto de eventos de un
Simulación estocástica para predicción en los deportes.
27
sistema a partir de datos que representen el comportamiento que se ha tenido hasta
el momento de simular, y con información referente al orden del desarrollo futuro del
sistema, simular para obtener resultados del comportamiento que se espera tendrá
dicho sistema al momento de que se vayan presentado estos eventos individuales.
II.4.4. Ciencia de la computación.
La simulación es la lengua franca de la ciencia de la computación. La ciencia
de la computación envuelve el uso de computadoras especialmente
supercomputadoras para visualización y simulación de fenómenos complejos a larga
escala. El énfasis en las supercomputadoras esta realmente enfocada a la
simulación, la cual requiere hardware de computo veloz. Los estudios van desde
simulaciones de N cuerpos, dinámica molecular, predicción de clima, y análisis de
elementos finitos y estos están limitados por la ciencia de la computación.
II.4.5. Caos y sistemas complejos.
La idea de que se puede observar complejidad dentro de un modelo
determinista de estructura simple es de interés técnico fundamental. Además,
muchos de los modelos que envuelven comportamiento caótico nos llevan a formas
estáticas de análisis. La simulación debe ser utilizada para proveer una vista mas
detallada del sistema. Los lenguajes de simulación en un futuro trabajaran junto con
rutinas y lenguajes de manipulación simbólica de manera que el sistema pueda ser
analizado con cada herramienta disponible. (tanto analítica como iterativa.)
II.4.6. Realidad virtual.
El empuje en la investigación de realidad es incluir el análisis en un mundo
simulado mediante el uso de dispositivos tales como visores, guantes de datos,
sensores y elementos de retroalimentación. Aunque la realidad virtual es vista como
un sinónimo de las interfaces de hardware máquina-humano, la tecnología debe
Simulación estocástica para predicción en los deportes.
28
incorporar métodos para construir mundos digitales o virtuales que sean efectivos. La
construcción de mundos virtuales es sobre lo que trata la simulación por
computadora.
II.4.7. Vida artificial.
Un experimento de vida artificial es aquel donde un programa de computadora
es escrito para simular formas de vida artificial, que a menudo incluyen
comportamientos tales como reproducción genética y mutación.
II.4.8. Modelado físico y animación por computadora.
Dentro de la graficación por computadora se ha dado un empuje en dirección
del modelado físico. Consideremos la forma en que la animación por computadora ha
sido realizada en el pasado. Las primeras animaciones por computadoras fueron
realizadas en hojas individuales de papel o celuloide. Cuando una serie de hojas es
transferida y filmada se tiene una velocidad de al menos 24 cuadros por segundo, se
percibe una ilusión de movimiento. Desde una perspectiva de la simulación, las hojas
reflejan un tipo declarativo de modelo similar a un autómata de estado finito con un
estado por hoja. Además, los primeros modelos de animación fueron autómatas de
estados finitos.
II.5. Antecedentes de sistemas de simulación
Desde que se crearon las computadoras, estas fueron utilizadas primeramente
en la simulación, los campos en que fueron aplicados estos sistemas de simulación
tuvieron que ver principalmente con aspectos bélicos. Es posible calcular con mucha
exactitud después de varias pruebas, los parámetros necesarios para el correcto
lanzamiento de un proyectil.
Simulación estocástica para predicción en los deportes.
29
Conforme la tecnología fue avanzando, y se comenzaron a desarrollar nuevos
microprocesadores, se hizo evidente la necesidad de desarrollar sistemas que
permitieran simular la ejecución de programas escritos para esos nuevos
procesadores, esto debido a la complicada tarea que se requería para escribir estos
programas, pues debían ser grabados en una memoria y posteriormente ser
probados en el sistema real, pero cuando se necesitaba algún cambio se retiraba la
memoria, se rescribía el nuevo programa, posteriormente era probado nuevamente y
esta tarea se realizaba cada que se realizaba algún cambio.
Con los simuladores, se escribía y probaba el programa sobre un sistema en
una computadora, todos los cambios eran realizados dentro de este sistema, una vez
que se tenia el sistema funcionando correctamente, se grababa la memoria y se
montaba en el sistema real.
Para muchos de los problemas actuales se han desarrollado sistemas de
simulación que permiten analizar el comportamiento del sistema y determinar las
características que deben ser consideradas, un ejemplo claro de estos sistemas lo
encontramos en muchas tiendas de servicio o en bancos donde se emplean sistemas
de simulación para determinar la cantidad de cajeros que se deben implantar, de tal
manera que se de abasto a la demanda que se requiere pero sin tener tanto
desperdicio en el tiempo en que operan estos cajeros, estos sistemas trabajan sobre
la teoría de colas.
Se han desarrollado muchos trabajos que simulan la dispersión de un virus en
una red de computadoras, esto tiene la ventaja de que nos ayuda a tomar medidas
preventivas antes de que este hecho ocurra.
Así pues, se puede mencionar una gran lista de trabajos que han sido
desarrollados desde que surgió la era de la computación, para demostrar la
importancia de la simulación en muchas áreas y aplicaciones.
Simulación estocástica para predicción en los deportes.
30
II.6. Ventajas de la simulación.
Existen muchas ventajas al momento de considerar la simulación, algunas se
mencionan enseguida:
La principal ventaja de la simulación es que nos permite modelar fenómenos
complejos y dinámicos que no podrían ser abordados de otra forma, y nosotros
podemos modelar las cosas como son, por complejas que estas sean. Muchas veces
no se pueden obtener soluciones analíticas de problemas reales, sobre todo cuando
se trata de problemas complejos y largos; la simulación nos permite realizar análisis
profundos pues permite incorporar complicaciones reales. Con esto se está logrando
proveer de una retroalimentación a los usuarios para cuando se diseñan sistemas
reales, y se puede determinar la efectividad del sistema antes de que sea
implementado el sistema real, así mismo es posible explorar diseños alternativos sin
tener la necesidad de construir cada sistema. Al investigar los efectos de ciertos
cambios en el diseño en la fase de análisis y no en la fase de construcción, se logra
disminuir grandemente el costo del sistema.
Otro beneficio de la simulación es que permite a los diseñadores estudiar el
sistema en diferentes niveles de abstracción. Al desarrollar un sistema en sus niveles
mas altos de abstracción, el diseñador es más capaz de entender el comportamiento
e interacción de los componentes de alto nivel del sistema y por lo tanto es más
capaz de afrontar la complejidad total del sistema. Conforme el diseñador entienda
mejor la operación de los componentes de alto nivel a través del uso del simulador,
los componentes de más bajo nivel podrán entonces ser diseñados y simulados para
su verificación y evaluación de desempeño. El sistema debe ser desarrollado
siguiendo una técnica de “arriba-hacia-abajo” a lo cual se le conoce como
descomposición jerárquica, la cual es una herramienta muy potente para la
construcción de sistemas complejos
Simulación estocástica para predicción en los deportes.
31
Al simular un sistema, los científicos obtienen bastante información del
sistema y de la importancia de las diferentes variables, el efecto que tienen estas
variables o ciertos componentes individuales.
El comprender las bases de la simulación no requiere muchos conocimientos
matemáticos, de hecho, un modelo dentro de la simulación es mas general que un
modelo matemático, y sin embargo, la simulación ha sido utilizada como una muy
potente herramienta para la toma de decisiones.
Otro factor muy importante es que, el modelo que es simulado no interfiere
con el sistema real, pues existe un cierto grado de independencia entre los dos. La
correcta manipulación de los modelos y sus componentes permite realizar y analizar
preguntas del tipo “¿ qué pasa sí?”. Este tipo de preguntas son muy útiles en la
predicción y en la búsqueda de problemas en sistemas antes de que se presenten.
Recordemos que un punto importante en las redes de computadoras es la
localización y prevención de fallas antes de que estas ocurran, este tipo de preguntas
funcionan de la siguiente manera: dado que se pueden modificar los parámetros y
condiciones en que trabajara el modelo del sistema, se pueden realizar variaciones a
dichas variables y analizar los resultados, esto podría ser manipulando variables
como la carga del sistema, o podríamos preguntarnos “¿qué pasa si el tiempo de
respuesta del sistema es mucho mayor que el esperado?”, etc.
II.7. Desventajas de la simulación.
Al igual que cualquier método, la simulación también tiene sus desventajas, es
importante conocerlas porque así se puede determinar cuando es conveniente
utilizar la simulación y cuando no.
La simulación no es una técnica de optimización. Típicamente se utilizan
diferentes configuraciones del sistema para encontrar una buena, pero no se
garantiza que sea la mejor.
Simulación estocástica para predicción en los deportes.
32
Además, la simulación puede ser un medio muy costoso para resolver los
problemas.
Cuando la simulación no se realiza de la manera adecuada puede llevarnos a
soluciones erróneas, por lo que es conveniente considerar el tamaño de la muestra y
la duración de las corridas del modelo.
II.8. Simulación de un proceso.
Con el siguiente ejemplo demostraremos la importancia de la simulación para
la solución de algunos problemas, sobre todo aquellos en que se requiere tener un
valor muy cercano al optimo.
Se tienen 6 dados que serán lanzados y se requiere calcular la probabilidad
de que la suma de los lanzamientos sea seis. Dado que este hecho solo ocurre
cuando todos los dados caen en uno, la probabilidad seria entonces la suma de las
probabilidades de que cada dado caiga en uno, y estaría expresada como sigue:
Donde:
x es la sumatoria del resultado de todos los lanzamientos.
f(x) es la función de probabilidad.
Ahora consideremos la necesidad de conocer la probabilidad de que la suma
de los dados sea 28, entonces el problema se complica un poco pues los casos en
que la suma es 28 son muchos y la forma de obtener esta probabilidad es que para
cada caso en que el resultado sea 28, se multiplique la probabilidad de que caiga
6
1*
6
1*
6
1*
6
1*
6
1*
6
1)6( xf
Simulación estocástica para predicción en los deportes.
33
cada valor en cada dado y que cumpla esta condición y al final sumar todos los
resultados de cada caso.
Como se puede ver esto se complica demasiado sobre todo si incrementamos
el número de dados y el resultado de la suma. Sin embargo aquí es donde entra la
simulación. Haciendo uso de las herramientas adecuadas podemos simular el
lanzamiento de los dados n número de veces y al final obtener el porcentaje de
veces en que se obtuvo 28 y está será una muy buena aproximación de la
probabilidad de lanzar 6 dados y obtener como resultado 28.
Como se verá más adelante para obtener una mejor aproximación se deben
considerar factores tales como la función generadora de números aleatorios y el
número de repeticiones del experimento, el cual mientras mayor sea mejor será la
aproximación, pero no debe ser tan grande que la ejecución del modelo sea muy
lenta y en comparación con la ejecución del modelo con menos simulaciones no
exista mucha variación en el resultado.
Otro ejemplo muy común, dos personas están jugando a lanzar dados y
ganará quien logre mas puntos en 10 lanzamientos de un par de dados. Para el
séptimo lanzamiento el primer jugador tiene 28 puntos y el segundo tiene 33 puntos,
se necesita obtener la probabilidad de que la primer persona gane.
La ecuación para resolver este problema es muy compleja y demasiado
extensa, por lo cual puede ser mejor diseñar un sistema en la computadora que
simule los tres lanzamientos restantes y realice los cálculos necesarios para
determinar quien gana. Si realizamos la ejecución de este sistema muchas veces y
obtenemos el porcentaje de veces que el primer jugador ganó, obtendremos una muy
buena aproximación del resultado del problema pero con un esfuerzo mínimo y en un
tiempo mucho menor.
Simulación estocástica para predicción en los deportes.
35
CAPÍTULO III.
HERRAMIENTAS DE DESARROLLO.
Como se mencionó anteriormente la simulación por computadora envuelve la
creación de un modelo utilizando la computadora como herramienta. Las
simulaciones pueden requerir grandes programas de computadoras con cierta
complejidad. Existen algunos tipos de lenguajes de simulación y paquetes
disponibles para hacer esta tarea más sencilla.
Existe mucho software en el mercado para el modelado de sistemas, además
de que podemos utilizar cualquier lenguaje de programación y desarrollar el modelo
del sistema. Cada lenguaje de desarrollo y cada software que existe, tiene sus
propias características que lo hacen adecuado para utilizarse en determinadas
ocasiones, dependiendo muchas veces de la aplicación que se desee desarrollar, la
complejidad que se requiere, la presentación de la información y el tiempo en que
debe operar el sistema entre otros factores.
En este capitulo trataremos con 3 herramientas de software disponibles que
existen en el mercado.
Al realizar el análisis de estos productos se encontraran muchas cualidades
de cada uno de ellos y se analizará la forma en que pueden interactuar entre ellos,
aprovechando así la potencia que ofrecen.
III.1. Matlab.
Matlab® es un entorno integrado de computación técnica que combina
computación numérica, gráficos avanzados, visualización y un lenguaje de
programación de alto nivel. (http://www.mathworks.com/products)
Simulación estocástica para predicción en los deportes.
36
Matlab incluye cientos de funciones para:
•Análisis de datos y visualización
•Cálculo numérico y simbólico
•Gráficos científicos y de ingeniería
•Modelización, simulación, y prototipaje
•Programación, desarrollo de aplicaciones, y diseño de Interfases Gráficas de
Usuario (GUI)
Matlab se utiliza en áreas de aplicación diversas, como el procesado de
señales y de imágenes, la ingeniería financiera o la investigación médica. La
arquitectura abierta de Matlab y sus módulos complementarios hacen de él una
aplicación sencilla de utilizar y de grandes ventajas competitivas, tanto en la
exploración de datos como en el desarrollo de herramientas personalizables.
III.1.1. Productos adicionales.
Matlab dispone de una familia de Toolboxes, con los que puede desarrollar
aplicaciones específicas en diversas áreas. Las Toolboxes contienen colecciones
completas de funciones para la resolución de problemas particulares de procesado
de señal, procesado de imagen, diseño de sistemas de control, redes neuronales,
etc. Existen otros productos que extienden las capacidades de Matlab para, por
ejemplo, la adquisición de datos, la generación de informes, y la creación de código
C/C++ independiente a partir de los programas del lenguaje Matlab.
III.1.2. Características.
• Dada la mejora en el soporte para tipos de datos enteros reduce los requisitos de
almacenamiento.
Simulación estocástica para predicción en los deportes.
37
•A través del nuevo editor de gráficos proporciona modificación interactiva de las
propiedades de las figuras y permite realizar anotación en los gráficos
•Utiliza métodos de resolución de ecuaciones diferenciales para grandes matrices y
para ecuaciones algebraicas diferenciales
III.1.3. Características adicionales del producto.
•Posee soporte para la tecnología ActiveX (Windows):
•Mediante propiedades Actives, permite a los usuarios enlazar controles ActiveX en
las aplicaciones de Matlab
•Las capacidades de Automatización de clientes que posee ActiveX permite a los
desarrolladores programar automáticamente servidores ActiveX de control (por
ejemplo, Excel)
•Proporciona mejoras significativas de velocidad de los gráficos usando el nuevo
renderer OpenGL
•Contiene un editor de arrays para la visualización y la edición interactiva de arrays
numéricos en 2-D (PC, Unix)
•Proporciona mejoras en la programación de ficheros M.
•Posee soporte para permitir de forma selectiva acceso público a campos de objetos
individuales
•Contiene editor / depurador y visualizadores en plataformas Sun, HP, y SGI IRIX
III.1.4. Gráficos y Visualización.
Matlab y sus Toolboxes cuentan con gráficos especializados diseñados
especialmente para la computación técnica. Desde gráficos de líneas 2-D de datos
no homogéneos, hasta gráficos de contornos e interfaces interactivas (GUIs), estas
herramientas proporcionan capacidades de modelización visual que ayudan a
entender mejor los sistemas complejos.
Simulación estocástica para predicción en los deportes.
38
III.1.5. Herramientas GUI y Gráficas Programables.
Es posible crear interfaces visuales y gráficas interactivamente o
automáticamente a partir de programas de Matlab. Proporcionando acceso directo a
cada atributo gráfico, la arquitectura orientada a objetos de Handle Graphics® hace
que todos los gráficos de Matlab sean completamente personalizables.
III.1.6. Simulación y modelización.
Matlab ofrece un entorno único de simulación y prototipaje. Su potente
lenguaje técnico es simultáneamente conciso y descriptivo, permitiendo modelizar
sistemas complejos con pequeñas secciones de código muy sencillas de programar.
Matlab y sus productos complementarios cuentan con un amplio abanico de
herramientas para la simulación y la modelización, incluyendo:
•Una gran colección de funciones altamente optimizadas para computación
matemática, análisis de datos, resolución de ecuaciones, y visualización, todas ellas
disponibles como parte del núcleo central de Matlab
•Los algoritmos más modernos añadidos en los Toolboxes, módulos
complementarios de Matlab.
III.1.7. Algoritmos fundamentales:Matlab y Toolboxes.
Matlab proporciona cientos de funciones para la simulación y la modelización,
desde operaciones matriciales básicas a métodos de resolución de ecuaciones
diferenciales ordinarias. Estas funciones aseguran una base sólida a partir de la cual
se puede simular y modelizar sistemas complejos. Con los Toolboxes de
aplicaciones específicas, como pueden ser el Optimization, Control System, Neural
Network y Statistics, se puede rápidamente construir simulaciones y modelos que
cubren diversas disciplinas. Todo ello de forma consistente y con muy pocas líneas
de código.
Simulación estocástica para predicción en los deportes.
39
Gracias a las funciones de animación que se incluyen en el núcleo de Matlab y
a la rapidez de sus gráficos, se puede visualizar los resultados de la simulación en
tiempo real, mientras éstos se van calculando. En ese momento se puede observar
el comportamiento del modelo y, al mismo tiempo o más tarde, analizar, probar o
depurar resultados, e incluirlos en informes o presentaciones.
Las capacidades de Matlab para visualización pueden ayudar a identificar
rápidamente fenómenos ingeniosos.
III.1.8. Los beneficios de programar en Matlab.
El entorno de computación técnica de Matlab combina capacidades
matemáticas y de visualización fundamentales con un lenguaje estructurado y unas
herramientas de desarrollo de aplicaciones. Miles de funciones ya probadas para
aplicaciones específicas eliminan la necesidad de desarrollar rutinas matemáticas
propias desde el principio, mientras que el diseño abierto da acceso directo a
programas y datos externos. Matlab reduce el ciclo de desarrollo y le permite ahorrar
tiempo en la automatización de análisis, el desarrollo de algoritmos, o la creación de
aplicaciones basadas en Matlab o aplicaciones independientes.
A diferencia de la mayoría de los lenguajes tradicionales, Matlab da la libertad
de centrarse en los conceptos técnicos de más alto nivel e ignorar detalles de
programación tales como la gestión de memoria y las declaraciones de variables. Los
ficheros M no requieren compilación o enlazado, de manera que se puede editar y
depurar un fichero M y probar sus cambios de forma inmediata, sin necesidad de
dejar el entorno Matlab en ningún momento.
Simulación estocástica para predicción en los deportes.
40
III.1.9. Conectando aplicaciones de Matlab con nuevos entornos.
Con el Matlab C/C++ Compiler se puede convertir automáticamente ficheros M
en funciones dinámicas enlazables, así como en código portable ANSI C y C++
optimizado, para ser usado en aplicaciones independientes fuera del entorno Matlab.
Enlazando el código con las librerías matemáticas y gráficas, Matlab C/C++ Math
Library y Matlab C/C++ Graphics Library, se pueden crear aplicaciones externas que
aprovechan las funciones matemáticas, de análisis de datos, y gráficas de Matlab.
Estos productos permiten, inicialmente, implementar ideas, utilizando el lenguaje de
alto nivel que Matlab ofrece, y posteriormente entregar y distribuir versiones
portables en código C y C++ de los programas.
III.2. Simulink.
Simulink® es un entorno interactivo para modelizar, simular, y realizar
prototipos de sistemas dinámicos. (http://www.mathworks.com/products)
Simulink es una herramienta interactiva para la modelización, la simulación, y
el análisis de sistemas dinámicos. Comúnmente usado en diseño de sistemas de
control, diseño de sistemas de comunicación, y otras aplicaciones de simulación,
Simulink permite construir diagramas gráficos de bloques, simular sistemas
dinámicos, evaluar el rendimiento del sistema, y refinar diseños. Implementado sobre
Matlab, Simulink ofrece acceso inmediato a un amplio rango de herramientas de
análisis y diseño. A través de su completa integración con Simulink, Stateflow®
proporciona simulación y supervisión lógica de sistemas que soportan eventos.
Cuando nos aproximamos de forma tradicional al diseño de sistemas,
típicamente se construye un prototipo y se sigue con un extenso proceso de pruebas
y revisión. Este método puede ser a la vez caro, laborioso y lento. Como una
alternativa efectiva y ampliamente aceptada, la simulación es hoy por hoy la
aproximación preferida para el diseño en ingeniería. Simulink es una potente
Simulación estocástica para predicción en los deportes.
41
herramienta de software para la simulación, que permite de forma muy rápida
implementar y probar prototipos virtuales, de manera que se puede explorar los
conceptos del diseño a cualquier nivel de detalle, con un esfuerzo mínimo. Por el
hecho de usar Simulink para iterar y refinar diseños antes de construir el primer
prototipo, el proceso de diseño se hace más rápido, más eficiente y tiene una
reducción de costo significativa.
III.2.1. Características.
•Una completa librería de bloques para la creación de sistemas lineales, no lineales,
de tiempo discreto, de tiempo continuo, híbridos y de multifrecuencia.
•Creación conveniente de modelos jerárquicos y de subsistemas.
•Utilidad de enmascaramineto para la creación de bloques personales y librerías de
bloques.
•Visualizadores para el modelo y para la navegación dentro del modelo.
•Conexiones escalares y vectoriales.
•Etiquetas para las señales y los puertos de entrada y salida para hacer los
diagramas de bloques más claros y concisos.
•Simulación interactiva con visualización en tiempo de ejecución.
•Simulaciones de Montecarlo.
•Subsistemas ejecutados condicionalmente; sistemas trigger y enable.
•Visualizadores de la simulación, fuentes de entrada, sumideros de salida.
III.2.2. Características principales.
Simulink proporciona un entorno interactivo de diagramas de bloques para la
modelización y la simulación de sistemas dinámicos. Incluye una extensa librería de
bloques predefinidos que se pueden usar para construir modelos gráficos de
sistemas con sólo arrastrar los bloques con el ratón. Los modelos soportados
engloban sistemas lineales, no lineales, de tiempo continuo, de tiempo discreto,
multifrecuencia, ejecutados condicionalmente, y sistemas híbridos. Los modelos
Simulación estocástica para predicción en los deportes.
42
pueden ser agrupados en jerarquías con el fin de crear una visión simplificada de los
componentes o subsistemas. La información de alto nivel se presenta de forma clara
y concisa, mientras que la información detallada se guarda fácilmente en
subsistemas dentro de la jerarquía del modelo. Simulink tiene muchas características
que permiten la personalización, especialmente cuando se trata de incorporar código
C existente. Además, las simulaciones pueden ser ejecutadas interactivamente o en
modo batch desde la línea de comandos de Matlab.
III.2.3. Una extensa librería de bloques.
La librería de bloques de Simulink contiene cerca de 100 bloques,
proporcionando un extenso conjunto de componentes estándar. Los bloques están
agrupados en librerías, de acuerdo con su funcionalidad: fuentes, sumideros,
discretos, continuos, no lineales, matemáticas, funciones y tablas, señales y
sistemas.
Simulink proporciona un tipo especial de bloque llamado función S (S-
function). Con las funciones S puede incorporar código externo (C, Fortran, o Matlab)
en los modelos de Simulink. Esta característica permite beneficiarse de código ya
existente, haciendo de Simulink un entorno de modelización extremadamente
flexible. Simulink 3 proporciona soporte de funciones S para diversos puertos de
entrada y salida con el fin de mejorar su uso.
Además de su extenso conjunto de bloques ya definidos, Simulink brinda
características para la creación de bloques y librerías de bloques personalizables. No
tan sólo puede personalizar la funcionalidad de un bloque, sino que incluso se
pueden crear iconos y cajas de diálogo para subsistemas y funciones S.
Simulación estocástica para predicción en los deportes.
43
III.2.4. Simulación.
Después de construir el diagrama de bloques en Simulink, se pueden ejecutar
simulaciones interactivas y visualizar los resultados "en directo". Los resultados de la
simulación son extremadamente precisos debido al potente grupo de métodos de
resolución disponibles en Simulink.
III.2.5. Modernos Algoritmos de Integración.
El núcleo de simulación de Simulink ofrece numerosas propiedades para
simular sistemas grandes y complejos. Por encima de todas estas propiedades está
el conjunto de métodos de resolución basados en el ODE (ecuaciones diferenciales
ordinarias) suite de Matlab. Estos métodos de resolución son apropiados para
simulaciones en tiempo continuo (analógico), tiempo discreto, o simulaciones
híbridas de cualquier tamaño. Además, proporcionan resultados de simulación
rápidos, fiables, y extremadamente precisos.
Los métodos de resolución soportan ecuaciones algebraicas diferenciales
(DAEs) con bucles algebraicos multicanal. Un bucle de restricciones algebraico
facilita la solución de sistemas en los cuales una restricción algebraica se aplica al
conjunto principal de ecuaciones. Estos métodos también soportan métodos rígidos,
sistemas con bucles algebraicos, y sistemas con eventos de estado (es decir,
discontinuidades, incluyendo cambios instantáneos en la dinámica de la planta).
III.2.6. Integración con Matlab.
Al estar construido sobre Matlab, Simulink le proporciona un entorno de
desarrollo único. Este sistema le permite ejecutar simulaciones interactivas, a través
de la interfaz gráfica de Simulink, o bien sistemáticas, ejecutando conjuntos de
experimentos en modo batch desde la línea de comandos de Matlab. Ello le ofrece la
posibilidad de generar vectores de prueba y analizar los resultados colectivamente.
Simulación estocástica para predicción en los deportes.
44
III.2.7. Bibliotecas de enlace dinámico dll.
En el entorno MS-DOS, todos los módulos objeto de un programa quedaban
enlazados estáticamente durante el proceso de construcción. Windows permite un
enlace dinámico, lo cual significa que unas bibliotecas especialmente construidas
pueden ser cargadas y enlazadas en tiempo de ejecución. Múltiples aplicaciones
pueden compartir bibliotecas de enlace dinámico, con lo cual se ahorra memoria y
espacio de disco. El enlace dinámico incrementa la modularidad de un programa
porque se pueden compilar y comprobar las DLL de forma separada.
III.3. Lenguaje de programación Visual Basic 6.0.
Este trabajo utilizo como herramienta de desarrollo al lenguaje de
programación Visual Basic 6.0®, pero también pudo haber sido desarrollado con
cualquier otra herramienta de programación.
La ventaja del uso de herramientas de programación en general sea cualquier
lenguaje, es que no se está limitado por los autores de cualquier otro software ya
desarrollado, es decir podemos utilizar software especifico para desarrollar algún
sistema pero quizás no nos permitirá profundizar en él o quizás no podremos
desarrollar otro sistema diferente con el mismo software y esto no se tiene con las
herramientas de programación, ya que se pueden desarrollar componentes para
cualquier cosa y sólo se tienen los límites que el mismo programador se establece
para sí mismo por los conocimientos que tenga.
Hablando en particular de Visual Basic, es un lenguaje de programación visual
con una sintaxis bastante sencilla y un ambiente integrado de desarrollo, lo que
significa que tiene todos los recursos necesarios para desarrollar un sistema sin estar
abriendo nuevos programas como se hacía con los primeros lenguajes de
programación, en los cuales se utilizaba un editor para escribir el programa,
Simulación estocástica para predicción en los deportes.
45
posteriormente se guardaba el programa en disco y se ejecutaba otro programa; para
en caso de detectar errores se abría nuevamente el editor, de lo contrario podíamos
ejecutarlos o utilizar otro programa como depurador. En visual Basic se encuentran
todos los elementos, visualizador de objetos, diseñador de formas, editor de código,
asistentes para realizar tareas comunes, depurador, interprete, compilador, barra de
controles para Windows, etc.
III.3.1. Características.
Utiliza básicamente 2 herramientas, una para diseño gráfico y la otra es un
lenguaje de alto nivel.
Incluye una biblioteca de clases que da soporte a los controles más comunes
de Windows, cajas de texto, botones, ventanas, listas, menús desplegables,
etc.
Recupera información de cualquier fuente de datos.
Proporciona un entorno de desarrollo integrado (editor, intérprete, depurador,
examinador de objetos, explorador de proyectos, compilador, etc) que permite
trabajar todos los aspectos de desarrollo de un proyecto.
Ofrece un asistente para el desarrollo de aplicaciones comunes, paso a paso
de manera sencilla. Los asistentes de Visual Basic van solicitando información
al usuario y basándose en esto generan el código necesario para la tarea
seleccionada.
Contiene una galería de objetos incrustados (OLE), esto es componentes de
software para reutilizar en cualquier aplicación. Se obtiene visualización y
manipulación de datos de otras aplicaciones usando controles OLE.
Simulación estocástica para predicción en los deportes.
46
Soporta la interfaz para múltiples documentos (MDI), Que permite crear una
aplicación con una ventana principal y múltiples ventanas de documento.
Permite editar y continuar. En una sesión de depuración se pueden realizar
modificaciones al código sin cerrar la sesión.
Permite la creación y uso de DLL’s. Como se mencionó anteriormente, el uso
de librerías de enlace dinámico mejora la estructuración de un sistema,
además de aprovechar de mejor forma la memoria.
III.3.2. Entorno de desarrollo integrado.
Normalmente el desarrollo de aplicaciones era en tres pasos: Escribir,
compilar y probar. Cuando se tenía un error, el compilador es quien lo capturaba,
posteriormente era necesario recompilar y volver a probar una vez que se corregía el
error.
Visual Basic tiene un intérprete que analiza el código conforme es escrito,
capturando e indicando errores de sintaxis, además de mostrar una ayuda rápida de
la sintaxis o valores esperados para la función escrita. Con esto, al momento de
compilar el código escrito, la cantidad de errores de sintaxis es mínima y el
compilador encuentra otros tipos de errores.
El código puede ser probado conforme es escrito, y en donde sea necesario
realizar una modificación, se puede realizar el cambio sin necesidad de volver a
comenzar la ejecución del programa; con esto se tiene entre otras cosas la facilidad
de probar el código con distintos valores para analizar su comportamiento o para
determinar donde pueden presentarse errores.
Estas herramientas aquí mencionadas no se pueden considerar como las
mejores, pero sí son una buena opción para quien necesita desarrollar un buen
Simulación estocástica para predicción en los deportes.
47
sistema de simulación. Una característica que comparten las 3 herramientas es el
hecho de que son generales, es decir no tienen un enfoque especifico hacia ningún
área, por lo cual pueden ser utilizadas para desarrollar modelos sobre cualquier
tema.
Simulación estocástica para predicción en los deportes.
49
CAPÍTULO IV.
SISTEMA DE SIMULACIÓN.
IV.1. Torneo de fútbol Mexicano de Primera División.
El torneo de fútbol mexicano de primera división en que participan 18 equipos,
considerando su estructura y forma de competencia hasta el torneo de verano de
2001 (a partir de entonces ha cambiado), tiene el siguiente comportamiento:
Los equipos participantes, se encuentran clasificados en cuatro grupos, dos
de cinco equipos y dos de cuatro, un equipo no puede pertenecer a mas de un grupo.
El torneo se encuentra dividido en 17 partes llamadas jornadas, en cada
jornada cada uno de los equipos debe jugar en una y solo una ocasión contra otro
equipo. Al inicio del torneo se tiene preestablecido el rol de juegos, en ocasiones
algunos juegos son pospuestos, por lo que la Federación Mexicana de Fútbol (FMF)
que es el organismo responsable, se encarga de establecer una nueva fecha para
que el juego tenga lugar.
Al finalizar la jornada 17, mediante un proceso ya establecido se determina
que equipos pasarán a la siguiente fase del torneo o que equipos para pasar a esta
siguiente fase, deben enfrentarse entre si en lo que se ha denominado repechaje o
“repesca”.
IV.2. Metodología.
Antes de describir la forma en que opera el sistema, recordaremos un punto
mencionado anteriormente con respecto a la simulación, “los fenómenos que se
analizan no son inherentemente estocásticos o deterministas, sino que es elección
Simulación estocástica para predicción en los deportes.
50
del observador”; así también, lo es el hecho de determinar que tipo de distribución
será utilizada para describir el comportamiento del fenómeno.
Cuando se describió el proceso Poisson, se enfatizó en que éste permite
determinar la probabilidad de que ocurra un número designado de eventos en un
espacio de tiempo continuo. Se asume que los goles que ocurren en un partido no
están relacionados entre sí, es decir un gol no depende del gol anterior y la
ocurrencia es totalmente aleatoria. Para este experimento se utiliza la distribución de
Poisson para reproducir este proceso.
IV.2.1. Simulación de un partido.
Consideremos un encuentro entre dos equipos (no es relevante si los equipos
se han enfrentado un cierto número de veces en años anteriores, o no se han
enfrentado nunca). Cada uno de estos equipos presenta un comportamiento que
varia cuando juega como local ó como visitante; así mismo, cada uno recibe un cierto
número de goles como local y como visitante.
Considerando estos valores podemos calcular la probabilidad que tiene de
ocurrir cada posible gol en un partido (la distribución Poisson produce la probabilidad
de que ocurran 0, 1, 2, 3, 4, 5, ... eventos).
Posteriormente, como si se tratase de una ruleta en que cada probabilidad
tiene un área asociada, generamos un número aleatorio y dependiendo del valor,
quedará en determinada área de esta ruleta, área que representa un número o la
cantidad de goles que ocurrieron en ese evento.
Al repetir este proceso para cada equipo obtendremos el resultado final del
enfrentamiento. Para aumentar la veracidad de la información debemos repetir este
proceso muchas veces, hasta que la cantidad de repeticiones (que llamaremos
simulaciones) sea tal, que el resultado tenga una mínima variación. Realizando un
Simulación estocástica para predicción en los deportes.
51
análisis de los resultados obtendremos con un cierto grado de confianza la
probabilidad de ganar que tiene cada equipo.
IV.2.2. Simulación de una jornada.
Hasta este punto somos capaces de simular el enfrentamiento de dos
equipos, pero un torneo se encuentra dividido por jornadas como se describió
anteriormente; para esto es necesario repetir el proceso de enfrentamiento de dos
equipos considerando el orden en que se enfrentan los equipos y los parámetros
correspondientes.
IV.2.3. Simulación del torneo.
Finalmente para simular el torneo, el sistema debe realizar la simulación de
cada jornada a partir de la última jornada que halla sido jugada. Con la información
final se obtienen los resultados de que equipos participan en la última fase del
torneo. Sí realizamos nuevamente muchas simulaciones del torneo y analizamos la
información arrojada por las simulaciones, podremos concluir que los ocho equipos
que han resultado con mayor puntuación en un mayor número de veces, son los
equipos que tienen mayor probabilidad de pasar a la ultima fase del torneo, además
cada equipo tiene su propia probabilidad asociada.
IV.3. Sistema.
El sistema para predicción de resultados en el torneo de fútbol mexicano de la
primera división se desarrolló en 3 partes principales, cada una de estas partes fue
diseñada para trabajar de forma independiente y solo son vinculadas entre sí cuando
así se requiere.
Simulación estocástica para predicción en los deportes.
52
IV.3.1. Entrada de Datos.
Esta sección del sistema se desarrolló para que el usuario pueda introducir de
forma sencilla toda la información necesaria que el sistema requiere para poder
realizar la simulación del torneo y arrojar los resultados correspondientes,
aprovechando las posibilidades que ofrece un lenguaje de programación visual.
Dentro de la información con que el sistema debe ser alimentado se encuentran:
Grupos del Torneo. En este punto se genera un archivo que tiene
almacenados los cuatro grupos del torneo. Mediante la pantalla que se muestra a
continuación, el usuario puede agrupar los equipos de forma que esta información
represente la clasificación real del torneo. Para este punto se utiliza la interfaz
representada por la imagen 4.1.
Secuencia del torneo. Como al inicio del torneo ya se tiene establecido
el rol de juego, podemos utilizar esta información para alimentar al sistema. Es
necesario remarcar la importancia de este punto pues ésta es información vital para
el sistema, ya que la simulación del torneo la realiza enfrentando los equipos en el
orden en que ha sido indicado y para obtener resultados óptimos, debe de existir
total correspondencia entre la información proporcionada al sistema y la información
real del torneo.
La interfaz que presenta el sistema para este punto, al igual que el anterior es
bastante sencilla, esto se puede observar en la imagen 4.2.
Resultados de las jornadas. Conforme el torneo avanza, es necesario
proporcionar al sistema los resultados que se han ido obteniendo; esto es importante
ya que el sistema se retroalimenta con esta información para las jornadas
posteriores. El sistema detecta que resultados han sido proporcionados y sólo
calculara los resultados de las jornadas pendientes a jugar para realizar las
predicciones.
Simulación estocástica para predicción en los deportes.
53
Imagen 4.1 Captura de grupos
En ocasiones hay juegos que son anulados ya sea al momento de ser jugados
o incluso después, cuando alguno de los equipos pone una queja y esta es aprobada
por la FMF. En este caso el sistema permite anular algún juego aun cuando la
información ya había sido proporcionada y dicho enfrentamiento no será considerado
como factor determinante para la estimación de probabilidades de ninguno de los
equipos que en él intervienen.
Simulación estocástica para predicción en los deportes.
54
Imagen 4.2 Captura de jornadas.
Para alimentar al sistema con los resultados de las jornadas que ya han sido
jugadas, el sistema utiliza la información proporcionada en la secuencia del torneo,
es decir, al sistema sólo se le debe indicar cuál jornada ha sido jugada y mostrará
una pantalla en la cual aparecen los equipos en la secuencia y orden en que jugarán,
dependiendo de cómo fue proporcionada esta información.
Para realizar estos pasos, el sistema ofrece una interfaz totalmente gráfica
que facilita este proceso, ya que con el uso del ratón y botones se seleccionan los
equipos y, en donde es necesario, los números de jornadas y goles para finalmente
Simulación estocástica para predicción en los deportes.
55
guardar esta información para procesos posteriores, como se muestra en la imagen
4.3:
Imagen 4.3 Captura de resultados.
Toda la información proporcionada hasta este punto, se almacena en archivos
que el sistema lee cuando requiere hacer una simulación. Los archivos son los
siguientes:
C:\gpo00.dat, éste archivo almacena la información correspondiente al equipo y el
grupo a que pertenece, es un archivo binario formado por dos números enteros,
Simulación estocástica para predicción en los deportes.
56
donde el primero representa el equipo y el segundo representa el numero de grupo,
tomando valores de 0 a 17 y de 1 a 4 respectivamente.
C:\res00.dat, éste archivo guarda los resultados de los juegos que ya han sido
jugados y que se tienen registrados. Este archivo es un archivo binario de acceso
aleatorio, cuya estructura en Visual Basic es:
Type tipores
Torneo As Integer
Jornada As Integer
Local As Integer
Visita As Integer
MLocal As Integer
MVisita As Integer
jugado As Boolean
End Type
C:\jor00.dat, éste archivo guarda el orden en que se efectuaran los juegos durante el
torneo. Este es un archivo binario de acceso aleatorio, la estructura que compone
este archivo se define en Visual Basic así:
Type tipojor
Torneo As Integer
Jornada As Integer
Local As Integer
Visita As Integer
End Type
Estos tres archivos no deben ser alterados o eliminados por una herramienta
diferente al mismo sistema, pues en caso de hacerlo podría ocasionar errores en el
funcionamiento del mismo.
Simulación estocástica para predicción en los deportes.
57
IV.3.2. Procesamiento de Información.
Éste representa el módulo principal del sistema, pues es el encargado de
realizar todos los procesos involucrados en la simulación del torneo, generación de
archivos y tablas que serán utilizados por el módulo de salida de información.
Éste módulo para su funcionamiento, hace uso de la información con que fue
alimentado el sistema y se encarga de determinar a partir de qué juego comenzará a
funcionar la simulación; así también es el encargado de determinar los valores de las
variables que interfieren en los distintos procesos estocásticos y probabilísticos, en
los cuales recae gran parte de la veracidad de los datos proporcionados por el
sistema.
La primer parte del proceso de simulación consiste en crear la tabla de
posiciones, de todos los equipos que participan en el torneo, para este proceso y de
aquí en adelante el sistema asigna un numero a cada equipo, dependiendo del
nombre del equipo, se ordenan ascendentemente y se numeran a partir de 0, por lo
cual se tienen 18 equipos numerados de 0 a 17.
Para manipular la información de cada equipo se utiliza una estructura, que en
Visual Basic se define así:
Type tablatipo
Grupo As Integer ' Grupo a que pertenece el equipo
jugados As Integer ' Cantidad de juegos jugados
ganados As Integer ' Cantidad de juegos ganados
perdidos As Integer ' Cantidad de juegos perdidos
empatados As Integer ' Juegos empatados
golfavor As Integer ' Goles a favor
golcontra As Integer ' Goles en contra
Simulación estocástica para predicción en los deportes.
58
diferencia As Integer ' Diferencia de goles
puntos As Integer ' Puntos acumulados
caplocal As Double ' Promedio de goles como local
capdeflocal As Double ' Promedio de goles como visitante
capdefvisita As Double ' Promedio de goles recibidos por equipo local
capvisita As Double ' promedio de goles recibidos por equipo visitante
End Type
A partir de esta estructura se construye un arreglo numerado de 0 a 17:
Global Tablapos(17) As tablatipo 'Guarda la tabla de posicion real de los
equipos desde 0 hasta la jornada actual
Otras variables y estructuras importantes para el funcionamiento del sistema
son las siguientes:
Type juegostipo
Torneo As Integer
Jornada As Integer
Local As Integer
Visita As Integer
GolLocal As Integer
GolVisita As Integer
jugado As Boolean
End Type
Global TablaSim(17) As tablatipo ' Guarda las tablas de posiciones de las
simulaciones de las jornadas
Global Resultados(200) As juegostipo ' Guarda los resultados leidos del archivo de
'resultados para ser consultados por los calculos
Global simulados(200) As juegostipo ' Guarda los resultados de las simulaciones,
' con este se obtiene la tabla de posiciones de los juego simulados
Simulación estocástica para predicción en los deportes.
59
Finalmente se construye la tabla de posiciones, utilizando la información que
anteriormente se almaceno en archivos.
' Para esta funcion se toma a partir del primer partido de la jornada
' y hasta que no se encuentren mas resultados almacenados
' Crear tabla de posiciones
Sub creatabla()
Dim numarch, i, j, xj, tj As Integer
Dim gpo, eqp As Integer
Dim nom As String
Dim k As Integer
Dim regGpo As tipogpo
Dim regRes As tipores
Dim numReg As Integer
Dim jor, eloc, evis, mloc, tor, mvis As Integer
numarch = FreeFile
' Abrir archivo de grupos, inicializar variables
Open "c:\gpo00.dat" For Random As numarch Len = Len(regGpo)
While Not (EOF(numarch))
Get #numarch, , regGpo
If regGpo.Grupo <> 0 Then
With Tablapos(regGpo.equipo)
.Grupo = regGpo.Grupo
.capvisita = 0
.caplocal = 0
.diferencia = 0
.empatados = 0
.ganados = 0
.golcontra = 0
.golfavor = 0
Simulación estocástica para predicción en los deportes.
60
.jugados = 0
.perdidos = 0
.puntos = 0
End With
End If
Wend
Close #numarch
numarch = FreeFile
Open "c:\res00.dat" For Random As #numarch Len = Len(regRes)
j = 0 ' Abrir arch. de resultados para crear tabla
k = 0
numReg = TorneoActual * 9 * 17
While (Not EOF(numarch))
Get #numarch, numReg + k + 1, regRes
' se guarda en vector Resultados todos los juegos
With regRes
eloc = .Local
evis = .Visita
mloc = .MLocal
mvis = .MVisita
End With
Resultados(k).jugado = False
If regRes.jugado Then
jor = regRes.Jornada
With Resultados(k)
.Jornada = jor
.Local = eloc
.Visita = evis
.GolLocal = mloc
.GolVisita = mvis
.jugado = True
Simulación estocástica para predicción en los deportes.
61
End With
'Aqui se checa el cambio de jornada
k = k + 1
If j = 0 Then
xj = jor
j = 1
Else
If xj <> jor Then ' cuando se lee uno diferente es que hubo cambio
j = j + 1
xj = jor
End If
End If
' Guardar resultados de local
With Tablapos(eloc)
.jugados = .jugados + 1
.golfavor = .golfavor + mloc
.golcontra = .golcontra + mvis
If mloc > mvis Then
.ganados = .ganados + 1
.puntos = .puntos + 3
Else
If mvis > mloc Then
.perdidos = .perdidos + 1
Else
.empatados = .empatados + 1
.puntos = .puntos + 1
End If
End If
End With
' Guardar resultados de visitante
With Tablapos(evis)
Simulación estocástica para predicción en los deportes.
62
.jugados = .jugados + 1
.golfavor = .golfavor + mvis
.golcontra = .golcontra + mloc
If mvis > mloc Then
.ganados = .ganados + 1
.puntos = .puntos + 3
Else
If mloc > mvis Then
.perdidos = .perdidos + 1
Else
.empatados = .empatados + 1
.puntos = .puntos + 1
End If
End If
End With
Else
k = k + 1
End If
Wend
totalJugados = jor
' se Calcula la diferencia de puntos
For i = 0 To 17
With Tablapos(i)
.diferencia = .golfavor - .golcontra
End With
Next i
Close #numarch
End Sub
Existen dos formas de operar del sistema: pasiva y activa. En la operación
pasiva, no hay juegos que se desarrollen en ese instante; en la activa, es posible
Simulación estocástica para predicción en los deportes.
63
calcular la probabilidad en tiempo real, por ejemplo cada minuto. La utilidad de ésta
última opción es en la última jornada, cuando se desarrollan incluso varios juegos de
forma simultánea.
Independientemente de la forma en que opera el sistema, primero debe
calcular los parámetros correspondientes para la función de probabilidad (lambda
para la distribución de tipo Poisson.). Estos parámetros son el promedio de goles
anotados como local, el promedio de goles recibidos como local, el promedio de
goles anotados como visitante y el promedio de goles recibidos como visitante por
cada equipo.
Para seleccionar el modo de simulación, el sistema ofrece una interfaz
representada por la imagen 4.4, en la cual además de seleccionar el modo de
operación, podemos seleccionar también la cantidad de juegos a considerar.
Imagen 4.4 Elección de tipo de simulación.
Simulación estocástica para predicción en los deportes.
64
IV.3.2.1. Funcionamiento en modo pasivo.
El sistema toma los datos, determina en qué juego debe comenzar a simular y
calcula con la información disponible las variables para los distintos procesos
involucrados. Con dicha información, simula el torneo completo; este proceso se
realiza muchas veces para que los datos se aproximen en lo posible a un mismo
punto; al final del proceso de simulación, el sistema crea una lista con los equipos
con posibilidades de calificar y sus probabilidades correspondientes.
Código para la simulación de un torneo.
' Para simular torneo
' se leen las jornadas y a partir de donde se ha jugado
' se almacenan los que faltan en un arreglo
' se comienzan a simular las jornadas que faltan
' se realizan los calculos y se obtiene el resultado final
Sub simTorneo()
Dim k, i As Integer
Dim indice As Integer
Dim nojor, noeql, noeqv As Integer
Dim arch As Integer
Dim conTorneos As Integer
Dim numReg As Integer
Dim regJor As tipojor
Dim indFinal As Integer
Calculos
arch = FreeFile
Open "c:\jor00.dat" For Random As #arch Len = Len(regJor)
indice = 0
numReg = TorneoActual * 9 * 17 + (totalJugados - 1) * 9 + 1
indFinal = TorneoActual * 9 * 17 + 16 * 9 + 9
For i = numReg To indFinal
Simulación estocástica para predicción en los deportes.
65
Get #arch, i, regJor
With simulados(indice)
.Torneo = regJor.Torneo
.Jornada = regJor.Jornada
.Local = regJor.Local
.Visita = regJor.Visita
.jugado = True
End With
indice = indice + 1
Next i
Close #arch
For i = 0 To 17
Califica(i) = 0
Next i
For conTorneos = 1 To 700
k = 0
For i = totalJugados + 1 To 17
Call simJornada(k, 1)
k = k + 1
Next i
creaTablaSim (k)
Next conTorneos
For i = 0 To 17
DatosGraficar(i) = (Califica(i) / 700) * 100
Next i
Grafica.Caption = "Probabilidades de clasificación a la jornada " &
totalJugados
Grafica.Show
End Sub
La simulación de una jornada se realiza de la siguiente forma:
Simulación estocástica para predicción en los deportes.
66
'Simulacion de jornadas
' se recupera cada juego, se calcula el lambda
' correspondiente y se calculan los goles, al final
' se almacena el resultado en la tabla
Sub simJornada(ByVal jor As Integer, ByVal param As Double)
Dim indice, j, i As Integer
Dim elocal, evisitante As Integer
Dim par As Double
Dim num As Double
Dim poisl, poisv As Double
Dim lamloc, lamvis, ax, bx As Double
Dim sum, tot As Double
Randomize
For i = 0 To 8
indice = jor * 9 + i
lamloc = Tablapos(simulados(indice).Local).caplocal
ax = Tablapos(simulados(indice).Visita).capdefvisita
lamvis = Tablapos(simulados(indice).Visita).capvisita
bx = Tablapos(simulados(indice).Local).capdeflocal
' Calcular probabilidades del local
sum = 0
tot = 0
For j = 0 To 8
par = prob(lamloc , j)
suma(j) = par
sum = sum + par
Next
'Normalizar la suma
If sum > 0 Then
Simulación estocástica para predicción en los deportes.
67
For j = 0 To 8
suma(j) = suma(j) / sum
tot = tot + suma(j)
ProbsL(j) = tot
Next
End If
'calcular goles local
num = Rnd
j = 0
While num > ProbsL(j)
j = j + 1
Wend
simulados(indice).GolLocal = j ''' Goles del Local
' Calcular probabilidades del visitante
sum = 0
tot = 0
For j = 0 To 8
par = prob(lamvis, j)
suma(j) = par
sum = sum + par
Next
'Normalizar la suma
If sum > 0 Then
For j = 0 To 8
suma(j) = suma(j) / sum
tot = tot + suma(j)
ProbsV(j) = tot
Next
End If
'calcular goles visitante
num = Rnd
Simulación estocástica para predicción en los deportes.
68
j = 0
While num > ProbsV(j)
j = j + 1
Wend
simulados(indice).GolVisita = j ''' Goles del visitante
Next i
End Sub
La función probs(parametro1, parametro2) que se utiliza en este módulo, se
encarga de calcular, utilizando la distribución Poisson con lambda igual a
prarametro1, la probabilidad de que ocurran parametro2 eventos.
' Funcion que resuelve con la formula de la Poisson con parametros
' (lambda e i) primer y segundo parámetro.
Function prob(lambda As Double, ByVal i As Integer) As Double
Dim expon As Double
Dim prb, par2 As Double
prb = Exp(-(lambda))
par2 = (pow(i, lambda)) / fact(i)
prob = prb * par2
End Function
A partir de aquí el resto corresponde al módulo de salida de información.
IV.3.2.2. Funcionamiento en modo activo.
El sistema debe contar con los resultados del torneo hasta la penúltima
jornada, a partir de aquí el sistema se encargará de simular la última fecha del torneo
mostrando una pantalla en la que se determinan los enfrentamientos y opciones para
determinar el flujo del juego. Es muy común que la última jornada sea jugada de
Simulación estocástica para predicción en los deportes.
69
forma simultánea por todos los equipos; considerando esto, el sistema ofrece la
posibilidad de simular todos los juegos a la vez.
Un punto importante de la simulación activa es que se puede interactuar
directamente con el proceso de simulación que está siendo llevado a cabo; para
esto, además de contar con opciones para controlar el inicio y fin de cada posible
tiempo del juego, existen ventanas para que se varíe el marcador conforme se está
desarrollando el juego; con esto es posible que el sistema se retroalimente, con los
datos generados por la simulación y con los datos reales del juego.
IV.3.3. Salida de información.
Para presentar los datos al usuario y que pueda tomar éste sus conclusiones,
el sistema utiliza una gráfica en la que muestra cada equipo y el porcentaje de veces
que calificó. Utilizando esta información, podemos concluir que aquellos ocho
equipos que calificaron un mayor número de veces, son los que tienen mayor
probabilidad de pasar a la siguiente fase del torneo.
IV.3.3.1. Salida pasiva y activa.
En puntos anteriores se mencionó cómo funcionan las simulaciones pasiva y
activa; en cuanto a la presentación de los resultados, la gráfica es muy similar. Lo
que hace diferentes a los dos tipos de procesamiento es que cuando se desea
realizar una predicción de forma pasiva se genera una sola gráfica al final de todo el
proceso de simulación; cuando se elige una predicción activa, se genera una gráfica
similar, pero dicha gráfica se está generando cada cierto intervalo de tiempo, siempre
y cuando esté corriendo el reloj de juego o se tengan activadas las casillas de inicio
de alguno de los tiempos.
La imagen 4.5 representa la grafica de una simulación pasiva:
Simulación estocástica para predicción en los deportes.
70
Imagen 4.5 Grafica de una simulación.
La razón de que se esté regenerando la gráfica, se debe al hecho de que
conforme avanza el tiempo, los equipos cada vez están más próximos, ya sea a
calificar o a quedar fuera de la siguiente fase. Recordemos que en este tipo de
predicción lo que se simula es la última jornada, por lo cual, cuando este juego
termina, ya se sabe a ciencia cierta cuales equipos pasan a la siguiente fase del
torneo y cuales no.
La imagen 4.6 corresponde a una simulación activa, como se podrá apreciar
atrás de la pantalla de información, aparece la grafica que permite conocer las
probabilidades de los equipos.
El sistema crea algunos archivos mientras está simulando el torneo, en los
que se puede apreciar claramente el desempeño de los equipos durante la
simulación. Dentro de la información proporcionada se encuentran las tablas
generales de puntuación, la cantidad de goles durante cada enfrentamiento y la
cantidad de goles acumulados por cada uno de los equipos.
Simulación estocástica para predicción en los deportes.
71
IV.3.4. Solución a preguntas ¿QUÉ PASA SÍ?.
Se ha mencionado la importancia de este tipo de preguntas, pues permiten
conocer como funcionará el sistema ante situaciones que o bien tienen muy poca
probabilidad de presentarse o que requieren un análisis más profundo. En este caso
para la simulación pasiva, el sistema puede ser alimentado con datos ficticios para
determinar que pasaría si en la siguiente jornada, uno de los equipos le ganara a su
equipo contrincante, o si un equipo empatara contra otro equipo, etc.; sólo es
importante tener cuidado de que estos datos ficticios, sean posteriormente
reemplazados con los datos reales obtenidos del enfrentamiento de estos equipos.
Al momento de elegir el tipo de simulación, se puede seleccionar la cantidad
de juegos anteriores a considerar. Esto es importante pues nos permite conocer el
desempeño de los equipos, si éstos se comportaran el resto del torneo como en los
últimos juegos, desempeño que puede no ser igual si los equipos han tenido un
comportamiento muy variable desde el inicio del torneo.
En lo que respecta a la simulación activa, también es posible conocer cuales
serían los posibles resultados si en la última jornada un equipo estuviera hasta cierto
tiempo un gol arriba en el marcador; o dependiendo del marcador, que resultados se
obtendrían, si en ese momento terminara el encuentro. Este es el tipo de preguntas
que se pueden hacer y que el sistema, dada su flexibilidad, es capaz de responder.
IV.4. Prueba de la hipótesis.
Para obtener óptimos resultados, el sistema se debe acoplar a todos los
aspectos del torneo para arrojar mejores resultados (la simulación imita la realidad),
esto es de los aspectos de mayor complicación al momento de realizar un sistema de
simulación.
Simulación estocástica para predicción en los deportes.
72
Imagen 4.6 Pantalla para la simulación activa.
Para realizar la prueba del sistema y con esto demostrar la hipótesis,
emplearemos los resultados del torneo de fútbol mexicano de primera división del
verano de 2001.
Para crear la gráfica 4.7, el sistema utilizo la información de los resultados de las
primeras 10 jornadas del torneo. La predicción se realiza hasta la fase de calificación
y la grafica muestra las probabilidades que tiene cada equipo de pasar a la fase final
del torneo; estas predicciones están basadas en la suposición de que los equipos
mantendrán el mismo comportamiento durante el resto del torneo, lógicamente si su
desempeño cambia también lo hará su probabilidad de calificar. Recordemos que la
Simulación estocástica para predicción en los deportes.
73
simulación se realiza a partir de la ultima jornada capturada hasta la jornada 17,
debido a esto, aun cuando el equipo A tenga un mejor desempeño que el equipo B a
la fecha, podría tener una menor probabilidad de clasificación por diferentes causas:
por ejemplo, probablemente el resto de los encuentros es más “difícil” para el equipo
A que para el equipo B, o tal vez los equipos en el grupo de A tienen mejor
desempeño, lo que le dificulta su clasificación.
Por lo anterior, es claro que al avanzar el torneo las probabilidades de
clasificación se vuelven más precisas ya que el proceso de estimación mejora y el
número de juegos por simular disminuye.
Gráfica 4.7. Probabilidades de clasificación, en la jornada 10.
Los siguientes, son los equipos que pasaron a la etapa final: León, Pachuca,
Puebla, U.A.G., Monterrey, América, Tigres y Santos.
Para las siguientes simulaciones utilizaremos la información de las 17 jornadas (no
hay mas jornadas por simular), y con ésta información simularemos juegos de forma
Simulación estocástica para predicción en los deportes.
74
individual, estos juegos son solo algunos de los juegos que se desarrollaron en las
etapas de recalificación, cuartos de final, semifinal y final.
Para la simulación de los juegos individuales, se selecciona como primer
equipo al que jugara de local en el partido de ida, el sistema automáticamente simula
el partido de vuelta.
Después de cada gráfica aparece una tabla, esta tabla muestra los resultados
que se obtuvieron cuando se enfrentaron los equipos cuyo encuentro fue simulado;
los porcentajes que aparecen en cada gráfica, representan las probabilidades que
tiene cada equipo de resultar ganador, así también, se muestra la probabilidad que
existe de que al final del juego exista un empate.
Simulación de un juego de la fase de recalificación.
Resultados obtenidos en el encuentro de los equipos.
Atlas Vs. Puebla
Partido de ida. 1 2
Partido de Vuelta 3 3
Marcador Global 4 5
Equipo ganador: Puebla.
Resultado de la simulación.
Simulación estocástica para predicción en los deportes.
75
Gráfica 4.8. Simulación del encuentro Atlas vs. Puebla.
Simulación de un juego de los cuartos de final.
Resultados obtenidos en el encuentro de los equipos.
León Vs. América
Partido de ida. 1 1
Partido de Vuelta 1 4
Marcador Global 2 5
Equipo ganador: América.
Resultado de la simulación.
Gráfica 4.9. Simulación del encuentro León vs. América.
Simulación de un juego de la semifinal.
Resultados obtenidos en el encuentro de los equipos.
Puebla Vs. Santos
Partido de ida. 5 4
Partido de Vuelta 1 2
Marcador Global 6 6
Equipo ganador por diferencia de puntos: Santos.
Resultado de la simulación.
Simulación estocástica para predicción en los deportes.
76
Gráfica 4.10. Simulación del encuentro Puebla vs. Santos.
Simulación de la final del torneo de fútbol.
Resultados obtenidos en el encuentro de los equipos.
Pachuca Vs. Santos
Partido de ida. 2 1
Partido de Vuelta 1 3
Marcador Global 3 4
Equipo ganador: Santos.
Resultado de la simulación.
Gráfica 4.11. Simulación del encuentro Pachuca vs. Santos.
Simulación estocástica para predicción en los deportes.
77
CONCLUSIONES.
Considerando los resultados obtenidos de las múltiples pruebas realizadas, se
puede concluir que se acepta la hipótesis planteada. Un modelo de simulación
estocástica por computadora es capaz de predecir con un alto grado de confianza,
los resultados del torneo de fútbol mexicano de primera división.
Uno de los problemas principales al momento de crear el modelo del torneo de
fútbol mexicano, fue implementar la llamada fase de recalificación; primeramente por
el hecho de no conocer totalmente el sistema empleado por la FMF, para determinar
que equipos son los que entran en esta fase, y en segundo término, por lo complejo
que resulta determinar cuales equipos deben jugar un encuentro más antes de pasar
a la fase final del torneo.
Este trabajo puede servir como base para desarrollar sistemas de simulación
aplicados a otros deportes o disciplinas cuyo comportamiento sea similar al del
torneo de fútbol mexicano de primera división, tal es el caso de los torneos de fútbol
de España, Italia, y otros países.
La utilidad principal de este tipo de simulación se puede enfocar hacia los
medios de comunicación como comentaristas deportivos o los encargados de las
columnas deportivas de los periódicos y revistas especializadas, pues tienen en este
tipo de sistemas una herramienta que les permite hacer predicciones basadas no
solamente en observaciones.
Se puede mejorar este sistema, ampliando su capacidad para soportar los
cambios que se pueden dar en el torneo, como sucedió después del torneo de
verano 2001; estas modificaciones incluyen el numero de equipos participantes, la
cantidad de juegos por jornada y la cantidad de jornadas por torneo.
Simulación estocástica para predicción en los deportes.
78
A continuación se mencionan otros puntos de importancia que se pueden
concluir de este trabajo.
Es necesario trabajar en la elaboración de algoritmos que permitan a una
computadora realizar el trabajo para el que se requiere mucho tiempo de estudio o la
solución de ecuaciones complejas.
Existen herramientas de software que son capaces de simular muchos tipos
de procesos, pero es mas practico realizar software especializado para atacar un
problema especifico.
El modelar un sistema tiene grandes beneficios entre ellos podemos
mencionar:
Reducción de costos de implantación
Una mejor planeación
Un mejor entendimiento del sistema
Existe un punto muy importante que debe de tener un modelo que simule un
sistema y es el hecho de poder responder preguntas del tipo ¿qué pasa si?, ya que
estas preguntas nos permiten comprender mejor el sistema, nos permiten ubicar
cuellos de botella y también ayudan a visualizar el comportamiento del sistema en
cualquier tipo de condición.
La confiabilidad que se puede tener en un modelo de predicción o de
simulación de sistemas, depende directamente del buen estudio que se haga del
mismo y del conocimiento que se tenga de él, pues esto permite conocer los factores
que intervienen en el comportamiento del sistema y ayuda a determinar que variables
se requieren y como se comportan.
En lo que respecta a la herramienta adecuada para desarrollar e implementar
el modelo de simulación, es recomendable buscar alguna herramienta para realizar
Simulación estocástica para predicción en los deportes.
79
simulaciones sobre el tema que se esta tratando, en caso de no existir o de que la
herramienta que existe no satisfaga todos los requerimientos que se tienen, se puede
utilizar una herramienta general que permita desarrollar un modelo que trabaje en
todos los puntos que del modelo se requieren, recordemos que los lenguajes de
programación pueden ser tan potentes como el programador requiera.
Simulación estocástica para predicción en los deportes.
81
BIBLIOGRAFÍA
Libros.
Brian D. Ripley. (1987). “Stochastic simulation”; Ed. John Wiley & Sons, EUA.
Mendenhall Willian, Sincich Terry; “Probabilidad y estadística para ingeniería y
ciencias”; 4ª ed.; Editorial Prentice Hall.
M. Sasieni, A. Yaspan, L. Friedman. (1982). “Métodos y problemas de investigación
de operaciones”; México, Ed. Limusa.
Robert J. Thierauf, Richard A. Gross.( 1990). “Toma de decisiones por medio de
investigación de operaciones”; México, ed. Limusa-Noriega.
Robert E. Shannon. (1988). “Simulación de sistemas. Diseño, desarrollo e
implementación”; México, ed. Trillas.
R. Lyman Ott. (1993). “An introduction to statistical methods and data analysis”;
Duxbury Press, 4a. ed.
Research & Education Association. (1993). “Statistics Problem Solver”.
Taylor Howard M., Karlin Samuel (1994). “An introduction to stochastic Modeling”;
Academic Press, EUA.
Infante Gil Said, P. Zarate de Lara Guillermo. (1990). “Métodos estadísticos”; 2a.
Ed., editorial Trillas.
William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. , (1988).
“Numerical recipes in C”. Cambridge University Press.
Sitios de Internet.
http://www.femexfut.org.mx. (Enero 2001).
http://www.mathworks.com. (Marzo 2001).