Description | Download | Last Update | |

Hypersphere | How to put random points inside a D-dimension hypersphere (not so easy). How to compute the volume of a hypersphere, and, more generally, how to compute the volume of the intersection of two hyperspheres | spherical_distribution |
2003-07 |

LCP to TSP | How to explicitely transform a List Coloring problem into a Traveling Salesman Problem (method initially designed for Frequency Assignment Problem). | A paper explaining the method
and a C program (zip file) |
2001-02-19 |

MasterMind | 4 positions, 6 colors. An exhaustive Excel analysis and an unbeatable small C program. | spreadsheet and C source code (.zip) | 2001-11-07 |

Constraint free binary coding of permutations |
To transform any permutation problem into a binary one, without adding any constraints. Useful for optimisation. |
C source code |
2005-03-27 |

Random permutation generation |
An uniform pseudo-random generator of permutations. Most of the others are in fact biased. |
C source code |
2005-03-28 |

Collective decision, or When minority wins |
At the beginning, very few people do have an opinion. At each time step, each guy who has an opinion says it to a few number of others, at random. Each guy who receives an opinion adopts it, with a probability pr. Even for pr<0.5, after a while, everybody has the same opinion ... |
C source code |
2005-03-27 |

Comparing algorithms |
How to compare two stochastic algorithms, knowing their results on a benchmark set of problems? Here is an user point of view |
PDF file Zipped XLS file |
2007-04-01 2006-07-04 |

Permutations generator |
Classical but useful: generates either the N! permutations of {1,2,..,N}, or just the (N-1)! "cycles" |
SciLab recursive source code |
2007-10-07 |

Permutation coding/decoding |
Code a permutation into an integer. Decode an integer into a permutation. Methods coming from Mersenne (~1630) and Laisant (1888). The last version can cope with big integers, by "splitting" them |
C code C code |
2008-08-23 2008-08-13 |

Hammersley | Generation of N points in a D-parallelepid. Classical Hammersley method, and an improved variant. See also below Quasi-random number generation. |
C code | 2008-11-22 |

Variograms and kriging | For any defined function, compute a variogram and the corresponding kriging coefficients | C code | 2009-03-05 |

Universal Random Number Generator |
A tool to generate random numbers according to any probability distribution |
Explanation + C code (PDF file) |
2009-12-22 |

LinearSolve |
A tool to solve dense linear systems. For square systems, but may be easily adapted. Four methods, including my own substitution method, better than the Gauss-Seidel one |
C Code |
2010-07-27 |

Random rotation |
Generate the matrix of a random rotation in dimension D. May also generate the matrix of the inverse rotation. As it is a recursive program, it may not work with some compilers |
C code |
2010-08-14 |

All_different |
Given an integer position, find the nearest one with all components different. May be useful for combinatorial optimisation |
C code, simplified version of the one that is used in Tribes C |
2011-03-03 |

Exclusive Rand |
Given N elements, choose at random n of them, so that they are all different. Maybe useful for instance for Differential Evolution |
C code (zipped) |
2011-06-08 |

Quasi-random numbers generation |
Generate Sobol or Halton sequences in [0,1]^D |
C code + two graphs (zipped) |
2013-01-07 2012-01-06 |

Intersection sphere-cube or sphere-sphere |
Relative volume of the intersection of a sphere S and a cube (or a sphere) centered on the surface of S. |
C code + two graphs (zipped) |
2012-04-04 |

Biased RNG |
Generation of biased "random" numbers, according to a psychological law |
C code (zipped) |
2012-09-04 |

cubeGener |
In a D-cube, generate smaller D-cubes "around" a center. This may be useful for some optimisation methods, which have to define areas to avoid, or, on the contrary, to more finely explore. |
C code |
2013-01-29 |

Determinant of a square matrix |
Not new, but I needed it for a "Nelder-Mead method revisited". So, it may be useful for some other people |
C code (zipped) |
2013-03-26 |

Volume of a simplex |
Same remark |
C code (zipped) |
2013-03-27 |

Intrinsic difficulty |
A small theoretical study about the intrinsic difficulty of optimisation problems. Apparently completely useless, but who knows? ;-) |
PDF |
2013-05-26 |

Combinatorial tools | A set of useful tools to manipulate permutations. In particular, finding a minimum list of transpositions to "go" from a permutation to another one. | Scilab codes Examples |
2015-02 2015-03 |

Bell-like random numbers | Generate pseudo random number from a bell-like distribution with finite support | Octave/Matlab code | 2019/12 |

k-coloring | Fake quantum k-coloring of a graph (simulation), by using Grover's algorithm | Octave/Matlab code (zipped) | 2020-01 |

k-coloring | True quantum k-coloring of a graph (Qiskit emulation + circuits) | HAL archive | 2020-07 |