Soft-hardware
V informatice a výpočetní technice je dnes velmi populární soft computing. 1) Jde o soubor výpočetních metodologií, které se zrodily z klasické umělé inteligence. Od svého mateřského oboru se liší hlavně ve využívání biologické inteligence. Zatímco klasická umělá inteligence, zabývající se programy schopnými soutěžit s člověkem, využívá spíš elementy, které v biologické inteligenci nejsou klíčové (heuristiku, reprezentaci znalostí či symbolické zpracování), soft computing čerpá z modelování přírodních procesů. Inspiruje se jimi na úrovni fylogeneze (evoluční algoritmy), ontogeneze (celulární automaty) i epigeneze (umělé neuronové sítě a imunitní systémy).
Soft computing zahrnuje řadu přístupů, 2) které lze všelijak kombinovat. Například evoluční algoritmy ve spojení s celulárními automaty vedly ke vzniku nového výpočetního paradigmatu – celulárního programování. Přístupy soft computing používáme především proto, že v určité kategorii úloh jimi dokážeme za stejný čas spočítat více než konvenčními technikami. Jestliže je simulace počítačového modelu na konvenčním procesoru pomalá, můžeme navrhnout specializovaný hardware (např. nový procesor). Je to podobné jako třeba grafický procesor pro urychlení operací na grafické kartě v osobním počítači.
Klasifikaci hardwaru inspirovaného biologií zavádí POE hardware (POE – zkratka pro fylogenezi, ontogenezi a epigenezi). Citujme autory modelu: Jestliže se díváme do budoucnosti a trochu při tom sníme, můžeme si představit skutečné nanosystémy (bioware), které budou vybaveny evolučními, sebereprodukčními, sebeopravujícími a nervovými schopnostmi. Takové systémy potom povedou ke vzniku nových druhů, které budou existovat spolu s živými bytostmi založenými na uhlíku. Tím je nejspíš vymezen náš cíl.
Jako příklad uveďme kompresi obrazu (balení). Vyvíjející se obvod pracuje jako prediktor obrazových elementů (pixelů) v bloku obrazu předem neznámé velikosti. Pokud je predikce úspěšná, může se blok postupně zvětšovat, evoluce tento prediktor neustále vylepšuje. V jistém okamžiku ale klesne kvalita komprese bloku pod povolenou úroveň a evoluce se musí zastavit. Konfigurace nalezeného prediktoru pak (společně s dalšími údaji) představuje blok ve zkomprimovaném souboru. Stejně se pokračuje se zbytkem obrazu. Jednotlivé bloky, respektive jejich konkrétní datové obsahy, pak lze chápat jako různá prostředí pro vyvíjející se prediktor.
- Evoluce umožňuje navrhnout obvody technikami, které jsou pro konvenční návrh nedosažitelné. Odstraňuje omezení, která jsou součástí tradičního návrhu (nepoužívá klasické návrhové techniky založené na dekompozici a minimalizaci), odstraňuje i předsudky, které vnášel sám návrhář.
- Umělá evoluce najde (díky realizaci v hardwaru) dostatečné řešení rychleji než konvenční metoda, anebo poskytne alespoň nějaké řešení tam, kde konvenční metoda z časových důvodů neposkytne žádné.
- Tato technika má praktické výsledky, protože existuje řada aplikací, a dokonce i několik komerčních čipů založených na vyvíjejících se obvodech (např. pro kompresi obrazu).
- Umělá evoluce vnáší do systému „vrozenou“ odolnost proti poruchám. Při poruše některého prvku je velmi pravděpodobné, že se (díky redundanci programovatelných elementů obvodu) podaří najít zapojení ze zbylých prvků.
- Návrhy využívající tuto techniku jsou uživatelsky příjemné – uživatel definuje, co se má udělat, a ne jak se to má udělat.
- Ve škálovatelnosti. Pro velký počet elementů v programovatelném obvodu je výpočet zatím časově nezvládnutelný. Evoluce zaznamenala úspěch jen pro poměrně jednoduchá zapojení. Hlavní překážkou, kterou je nutno překonat při škálování evolučního návrhu číslicových obvodů, jsou (dle V. Vassileva a J. F. Millera) obtíže s definováním stavebních bloků tak, aby byly vhodné pro evoluci. Zjistilo se, že velké sčítačky mohou být evolucí navrhovány efektivně jen tehdy, jestliže se sčítačky menší velikosti využijí jako stavební bloky. To ale neplatí o násobičkách. Možná že násobička je základní jednotka, kterou nelze rozložit na menší bloky tak, aby byl výsledek evoluce tím nejlepším možným návrhem. Je také pravděpodobné, že existují další aritmetické a logické funkce, které neumožňují, aby byl nejlepší možný návrh rozložen do subobvodů.
- Ve schopnosti generalizovat. Pro logické obvody se funkce vhodnosti obvykle počítá jako procento správně určených výstupů pro všechny vstupy. Pro malou šířku vstupu je doba, po kterou se zapojení hodnotí, přijatelná, ale přidáním jednoho vstupu se velikost tabulky zdvojnásobí (kombinační logické sítě). Evoluce obvykle nenajde správný kombinační obvod, pokud nemá k dispozici všechny možné vstupy.
- V odolnosti. Pokud není obvod navržený evolucí triviální, můžeme ho chápat pouze jako „černou skříňku“. Vykazuje sice požadované chování, ale o jeho dalších vlastnostech nevíme téměř nic. Zapojení nebylo připraveno tradiční inženýrskou metodou, ale propojováním, které se řídí zákonitostmi, jež neznáme. Jestliže ale výsledný obvod není „proměřen“, nelze garantovat jeho činnost v jiném prostředí než v tom, v němž evoluce probíhala.
Důsledkem toho všeho je změkčení hardwaru. Zůstává tradiční rychlost a paralelní výpočet, ale obvody můžeme chápat jako programy, které se přizpůsobují požadavkům prostředí, v němž pracují. Můžeme je mazat, kopírovat, doučovat... Jsme teprve na začátku, tudíž nezbývá než souhlasit s P. Hájkem: Dnes ještě patrně nelze odhadnout, jak to se soft computing (a – dodejme – ani s hardwarem inspirovaným biologií) dopadne. Nicméně návrháři hardwaru odkryli v tomto nesmírně vzrušujícím odvětví další potenciál. Výsledky bádání nemusí být použity jen v inženýrské a návrhářské praxi, mohou také zpětně ovlivnit studium a vývoj zdroje své inspirace – biologie. 3)
Literatura
Sekanina L., Drábek V.: Evolvable hardware – evoluce na čipu, Elektrorevue – internetový časopis FEI VUT Brno 1999/5, www.elektrorevue.czSekanina L.: Vyvíjející se komponenta. Zpráva o subjektu, cílech a stavu rozpracovanosti disertační práce k rigorozní zkoušce, VUT Brno, Ústav informatiky a výpočetní techniky, 2000 (internetová prezentace projektu je na URL www.fee.vutbr.cz/~sekanina/ehw/index.html)
/> Vassilev V., Miller J. F.: Scalability Problems of Digital Circuit Evolution. In: A. Lohn et al.: The Second NASA/DoD workshop on Evolvable Hardware, IEEE computer Society, Los Alamitos 2000
Sipper, M. et al.: A Phylogenetic, Ontogenetic, and Epigenetic View of Bio-Inspired Hardware Systems. IEEE Transactions on Evolutionary Computation, Vol. 1, No. 1, April 1997, s. 83–97
Poznámky
Genetické operace a funkce vhodnosti se nejdříve realizovaly programově, dnes však existuje řada implementací (obvodů) s genetickými operacemi, dokonce i s výpočtem funkce vhodnosti (fitness) v hardwaru. Důsledná hardwarová implementace je typická pro vyvíjející se obvody pracující v proměnném prostředí. Pro evoluční návrh se často používají simulátory obvodů.
- Omezená evoluce. Prostor návrhu se dá zmenšit například tím, že zakážeme zpětné vazby v obvodech na bitové úrovni reprezentace zapojení. Pro zapojení navržená evolucí potom nevzniká rozpor mezi funkcí obvodu, která se ověří programovou simulací, a funkcí obvodu, která se ověří fyzickou implementací.
- Neomezená evoluce. Vede často k exotickým zapojením, která jsou z pozice tradičního návrhu nepochopitelná. Předpokládejme, že jsme prostřednictvím evoluce a s využitím simulátoru obvodů nalezli obvod reprezentovaný konfigurací C a hodnotou fitness f0. Jestliže konfiguraci C nahrajeme do rekonfigurovatelného obvodu RC1, získáme po ohodnocení fitness f1, a když ji nahrajeme do rekonfigurovatelného obvodu RC2, získáme fitness f2. Obecně hodnoty fitness f0, f1 a f2 mohou být různé (ačkoliv jde o stejnou konfiguraci). Evoluce totiž při návrhu může využít i fyzikální vlastnosti čipu (např. křemíku), které nejsou totožné pro všechny čipy programovatelných hradlových polí stejného typu (výrobce garantuje interval těchto hodnot) a také podle okolních podmínek (např. teploty v místnosti).
Ve spojení s evolučními algoritmy tedy rekonfigurovatelné obvody přinášejí kromě urychlení výpočtu i něco mnohem význačnějšího: překvapující řešení, která nelze získat žádným jiným způsobem.


















