\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\usepackage[dvips]{epsfig}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage{pst-all}
\usepackage{amssymb}
\usepackage{fullpage}
\usepackage{graphicx}


\begin{document}

\title{\textbf{Módulo Montecarlo\\
Software MES \\
CGE Consultores }}
\author{René González Leiva \\
\emph{aplikadito@gmail.com}\\ \\
Estudiante Ingeniería Civil Informática \\
Universidad Técnica Federico Santa María}
\date{Julio, 2008}
\maketitle

\section{Introducción}

La simulación Montecarlo básicamente permite obtener muestreos
aleatorios de situaciones reales basado en modelos de comportamiento
de las variables que participan en cierto problema.

La implementación hecha en el software MES de la simulación
montecarlo permite asignar distintas distribuciones de probabilidad
a las variables:

\begin{itemize}
  \item Tiempo entre Fallas (TBF)
  \item Tiempo de Reparación (TTR)
  \item Costo de Reparación (CR)
\end{itemize}

Con estas variables, se calculan los siguientes indicadores:
\begin{itemize}
  \item Disponibilidad
  \item Costo de Mantención
  \item Costo de la Falta
\end{itemize}

Los resultados son probabilísticos, por lo que se utilizan
histogramas para presentar la informacioon.

\section{Distribuciones en Módulo Montecarlo para MES}
El módulo Montecarlo para MES implementa las siguientes
distribuciones de probabilidad:

\begin{itemize}
  \item Exponencial $Exp(\lambda)$
  \item Weibull $Weibull(\alpha,\beta)$
  \item Normal $N(\mu,\sigma^2)$
  \item LogNormal $Ln(\mu,\sigma^2)$
  \item Triangular $Tr(a,b,c)$
  \item Uniforme $U(a,b)$
  \item Dirac $Dirac(p)$
\end{itemize}

Se definen funciones comunes a todas las distribuciones:
\begin{itemize}
  \item Una función que devuelva la función de densidad de la
  distribución $f(x)$
  \item Una función que devuelva la función de probabilidad acumulada
  de la distribución $F(x)$
  \item Una función que devuelva la función inversa de la función de
  distribución de probabilidad acumulada $F^{-1}(x)$
\end{itemize}


\section{Obtención de números aleatorios}
Supongamos que se tiene una variable X que se puede modelar con una
exponencial de media 0,007, $Exp(0,007)$. Para obtener valores de la
variable X acorde con su comportamiento exponencial, se realiza lo
siguiente:
\begin{enumerate}
  \item Se obtiene un número aleatorio uniformemente distribuido
  entre 0 y 1 (utilizando la clase \textbf{Random} y el método \textbf{nextDouble()})
  \item Luego, con ese número, se llama al método que obtiene la
  función inversa de la función de distribucion acumulada.
  \item El resultado de la inversa es un número dentro del rango
  definido por la distribución exponencial asociada.
\end{enumerate}

Por ejemplo, supongamos que el número aleatorio obtenido fue $0.4$.
Sabemos que la función de distribución acumulada de una exponencial
es

$$ F(x) =  1 - e^{-(\lambda x)} $$

La inversa se puede obtener directamente

$$ F(x)^{-1} =  - \frac{e^{1-y}}{\lambda} $$

donde $y$ es un número entre 0 y 1. De forma genérica

$$ F(x)^{-1} =  - \frac{e^{1- U(0,1)}}{\lambda} $$

Ahora, simplemente se reemplazando los valores: $y = 0.4; \lambda =
0.007$

$$ F(x)^{-1} = 260.3 $$

Con esto, se realiza un mapeo de una función uniforme entre 0 y 1 a
una exponencial con media 0.007. Y en general, este procedimiento es
similar para toda distribución que posea una función inversa de
probabilidad acumulada definida. Este método se conoce como
\textbf{Algoritmo de la Transformada Inversa} y se puede definir, de
forma general, de la siguiente manera:\\

\emph{Sea U una variable aleatoria uniforme en (0,1). Para cualquier
función de distribución continua F, invertible, la variable
aleatoria X definida como }

$$X = F^ {-1}(U)$$

\emph{tiene distribución $F$ [$F^{-1}$ se define como el valor de x
tal que $F(x) = u$]}


\section{Obtención de números aleatorios para Normal y LogNormal}

Dado que no es posible aplicar el método anterior a estas
distribuciones, se utilizó un generador de números aleatorios
normalmente distribuido (utilizando la clase \textbf{Random} y el
método \textbf{nextGaussian()}) respecto a una Normal Estandar. Para
obtener un número aleatorio respecto a una $Normal(\mu, \sigma^2)$,
simplemente, se realiza un cambio de variables

$$ n = N(0,1)$$
$$ z = \sigma \cdot n + \mu$$

donde $z$ está $N(\mu,\sigma)$-mente distribuido.

Para obtener un valor aleatorio asociado a una LogNormal con media
$\mu$ y desviación estandar $\sigma$, se realizó la siguiente
transformación

$$z = e^{\sigma \cdot n + \mu}$$

Lamentablemente, los resultados obtenidos utilizando esta
transformación fueron incorrectos.



\end{document}
