close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 13 and Version 14 of OfficialTolArchiveNetworkBysSamplerRandWalkInPolytope


Ignore:
Timestamp:
Feb 1, 2011, 5:47:50 PM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OfficialTolArchiveNetworkBysSamplerRandWalkInPolytope

    v13 v14  
     1
    12[[PageOutline]]
    23= Generación de candidatos factibles en un politopo =
     
    6667
    6768Al igual que se hace con los generadores simétricos habituales es necesario fijar un tamaño de paso
    68 máximo [[LatexEquation(s)]] que para que se generen puntos no demasiado lejanos del acutual, de forma
     69máximo [[LatexEquation(s)]] para que se generen puntos no demasiado lejanos del acutual, de forma
    6970que el ratio de aceptación sea razonable.
    7071De esta forma se podría definir el radio de la hiperesfera como
     
    9394distribución se procederá como sigue
    9495
    95  1. Primero se simulará un vector multinormal estandarizado [[BR]] [[BR]]
    96     [[LatexEquation(w\sim Normal\left(0,I\right)\in\mathbb{R}^{n} )]] [[BR]] [[BR]]
    97  1. Dividiendo ese vector por su norma euclídea se obtendrá una dirección unitaria uniforme en la frontera
    98     de la hiperesfera de radio 1 centrada en el origen [[BR]] [[BR]]
    99     [[LatexEquation( u=\frac{w}{\left\Vert w\right\Vert _{2}}  )]] [[BR]] [[BR]]
    100  1. Luego se multiplica ese vector por un radio [[LatexEquation(h)]] con densidad directamente
    101     proporcional a la hipersuperficie de dimensión n-1 de la hiperesfera correspondiente[[BR]] [[BR]]
    102     [[LatexEquation( \begin{array}{c} F\left(h\right)=\intop_{0}^{h}c\cdot t^{n-1}\mathbf{d}t=\left.\frac{c}{n}t^{n}\right]_{0}^{h}=\frac{c}{n}h^{n}\\ F\left(\rho\right)=\frac{c}{n}\rho^{n}=1\Rightarrow c=n\rho^{-n}\\ F\left(h\right)=\left(\frac{h}{\rho}\right)^{n}\end{array} )]] [[BR]] [[BR]]
     96 1. Si el último punto generado es estrictamente interior al politopo y su distancia a la frontera es
     97    mayor que cierta cota prefijada [[LatexEquation( \rho_0 )]] entonces usamos dicho punto como origen
     98    de candidatos
     99  1. Primero se simulará un vector multinormal estandarizado [[BR]] [[BR]]
     100     [[LatexEquation(w\sim N\left(0,I\right)\in\mathbb{R}^{n} )]] [[BR]] [[BR]]
     101  1. Dividiendo ese vector por su norma euclídea se obtendrá una dirección unitaria uniforme en la frontera
     102     de la hiperesfera de radio 1 centrada en el origen [[BR]] [[BR]]
     103     [[LatexEquation( u=\frac{w}{\left\Vert w\right\Vert _{2}}  )]] [[BR]] [[BR]]
     104  1. Luego se multiplica ese vector por un radio [[LatexEquation(h)]] con densidad directamente
     105     proporcional a la hipersuperficie de dimensión n-1 de la hiperesfera correspondiente[[BR]] [[BR]]
     106     [[LatexEquation( \begin{array}{c} F\left(h\right)=\intop_{0}^{h}c\cdot t^{n-1}\mathbf{d}t=\left.\frac{c}{n}t^{n}\right]_{0}^{h}=\frac{c}{n}h^{n}\\ F\left(\rho\right)=\frac{c}{n}\rho^{n}=1\Rightarrow c=n\rho^{-n}\\ F\left(h\right)=\left(\frac{h}{\rho}\right)^{n}\end{array} )]] [[BR]] [[BR]]
     107 1. Si el punto está en la frontera o a una distancia menor de [[LatexEquation( \rho_0 )]] entonces se
     108    retomará el último punto interior que cumplía dicha condición como origen de los
     109    candidatos, y se ejecuta desde el principio el proceso, pero luego se compararán las probabilidades
     110    de los candidatos con las del último punto generado, para asegurar así la convergencia, según el
     111    principio básico del [http://en.wikipedia.org/wiki/Detailed_balance balance-detallado].
    103112
    104113=== Paseo aleatorio radial asimétrico ===
     
    115124
    116125Los pasos para conseguirlo serían los siguientes
    117  1. Si los puntos [[LatexEquation( x - s u)]] y [[LatexEquation( x + s u)]] son ambos factibles
    118     entonces se toma [[LatexEquation( h^{-} = -s)]] y [[LatexEquation( h^{+} = +s )]]
    119  1. Si [[LatexEquation( x - s u)]] no es factible habría que buscar mediante un método univariante
    120     como el de la bisectriz o el de Fibonacci el mínimo valor de [[LatexEquation( h^{-} )]] para el
    121     que el punto es factible, y que debe estar obligatoriamente en el intervalo
    122     [[LatexEquation(\left[-s,0\right]  )]]
    123  1. Análogamente, si [[LatexEquation( x + s u)]] no es factible habría que buscar el máximo valor
    124     de [[LatexEquation( h^{-} )]] para el que el punto es factible, y que debe estar obligatoriamente
    125     en el intervalo [[LatexEquation(\left[0,s\right]  )]]
    126  1. Si el intervalo es propio, es decir, si [[LatexEquation( h^{-} < h^{+})]], entonces ya se puede
    127     generar la uniforme anterior.
    128  1. Si el intervalo resulta ser un punto, o sea, [[LatexEquation( h^{-} = 0 = h^{+})]] entonces
    129     quiere decir que estamos en un vértice del politopo y hemos tomado una dirección completamente
    130     exterior
     126 1. Si estamos en un punto interior:
     127  1. Si los puntos [[LatexEquation( x - s u)]] y [[LatexEquation( x + s u)]] son ambos factibles
     128     entonces se toma [[LatexEquation( h^{-} = -s)]] y [[LatexEquation( h^{+} = +s )]]
     129  1. Si [[LatexEquation( x - s u)]] no es factible habría que buscar mediante un método univariante
     130     como el de la bisectriz o el de Fibonacci el mínimo valor de [[LatexEquation( h^{-} )]] para el
     131     que el punto es factible, y que debe estar obligatoriamente en el intervalo
     132     [[LatexEquation(\left[-s,0\right]  )]]
     133  1. Análogamente, si [[LatexEquation( x + s u)]] no es factible habría que buscar el máximo valor
     134     de [[LatexEquation( h^{-} )]] para el que el punto es factible, y que debe estar obligatoriamente
     135     en el intervalo [[LatexEquation(\left[0,s\right]  )]]
     136  1. El intervalo ha de ser propio por partir de un punto interior, es decir,
     137     [[LatexEquation( h^{-} < h^{+})]], con lo que ya se puede generar la uniforme anterior.
     138 1. Si el punto está en la frontera se tomará el último punto interior aceptado como origen de los
     139    candidatos y se repite desde el principio generando una nueva dirección unitaria aleatoria, pero
     140    se compararán las probabilidades de los candidatos con las del último punto generado, para asegurar
     141    así la convergencia.
     142
     143=== Paseo aleatorio mixto ===
     144El paseo aleatorio hiperesférico tiene la ventaja de ser muy rápido pues sólo se necesita la distancia
     145a la frontera, pero tiene el inconveniente que no es capaz de acercarse demasiado a la frontera y menos
     146aún a los vértices donde a veces podría concentrarse la verosimilitud.
     147
     148El paseo aleatorio radial asimétrico tiene la ventaja de que puede acercarse mucho más a la frontera
     149pero resulta mucho más caro de evaluar, pues puede precisar resolver hasta dos problemas de optimización
     150univariante para cada generación y para cada evaluación de la log-densidad.
     151
     152Si dos métodos de generar cadenas de Markov cumplen la propiedad del
     153[http://en.wikipedia.org/wiki/Detailed_balance balance-detallado]
     154entonces cualquier mezcla de ellas también la cumple, por lo que es perfectamente lícito alternar ambos
     155métodos según convenga.
     156
     157En este caso podría utilizarse el método hiperesférico cuando el punto se ecuentre a una distancia mínima
     158de la frontera y el método radial asimétrico en otro caso.