GeomScale / volesti

Practical volume computation and sampling in high dimensions
GNU Lesser General Public License v3.0
144 stars 113 forks source link

Questions about the Billard Walk Implementation #266

Closed GrenteTheo closed 1 year ago

GrenteTheo commented 1 year ago

Dear contributors of the volesti project,

In the develop branch of the volesti deposit, more precisely in volesti/include/random_walks, I was wondering why the length (the variable T) computed in the file https://github.com/GeomScale/volesti/blob/develop/include/random_walks/uniform_billiard_walk.hpp#L102 and in the file https://github.com/GeomScale/volesti/blob/develop/include/random_walks/uniform_accelerated_billiard_walk.hpp#L102 are not the same. In the first file, T=uniformL and in the second T=-log(uniform)L, shouldn't this two length be generated in the same manner ?

I am also wondering why not take for T the square root of -log(uniform)*L in order to obtain a gaussian distribution on the coordinates ? Is there a particular reason to stick to an exponential distribution ?

vissarion commented 1 year ago

You should treat the length of the trajectory in the billiard walk as a heuristic, therefore yes it could be the square root of -log(uniform)*L or some other function. Ideally, the function should be a parameter of the walk such that the user can define their own functions. Now regarding the first billiard walk you mention it is redundant and we should consider removing it.

GrenteTheo commented 1 year ago

Thank you for your answer ! It confirmed my thoughts on the choice of the length of the trajectory as nothing more than an heuristic.