Heuristická laboratoř - HeuristicLab

Heuristická laboratoř
Logo HeuristicLab.png
Screenshot HeuristicLab
Screenshot HeuristicLab
VývojářiLaboratoř heuristického a evolučního algoritmu (HEAL)
První vydání2002; Před 18 lety (2002)
Stabilní uvolnění
3.3.16 "Praha"
NapsánoC#
Operační systémMicrosoft Windows
TypSoftwarový systém pro metaheuristickou optimalizaci
LicenceGNU General Public License
webová stránkahttps://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

Snímek obrazovky s HL, který ukazuje návrháře algoritmů a programovatelného operátora
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:

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é

Reference

  1. ^ 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.
  2. ^ 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.
  3. ^ „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.

externí odkazy