So far it's been able to describe 90% of what's out there. Some examples:
- 802.3 layer 2 Ethernet: https://github.com/kstenerud/dogma/blob/master/v1/examples/8...
- Microsoft ICO format: https://github.com/kstenerud/dogma/blob/master/v1/examples/i...
- Android Dex v39: https://github.com/kstenerud/dogma/blob/master/v1/examples/d...
- IPv4: https://github.com/kstenerud/dogma/blob/master/v1/examples/i...
- DNS query: https://github.com/kstenerud/dogma/blob/master/v1/examples/d...
- Microsoft Minidump: https://github.com/kstenerud/dogma/blob/master/v1/examples/m...
- Concise Binary Encoding: https://github.com/kstenerud/concise-encoding/blob/master/cb...
- Concise Text Encoding: https://github.com/kstenerud/concise-encoding/blob/master/ct...
"At first, you might want to make moves or swaps over large distances or you might want to accept some percent of moves that don't improve the objective, but as time goes on ...
However, as it turns out, you technically don't need this annealing part to make FPGA placement work. You can just randomly try different moves and accept or reject them based on whether they improve the objective function. This is what I did in my toy implementation of an FPGA placer just to keep it simple."
https://www2.stat.duke.edu/~scs/Courses/Stat376/Papers/Tempe...
"Annealing, as implemented by the Metropolis procedure, differs from iterative improvement in that the procedure need not get stuck since transitions out of a local optimum are always possible at nonzero temperature. A second and more important feature is that a sort of adaptive divide-and-conquer occurs. Gross features of the eventual state of the system appear at higher tempera-tures; fine details develop at lower tem-peratures. This will be discussed with specific examples."