Při prezentaci výsledků naší práce potřebujeme často zobrazit veličinu v grafické podobě. Pokud máme řadu izolovaných bodů a chceme je propojit křivkou, používáme interpolaci. Interpolačních metod je celá řada, v článku navrhuji systém, který tuto interpolaci realizuje evoluční metodou umělé inteligence. Z této metody vychází výukový program, který si můžete zdarma stáhnout.
Metody interpolace
Existuje celá řada metod, jak z izolovaných bodů vytvořit plynulou křivku, která těmito body prochází. V následujícím článku si ukážeme, jak pro interpolaci můžeme použít evoluční systém. Program, který realizuje níže popsaný algoritmus si můžete stáhnout na www.optiintelligent.cz v sekci Pro školy. Můžete jej používat zdarma bez záruky, pokud však použijete výsledek ve své publikaci, uveďte prosím zdroj, tj. adresu výše uvedené stránky, odkud jste program stáhli, pro případné další zájemce o problematiku umělé inteligence.
Nástin teorie
Máme navzájem různé body [x1,y1], [x2,y2], ... , [xn,yn] a chceme jimi proložit křivku. Předpokládejme dále, že dokážeme v těchto bodech zjistit směrnice tečen t1, t2, ... tn. Způsob, jak tečny zjistíme, si ukážeme později.
Každý úsek mezi dvěma krajními body [xi,yi], [xi+1,yi+1] nahradíme polynomem třetího stupně:
y = ax3 + bx2 + cx + d
kde x a y jsou souřadnice bodů na křivce a hodnoty a, b, c, d jsou neznámé koeficienty, které musíme vypočítat. K jejich určení potřebujeme čtyři rovnice.
První dvě rovnice dostaneme postupně dosazením souřadnic yi a xi obou krajních bodů do rovnice polynomu. Další dvě rovnice dostaneme dosazením směrnic tečen ti a souřadnic xi do derivace funkce v obou krajních bodech. Máme tak čtyři rovnice o čtyřech neznámých, ze kterých vypočteme hodnoty a, b, c, d polynomu v každém dílčím úseku.
Směrnice tečen ovšem neznáme a musíme je nějakým způsobem určit. V tomto případě jsem se pokusil řešit problém evolučním systémem.
Principem evolučního systému je postupné zdokonalování různých variant řešení, které se vyvíjí a navzájem ovlivňují až získáme požadovaný optimální výsledek. Tyto systémy používáme v naší firmě pro analýzu a optimalizaci složitých technologických procesů.
V tomto programu se v průběhu evoluce vyvíjí vektor tečen t1, t2, ... tn tak, aby výsledná křivka byla co nejjednodušší.
Použití programu
Program je k dispozici jako zip soubor spolu s návodem, nápovědou a ukázkovými příklady. Po rozbalení do zvoleného adresáře je program Interpoluj.exe připraven k použití.
Po odstartování se objeví úvodní informace o systému, která po chvíli zmizí, a obrazovka se třemi panely.
- Levý panel obsahuje funkční tlačítka pro vyvolání jednotlivých činností
- Hlavní panel bude zobrazovat výsledný graf
- Dolní panel zobrazuje meze výsledného grafu
Vstupní soubory
Vstupní soubory můžete exportovat z Excelu příkazem Soubor, Uložit jako, Text (oddělený tabulátory). Můžete je také vytvořit v Poznámkovém bloku nebo ve svém programu, pokud dodržíte následující strukturu:
První řádek obsahuje názvy sloupců oddělené tabulátory.
Údaje v jednotlivých sloupcích od druhého řádku jsou rovněž odděleny tabulátory
- sloupec: číslo řádku
- sloupec x-ové souřadnice bodů
- sloupec: odpovídající y-ové souřadnice bodů
Záhlaví v druhém a třetím sloupci se převezme pro popisky výsledného grafu.
Požadovanou strukturu ukazují připravené soubory Priklad1 až Priklad4, které můžete použít pro první seznámení s programem.
Zpracování
Tlačítkem Zpracuj zahájíte interpolaci. Program požaduje název souboru se souřadnicemi bodů, který má zpracovat. Po načtení se spustí evoluční systém, právě probíhající iterace se zobrazuje v okénku vlevo. Počet iterací se zadává v okénku Parametry vlevo. Zpracování je možné zastavit tlačítkem Zastav. Po provedení všech iterací nebo stisknutí tlačítka Zastav se zobrazí graf v hlavním okně.
Nastavení mezí
Po zpracování se v dolním panelu zobrazí meze podle minimálních a maximálních souřadnic a krok v popiskách jako 1/20 rozsahu zadaných souřadnic. Hodnoty si můžete upravit, po změně se graf přepíše.
Kopírování
Tlačítkem Kopíruj si graf uložíte do paměti a pak jej můžete vložit do své práce současným stisknutím kláves ctrl a v.
Závěr
Ve svém článku jsem se pokusil ukázat aplikaci inteligentního systému pro grafickou prezentaci funkčních závislostí a metodu realizovat v programu. Tento případ dokazuje názorně velkou výhodu evolučního systému: Směrnice tečen nemusíme vůbec znát, pouze popíšeme požadovaný výstup a systém si neznámé hodnoty zjistí sám podle našeho požadavku.
Literatura
https://cs.wikibooks.org/wiki/Geometrie/Úvod_do_křivek
http://mathonline.fme.vutbr.cz/default.aspx?section=88&server=1&article=88&chapter=94