Generating Doubly Stochastic Matrices

Constrained Optimization

Generate random matrix, find closest doubly stochastic in least square sense

In[427]:=

"doubly-stochastic2_1.gif"

Out[430]=

"doubly-stochastic2_2.gif"

In[439]:=

"doubly-stochastic2_3.gif"

Out[440]=

"doubly-stochastic2_4.gif"

In[441]:=

"doubly-stochastic2_5.gif"

Out[441]=

"doubly-stochastic2_6.gif"

In[448]:=

"doubly-stochastic2_7.gif"

Out[448]=

"doubly-stochastic2_8.gif"

Markov Chain sampling

Start with a random permutation matrix, randomly modify 4 entries each time

In[449]:=

"doubly-stochastic2_9.gif"

In[454]:=

"doubly-stochastic2_10.gif"

In[467]:=

"doubly-stochastic2_11.gif"

Out[471]=

"doubly-stochastic2_12.gif"

Iterative Proportional Fitting (Dr.Teh suggestion)

Normalize rows/columns repeatedly

In[679]:=

"doubly-stochastic2_13.gif"

In[740]:=

"doubly-stochastic2_14.gif"

Out[743]=

"doubly-stochastic2_15.gif"

How long does it take to converge?

"doubly-stochastic2_16.gif"

In[739]:=

"doubly-stochastic2_17.gif"

Out[739]=

Graphics:Number of Iterations till convergence

Convex Combination of Permutation Matrices (Jeremy's suggestion)

In[776]:=

"doubly-stochastic2_19.gif"

Out[777]=

"doubly-stochastic2_20.gif"

In[778]:=

"doubly-stochastic2_21.gif"

Out[778]=

"doubly-stochastic2_22.gif"

In[779]:=

"doubly-stochastic2_23.gif"

Out[779]=

"doubly-stochastic2_24.gif"

How to sample from this set?


Created by Wolfram Mathematica 6.0  (18 December 2007) Valid XHTML 1.1!