Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.
/ microgp2 Public archive

An evolutionary assembly-program generator

License

Notifications You must be signed in to change notification settings

microgp/microgp2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

MicroGP2

License: GPL Status: Discontinued Language: C DOI

⚠️ A new version is available on https://github.com/microgp/microgp3

MicroGP (ugp2) is an evolutionary tool for generating assembly programs tweaked for a specific microprocessor — hence the Greek letter micro in its name. MicroGP iteratively refines and enhance a set of programs in order to maximize a given metric. It uses the result of an external evaluation, together with some internal information, to efficiently explore the search space (DOI: 10.1007/s10710-005-2985-x).

MicroGP was developed in 2002 and maintained until 2006; the first version was codenamed Chicken Pox, because the isolation caused by that infection allowed Giovanni to write most of the code in a single week. MicroGP added several new features and significantly broadened the applicability of the first working prototype (DOI: 10.1109/CEC.2002.1004462): it was able to load a list of parametric code fragments, called macros, and to optimize both their order inside a test program and their parameters.

While MicroGP was mainly exploited for test and verification of small microprocessors, in a collaboration with Intel it scaled up tackling a real Pentium 4 (DOI: 10.1109/MTV.2004.5). And in a far less mundane research, it created the first machine-written programs ever able to become King of the Hill in all the main international core-war competitions (DOI: 10.1109/TEVC.2005.856207). With time, MicroGP has been coerced into solving problems it was not meant for, and ultimately was re-implemented from scratch.

Copyright © 2002-2006 Giovanni Squillero.
MicroGP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.