automatizace

Odborný časopis pro automatizaci,
měření a inženýrskou informatiku
Přehledy: Vydání   Témata   Autoři   Kalendář akcí   Přehledy trhu   English


Nové technologie

Automatizace • ročník 48 • číslo 12 • prosinec 2005
Tiskni článek Článek v PDF
Program Mathematica se prosazuje

ročník 48, číslo 12, strana 763
Rubrika: Nové technologie, Téma: Robotika -> Informatika -> Programové nástroje

Program Mathematica společnosti Wolfram Research byl představen v letošním únorovém vydání časopisu Automatizace [1]. Tento program zaměřený na matematické výpočty proniká nyní i do českých technických univerzit, výzkumných pracovišť a průmyslových podniků. Firma Elkan, která společnost Wolfram Research na českém trhu zastupuje, uspořádala v září 2005 pravidelné setkání uživatelů programu Mathematica. Vystoupil na něm Jon McLoone, jenž pracuje od roku 1992 ve vývojovém oddělení firmy Wolfram Research a v současné době je vedoucím vývojového týmu produktu Mathematica CalcCenter. Ve své přednášce Key technologies in Mathematica – an inside view představil na ukázkách řešení reálných problémů některé unikátní technologie, které program Mathematica odlišují od tradičních výpočetních nástrojů. Po přednášce poskytl pan Jon McLoone redakci časopisu Automatizace rozhovor (obr. 1). Odborný překlad nechala zhotovit firma Elkan, spol. s r. o., u svých smluvních partnerů.

Mathematica má podobné pole použití jako Matlab a jiné softwarové matematické a modelovací programy. Mohl byste vysvětlit čím se od nich liší?

Z pohledu uživatelů programu Matlab nebo podobných systémů vzešlých z filozofie jazyka Fortran vypadá pole působnosti systému Mathematica podobně. Stejně jako tyto systémy i Mathematica  řeší numerické a maticově orientované úlohy, ale to je jen malý zlomek toho, k čemu je určena. Jedná se také o systém pro psaní technických dokumentů, programovací jazyk vyšší úrovně podporující řadu programovacích stylů (logické, funkcionální, procedurální a objektově-orientované programování), jazyk pro popis grafických objektů a nástroj pro provádění symbolických výpočtů.

 

Mohl byste uvést postupy a metody, které program Mathematica nejvíce odlišují od konkurenčních produktů?

(
Obr. 1 Jon McLoone v přednáškovém sále ČVUT v Praze
Obr. 1 Jon McLoone v přednáškovém sále ČVUT v Praze
Zřejmě nejnápadnější je plně integrovaná podpora symbolických výpočtů (symbolic computation). V minulosti oproti velkému rozvoji počítačových numerických metod byly metody pro řešení symbolických problémů ve velké míře přehlíženy, ale nyní jejich význam roste. Vedle toho, že Mathematica umožňuje pracovat přímo se symbolickými modely, interně používá hybridní, numericko-symbolické metody pro řešení numerických úloh (symbolic preprocessing), čímž dosahuje takové výkonnosti a spolehlivosti, které nejsou dosažitelné užitím klasických – čistě numerických – systémů. Méně nápadný je důraz programu Mathematica na automatický výběr algoritmu. Na základě obrovské znalostní databáze program rozhoduje, který z četných vnitřních numerických algoritmů bude nejrychlejší, nejpřesnější a nejspolehlivější pro řešení daného problému. Srovnejme si to na příkladě numerického řešení diferenciální rovnice. V programu Matlab musíte vybrat numerickou metodu podle charakteru rovnice, tj. zda se jedná o problém třídy obyčejné, parciální nebo algebraicko-diferenciální rovnice, a podle toho, zda se případně jedná o tzv. stiff systém. Dále musíte stanovit numerické tolerance této metody tak, aby byla dosažena vámi požadovaná přesnost; často nezbude nic jiného než tipnout, jaká metoda by mohla dát rozumné výsledky. Mathematica toto vše udělá za vás a mimoto během numerického výpočtu sleduje šíření chyb a podá zprávu o případné nevěrohodnosti výsledku1. Teď si představte stejnou filozofii použitou na stovky dalších oblastí vědecko-technických výpočtů (např. numerické řešení soustav nelineárních rovnic, soustav algebraických rovnic, rozsáhlých soustav lineárních algebraických rovnic, numerická optimalizace včetně nehladké optimalizace a spousta dalších). Výběr správného algoritmu je minové pole potencionálních chyb a většina programů na rozdíl od systému Mathematica nechá na vás, abyste se v něm orientovali2.

 

Jaké jsou hlavní aplikační oblasti softwaru Mathematica?

Stručná odpověď je „všechny technické obory“. Není snadné říci, ve kterých oborech vliv softwaru Mathematica převažuje, protože je nasazen různým způsobem v mnoha různých oblastech. Uživatele programu Mathematica najdete v každém technickém nebo vědeckém oboru a ve všech hlavních technických podnicích a státních institucích. Uživatele softwaru Mathematica asi nejlépe charakterizuje typ jejich práce. Zjistili jsme, že ti, kteří pracují na kvalitativně zcela nových projektech a posunují hranice svých oborů, jsou zároveň zkušení uživatelé programu Mathematica. Na druhou stranu použití softwaru Mathematica těmi, kteří si nekladou tak vysoké cíle a soustředí se například na další zlepšování stávajících návrhů, se výrazně liší od oboru k oboru.

 

Na českých technických univerzitách je Matlab používán častěji než Mathematica. V čem vidíte hlavní příčinu?

Je pravdou, že jsme po určitou dobu byli znepokojeni naší situací na českém trhu, neboť nám připadalo, že Česká republika je v přijímání softwaru Mathematica pozadu oproti většině ostatních rozvinutých zemí a že je stále „sevřena“ ve fortranském způsobu myšlení. Dnes jsou naše vyhlídky mnohem lepší – Česká republika má z celé Evropy nejrychlejší růst v používání programu Mathematica.

Obr. 2 Dokument programu Mathematica
Obr. 2 Dokument programu Mathematica
Mathematica má již dlouhou dobu stejnou „tvář“. Plánuje společnost Wolfram Research vybavit software Mathematica různými volitelnými vzhledy uživatelského rozhraní (FrontEnd)?

Na co jsme velmi hrdí je to, že zachováváme tak dobrou dopřednou kompatibilitu, což je u dnešních firem vzácné. Ještě nyní můžete otevírat dokumenty vytvořené v programu Mathematica před 15 lety. To vše je důsledkem toho, jak dobře byla struktura tohoto dokumentu – Mathematica notebook (obr. 2)  navržena. Díky této struktuře jsme mohli během let hladce rozšiřovat Mathematica notebook o nové technologie a pro příští verzi máme připravenu spoustu nových funkcí. V jistém smyslu nyní nabízíme celou řadu uživatelských rozhraní. Software Mathematica můžete používat přímo prostřednictvím interaktivních webových stránek, jako např. tones.wolfram.com nebo integrals.wolfram.com, nebo z tabulky v MS Excel. Také si můžete vytvořit vlastní rozhraní s tlačítky a posuvníky a všemi dalšími obvyklými prvky například pomocí GUIKit. Nejoblíbenější však zůstává Mathematica notebook. Je to prostě skvělé pracovní prostředí.

 

Jiné programy, jako je třeba Matlab, podporují procesy v reálném čase prostřednictvím speciálního v/v hardwaru. Jaké vstupně/výstupní rozhraní pro PC podporuje nyní Mathematica? Plánuje Wolfram Research podporovat je v softwaru Mathematica v budoucnu?

Již nyní lze v programu Mathematica pracovat s daty v reálném čase, například připojením k LabView,  různými přístupy prostřednictvím uživatelských programů v jazyce Java nebo přes platformu .NET, ale pracujeme na řešeních, která budou přímější. Je důležité mít vhodnou strukturu, která umožní snadný vstup dat do specifických metod. Tento přístup nám dobře posloužil při statických datových vstupech a výstupech, kde nám vhodně navržená struktura umožnila rozvinout velmi širokou podporu. Je možné zapisovat a číst více než 70 druhů souborů včetně většiny vektorových a rastrových grafických formátů, zvukových formátů i speciálních dat, jako jsou DXF, HDF, MPS Harwell-Boeing atd.

Mathematica je rozsáhlý software obsahující mnoho složitých součástí. Stále v něm ale chybí některé oblasti, jako jsou stochastické diferenciální rovnice nebo evoluční algoritmy. Tyto oblasti jsou obvykle podporovány jinými dodavateli nebo jsou v programu Mathematica řešeny částečně, jako např. algoritmus diferenciální evoluce. Má firma Wolfram Research v plánu vytvořit své vlastní balíky, které by řešily uvedené záležitosti? Jaké nové balíky nyní Wolfram Reseach připravuje?

Zmíněné oblasti jsou již ve skutečnosti podporovány, ale nikoli nutně v základním produktu (core product). Evoluční algoritmy se používají ve dvou přídavných knihovnách: Machine Learning Framework (strojové učení) a Neural Networks (neuronové sítě). Diferenciální evoluce (differential evolution) a simulované žíhání (simulated annealing) jsou algoritmy dostupné v rámci podporovaných metod numerické optimalizace. Podporovány jsou také některé stochastické diferenciální rovnice v knihovnách Time Series (časové řady) a Neural Network, ale samozřejmě je potřeba udělat více. Od roku 1992, kdy jsem se stal jedním z členů vývojového týmu programu Mathematica, v časopisech stále nacházím články, které říkají, Mathematica již dokáže vše, co budete kdy potřebovat. Když se ale podívám na náš plán výzkumu a vývoje, pomyslím si: Jen počkejte, až uvidíte, co přijde příště. Mohu vás ujistit, že tento stav stále trvá. Máme „v zásobě“ mnoho nových funkcí a bude to trvat ještě dlouho, než nám dojdou nápady.

 

Posledním trendem v technice PC je vlídnost počítačů k člověku, tedy například komunikace s člověkem hlasem apod. Můžeme očekávat, že bude Mathematica komunikovat s uživatelem hlasem?

Wolfram Research má dlouhou historii v přijímání posledních technologií. Mathematica je dnes jediným technickým softwarem, který podporuje všechny hlavní 64bitové platformy. Takže s tím, jak se stávají dostupné nové metody interakce, budeme pravděpodobně mezi prvními, kdo je přijme. A skutečně, když byl hlasový výstup u PC novinkou, vytvořili  jsme určitý kód pro převod matematických výrazů na řeč, který umožňoval přečíst jakýkoli matematický výraz. Pokud vím, nikdo jiný to nikdy neudělal, protože to bylo založeno na unikátní sémantické matematické struktuře sázení znaků programu Mathematica. Domnívám se však, že člověk není schopen diktovat komplikované matematické výrazy přesně, což určitě poznal každý, kdo zkusil někomu diktovat matematický výraz telefonem.

 

Mathematica podporuje konverzi do C++ a jiných jazyků. Tato konverze však zcela nefunguje (všechny příkazy z Mathematica nelze přeložit). Dnes jsou sice  k dispozici sady od firmy  MathCore, ale neplánuje Wolfram Research vytvořit plně fungující překladač pro konverzi Mathematica – jazyk PC – Mathematica?

Toto je další příklad pohledu na svět z hlediska filozofie systémů Matlab/Fortran. Je logické předpokládat, že všechno může být přeloženo do kódu C++, pouze pokud je programovací styl vašeho systému na dostatečně nízké úrovni3. V podstatě vše, co dělá Matlab, lze napsat v programu Mathematica, a pak konvertovat do optimalizovaného kódu C++ nebo Fortran pomocí doplňků MathCode. Ale protože Mathematica dělá o tolik více než Matlab, je v zásadě nemožné generovat kód C++ pro značné  části programu Mathematica. Například pokud by váš program zavolal symbolický integrátor, není možné předem vědět, zda symbolický integrátor nebude potřebovat zavolat symbolický řešič rovnic či další funkce programu Mathematica, jako je například symbolický diferenciátor apod.4. Rovněž a priori nemůže být mnohdy známo, zda bude odpověď vrácena v elementárních funkcích nebo exotických funkcích, jako jsou například hypergeometrické funkce apod., či zda nebude potřeba příkazu pro symbolické zjednodušování výrazů5 a tak dále. Pokud váš systém podporuje jen numerickou integraci, pak budou kroky zřejmě snadněji předvídatelné, a tudíž přímo přeložitelné do kódu C++.

            rozmlouvali Eva Vaculíková

a Ivan Zelinka



LITERATURA
  1. Zelinka, I.: Optimalizace tvaru vyzařovacího pole antény v prostředí Mathematica. Automatizace, 48 (2005), č. 2, s. 93.


Články v aktuálním čísle
[ ročník 48, číslo 13 ]
Články k aktuálnímu tématu
[ Programové nástroje ]

Vyhledávání

Přihlášení
  Jméno
  Heslo
 







Uveřejněno na http://www.automatizace.cz