Maths stuff not directly related  to Particle Swarm Optimization
 

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)
WARNING 2012-11: This zip file is corrupted. I don't have the original one anymore. If someone has it, or can repair the zip, please keep me posted

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