Self-Assembling Hyper-heuristics: a proof of concept
1. Self-Assembling Hyper-heuristics: a proof of concept German Terrazas [email_address] Dario Landa-Silva and Natalio Krasnogor submitted to the 9th international conference on Artificial Evolution (EA'09)
2.
3.
4. Wang tiles system Target structure Fixed T , Fixed M Q1: Is it possible to make an automated design of tiles capable of obtaining a particular supra-structure by means of SA? A1: Yes. 4
5. Self-Assembly Heuristics + 5 Execution threads (sequences of low level heuristics) by random walk (currently) Assembled heuristic
6. Q2: Is it possible to automatically design the correct assembly of a heuristic, the execution threads of which optimise a given problem instance ? Q3: If Q2 is yes, is it possible to apply the same methodology to a different problem ? Execution threads analysis + Assembled heuristics characterisation + Evolutionary design Methodology Solving NP-complete problems in the tile assembly model . Y. Brun (SubsetSum) Constant-Size Tileset for Solving an NP-Complete Problem in Nondeterministic Linear Time . Y. Brun (SubsetSum) Reducing Tileset Size: 3-SAT and Beyond . Y. Brun (3-SAT) 6 Combinatorial Optimisation Problems Self-assembly Heuristics Low Level Heuristic Assembled heuristics
7.
8.
9.
10. 5. FILTER BEST_execution_threads 6. APPLY MSA (e.g. Muscle) 7. ANALYSE patterns of heuristics 2-exchange A T 1-city insertion e76_ 0.72490706 _T1 ATTTAATTTATTATATTTATTTTTTTTTATATTATATAATTTAATATAAAAAAATA e76_ 0.88475836 _T2 ATTATTTATATTTATATATAAAATAATTTTTTTTAATATTTAATATA e76_ 0.96840148 _T3 TATATTTAAAATATATAAATTAATATTAAA e76_ 1.03159851 _T4 TATAAAAAAAATATTTATTTTTTTTTTATAAA e76_ 1.13197026 _T5 TATATATATTATAAAATATATTATAAAAAAATAA Q: Are there “common” combinations of heuristics among the execution threads ? A: Yes, there are common combinations template execution thread 0-11# TATA #7-12# TATA #3-8# TTT #4-4# TAAA #1-10# AAAA #6-7# TATA #......... 10 TATA TATA TTT TAAA AAAA TATA AAA
11. Q: How reliable are these combinations ? Generate 300 Template-based execution thread RND execution thread evaluate 100 times RND ET length N evaluated 100 times Template-based ET length N evaluated 100 times 11 8. GEN TEMPLATE_execution_threads 9. GEN RND_execution_threads 10. for EACH execution thread { 11. APPLY to a COP instance 12. } 13. TEMPLATE vs. RND