Heuristická laboratoř - HeuristicLab
Screenshot HeuristicLab | |
Vývojáři | Laboratoř heuristického a evolučního algoritmu (HEAL) |
---|---|
První vydání | 2002 |
Stabilní uvolnění | 3.3.16 "Praha" |
Napsáno | C# |
Operační systém | Microsoft Windows |
Typ | Softwarový systém pro metaheuristickou optimalizaci |
Licence | GNU General Public License |
webová stránka | https://dev.heuristiclab.com |
Heuristická laboratoř [1][2] je softwarové prostředí pro heuristický a evoluční algoritmy, vyvinutý členy Laboratoř heuristického a evolučního algoritmu (HEAL) na University of Applied Sciences Upper Austria, Campus Hagenberg.HeuristicLab se silně zaměřuje na poskytování grafického uživatelského rozhraní, takže uživatelé nemusí mít komplexní programovací dovednosti pro přizpůsobení a rozšíření algoritmů pro konkrétní problém. V HeuristicLab jsou algoritmy reprezentovány jako operátorské grafy a změnu nebo přeskupení operátorů lze provést přetažením bez skutečného psaní kódu. Tento software se tak snaží přesunout schopnost vývoje algoritmu ze softwarového inženýra na uživatele a odborníka. Vývojáři mohou stále rozšiřovat funkce na úrovni kódu a mohou používat mechanismus plug-in HeuristicLab, který jim umožňuje integrovat vlastní algoritmy, reprezentace řešení nebo problémy s optimalizací.
Dějiny
Vývoj na HeuristicLab zahájili v roce 2002 Stefan Wagner a Michael Affenzeller. Hlavní motivací pro vývoj HeuristicLab bylo vybudování paradigmaticky nezávislého, flexibilního, rozšiřitelného a pohodlného prostředí pro heuristickou optimalizaci nad rámec nejmodernějšího programovacího prostředí a pomocí moderních programovacích konceptů. Jako Microsoft .NET framework Zdálo se, že splňuje tyto požadavky, byl vybrán jako vývojové prostředí a C# jako programovací jazyk. První oficiálně dostupná verze HeuristicLab byla 1.0 vydána v roce 2004 s vylepšenou verzí 1.1 vydanou v roce 2005. Vývoj další verze HeuristicLab byl zahájen ve stejném roce. Mezi mnoha věcmi bylo rozhodnuto, že HeuristicLab 2.0 by měl poskytnout zcela nový uživatelský zážitek a zvednout břemeno programování z uživatele. Proto byla HeuristicLab 2.0 první verzí s grafickými nástroji pro vytváření algoritmů, avšak kvůli složitosti uživatelského rozhraní nebyl HeuristicLab 2.0 nikdy zveřejněn. V létě roku 2007 bylo rozhodnuto, že je potřeba nová iterace HeuristicLab, která by měla kombinovat použitelnost verze 1.1 s koncepty modelování algoritmů verze 2.0. HeuristicLab 3.0 byl interně vydán na začátku roku 2008. V příštích 2 letech byl HeuristicLab postupně vylepšován, což vedlo k vydání verze 3.3 v létě 2010 jako open source software.
Funkce
- Návrhář algoritmů
- Jednou z funkcí, která odlišuje HeuristicLab od mnoha jiných metaheuristických softwarových frameworků, je návrhář algoritmů. HeuristicLab umožňuje modelovat algoritmy graficky, aniž byste museli psát jakýkoli zdrojový kód. Algoritmy v HeuristicLab jsou složením operátorů, které jsou zřetězeny dohromady. Tato posloupnost operátorů se nazývá operátorský graf a lze ji zobrazit a upravit pro libovolný algoritmus v HeuristicLab. HeuristicLab také nabízí takzvaného programovatelného operátora, který může obsahovat zdrojový kód, který lze zapsat z HeuristicLab. Vidět, jak fungují jiné algoritmy, umožňuje vyzkoušet nové nápady tím, že začnete od existujícího algoritmu a postupně ho upravujete. Nové algoritmy lze samozřejmě vytvářet také psaním kódu.
- Návrhář experimentů
- V experimentu HeuristicLab's Experiment Designer lze skládat, spouštět a analyzovat různé algoritmy s různými nastaveními parametrů a problémy. To je velmi užitečné pro úlohy ladění parametrů, kde je třeba provést a porovnat různé parametrizace. HeuristicLab nabízí řadu nástrojů pro grafickou analýzu výsledků.
- Infrastruktura zásuvných modulů
- Každá funkce v HeuristicLab je k dispozici jako plugin. Vývojáři mohou vytvářet a opakovaně používat pluginy, aby integrovali nové funkce a rozšířili funkčnost HeuristicLab.
- Některé další funkce
- Genetické programovací modely lze zjednodušit. Stromy genetického programování lze exportovat do formátů MATLAB, LaTeX, Excel nebo jiných.
- Algoritmy, problémy, experimenty a výsledky lze uložit. Algoritmy lze spustit, pozastavit, uložit, obnovit a pokračovat.
- Algoritmy a experimenty lze provádět paralelně na vícejádrových a distribuovaných výpočetních systémech.
- Grafy lze přizpůsobit a exportovat do různých obrazových formátů.
- Výsledky a další data lze kopírovat do a z aplikace Microsoft Excel nebo jiných aplikací.
- Pomocí integrovaných nástrojů Google OR-Tools můžete psát a řešit modely MIP / LP
- HeuristicLab lze pro optimalizaci jejich parametrů spojit s externími aplikacemi, jako jsou simulační modely.
- Podpora distribuovaných výpočtů (HeuristicLab Hive) na základě a model Master-Slave podobně jako např. Boinc
Podporované algoritmy
Následující seznam poskytuje přehled algoritmů podporovaných HeuristicLab:
- Genetický glgoritmus
- Genetický algoritmus
- Věková struktura populace (ALPS)
- Genetické programování
- Evoluční strategie
- CMA-ES
- Genetický algoritmus ostrova
- Genetický algoritmus výběru ostrovních potomků
- RAPGA
- SASEGASA[3]
- Strategie evoluce výběru potomků (OSES)
- Genetický algoritmus výběru potomků
- Genetický algoritmus třídění bez dominance II
- Modelování souborů
- Gaussova regrese a klasifikace procesů
- Přechodové stromy
- Přechodová regrese
- Místní vyhledávání
- Optimalizace roje částic
- Pyramida populace bez parametrů (P3)
- Robustní tabu
- Scatter Search
- Simulované žíhání
- Vyhledávání v Tabu
- Variabilní vyhledávání sousedství
- Výkonnostní měřítka
- Křížová validace
- k-znamená
- Lineární diskriminační analýza
- Lineární regrese
- Nelineární regrese
- Multinomiální klasifikace Logit
- Regrese nejbližšího souseda a klasifikace
- Analýza komponent sousedství
- Regrese a klasifikace neuronových sítí
- Náhodný les Regrese a klasifikace
- Vektor podpory Regrese a klasifikace
- Elastická síť
- Regrese jádra Ridge
- Regrese rozhodovacího stromu
- Barnes-Hut t-SNE
- Uživatelsky definovaný algoritmus: Umožňuje modelovat algoritmy v nástrojích grafického modelování HeuristicLab.
Podporované problémy
Následující seznam poskytuje přehled problémů podporovaných HeuristicLab:
- Umělý mravenec
- Klasifikace
- Clusterin
- Klamná past (krok)
- Dokonce i parita
- HIFF
- Batoh
- Balení koše
- Zbarvení grafu
- Symbolická regrese ve stylu Koza
- Sekačka na trávu
- Multiplexer
- NK [P, Q] Krajiny
- OneMax
- Kvadratické přiřazení
- Plánování práce
- Orientační běh
- Regrese
- Robokód
- Testovací funkce s jedním objektem
- Víceobjektové testovací funkce
- Symbolická klasifikace
- Symbolická regrese
- Prognóza časové řady
- Obchodování
- Gramatická evoluce
- Cestovní prodavač
- Pravděpodobný obchodní cestující
- Směrování vozidel
- Uživatelem definovaný problém: Problém, který lze definovat pomocí nástrojů grafického modelování HeuristicLab.
- Problém externího hodnocení (jeden a více cílů): Umožňuje použít externí programy pro hodnocení kandidátů řešení. To je užitečné např. optimalizace založená na simulaci. Mezi nativně podporované aplikace patří např. MATLAB a Scilab.
Viz také
- Metaheuristika
- Genetické algoritmy
- Genetické programování
- ESD, Sada nástrojů pro implementaci Evolučních algoritmů
- ParadisEO „Metaheuristický rámec
Reference
- ^ Wagner, Stefan; Kronberger G .; Beham A .; Kommenda M .; Scheibenpflug A .; Pitzer E .; Vonolfen S .; Kofler M .; Winkler S .; Dorfer V .; Affenzeller M. (2014). „Architektura a design prostředí pro optimalizaci HeuristicLab“. Témata v oblasti inteligentního inženýrství a informatiky. 6: 197–261. doi:10.1007/978-3-319-01436-4_10. Archivovány od originál dne 01.08.2012.
- ^ Wagner, Stefan (2009). Softwarové systémy pro heuristickou optimalizaci - Modelování heuristických optimalizačních algoritmů v softwarovém prostředí HeuristicLab, disertační práce. Univerzita Johannesa Keplera v Linci.
- ^ „SASEGASA: Nový generický paralelní evoluční algoritmus pro dosažení výsledků nejvyšší kvality“ (PDF). Journal of Heuristics. 10: 243–267. 2004. doi:10.1023 / b: heur.0000026895.72657.a2.