Slovenská technická univerzita, Fakulta elektrotechniky a informatiky
Spracované podľa: (1)
Abstrakt. Tento príspevok by mal
slúžiť ako úvod do problematiky riešenia konfiguračných úloh pomocou počítača.
Je tu popísané, čo sa rozumie pod pojmom konfiguračná úloha, rozoberajú sa
niektoré základné vlastnosti konfiguračných úloh, popisujú sa niektoré modely a
prístupy používané pri návrhu systémov pre riešenie konfiguračných úloh. To na
zahrňuje oblasti ako špecifikácia požiadaviek, model jednotlivých častí a popisu ich vzájomných potrieb a požiadaviek,
model rozmiestňovania častí a model zdieľania častí. Na záver sa tu popisujú
niektoré principiálne problémy, ktoré riešenie konfiguračných úloh oproti
predikčným podstatne sťažujú. Konkrétne je ďalej rozvedený problém „prahového
efektu“ a „efektu horizontu“.
Abstract. This paper should serve as
a introduction to problematics of computer solution of configuration
tasks. It is described here, what is a configuration task. As next, basic
properties of a configuration task will be examined here. Some common
models and aproaches used in systems for solution of configuration tasks will
be described too. This includes fielsd like specification language,
a submodel for selecting parts and determining their mutual requirements,
a submodel for arranging parts and a submodel for sharing parts
across multiple uses. Finaly, I try to describe some of worst problems,
which make configuration tasks much harder than others. That includes a horizon effect and threshold effect.
Z hľadiska množiny potenciálnych výstupov by sa znalostné systémy dali rozdeliť na diagnostické a konfiguračné. Kým diagnostické znalostné systémy majú relatívne malý počet možných výstupov (riešení), pri čom je ich úlohou klasifikovať vstupy. T.j. priradiť daným vstupom niekoľko z možných výstupov.
Pri konfiguračných úlohách je situácia podstatne zložitejšia, množina možných výstupov je potenciálne nekonečná, alebo aspoň výrazne väčšia, ako pri klasifikačných úlohách. Cieľom je z databázy znalostí a zo vstupných informácií zkonštruovať riešenie.
Tento článok obsahuje stručný úvod do problematiky, popis najčastejších úloh, problémov, prehľad niekoľkých metód používaných na ich riešenie. Po pri algoritmoch a dátových štruktúrach, ktoré sa pri konfiguračných problémoch využívajú.
Pre upresnenie sa pod konfiguráciou sa v tomto kontexte rozumie spôsob, akým sa z daných častí zostaví celok a konfiguračný priestor je priestor všetkých možných spôsobov, ako sa to dá uskutočniť. Tento typ úloh sa často vyskytuje pri zostavovaní počítačov, návrhu zariadení, ale na príklad aj v medicínskej oblasti je možné nechať počtač vypracovať návrch terapie.
Aj keď konfiguračné problémy
predstavujú pomerne širokú oblasť s veľmi rôznymi úlohami, zahrnujú
množstvo rôznych typov úloh, ktoré vyžadujú rozdielne prístupy riešenia,
niekoľko pojmov a postupov činnosti sa vyskytuje pri všetkých úlohách
tohto typu. Tu sa pokúsim popísať model, ktorý sa používa v (1) – je zobrazený
na obr.1.
V tomto modeli sa rozlišuje
špecifikácia požiadaviek, abstraktná konfigurácia, ktorá po procese postupného
zjemňovania postupne prechádza na expandovanú (zjemnenú) konfiguráciu, zavádza
sa hierarchizácia požiadaviek, abstrakcie funkcií, fyzického zloženia komponent
. Samotný model sa skladá z
1.)
modelu
špecifikačného jazyka
2.)
model
jednotlivých častí a popisu ich vzájomných potrieb a požiadaviek,
3.)
model
rozmiestňovania častí
4.)
model
zdieľania častí.
Model špecifikačného jazyka . Špecifikačný jazyk pre konfiguračná
úlohy by mal umožňovať popísať jednak požiadavky na systém, ako aj informáciu
o optimalizácii. T.j. kritériá, ktoré sa majú pri návrhu optimalizovať,
lebo aj podpriestor konfigurácií, ktoré spĺňajú požiadavky napísané
v špecifikácii môže byť značne veľký a nás obyčajne zaujíma iba jedno
konkrétne riešenie. Ako príklad uvediem konfiguráciu počítača, kde požiadavku
na možnosť tlačiť dokumenty, keď tejto požadavke rovnako vyhovie celeron
s laserovou tlačiarňou, aj konfigurácia dvomi PIII pripojená na počítačom
riadenú veľkokapacitnú tlačiareň s cenou 1000 krát väščou, prípadne ten
istý celeron ale s 10, 20, 100, ... pripojenými tlačiarňami, pri čom nás
obyčajne zaujíma iba tá najlacnejšia konfigurácia, ktorá ešte spĺňa požaidavky.
Je viac spôsobov, ako
v špecifikácii popísať, čo vlastne chcem. Je tiež možné, rovno zadať,
z ktorých abstraktných častí sa má výledný celok skladať, oveľa častejšie
sa však používa tzv. funkcionálny prístup, ktorý spočíva v tom, že sa na
miesto potrebných častí určia iba funkcie alebo schopnosti, ktoré by výsledné
riešenie malo spĺňať. Napr. Počítač potrebuje scanner vs. počítač má mať
schopnosť snímať obrázky v takej a takej kvalite.Je jasné, že
funkcionálny prístup umožňuje väčšiu flexibilitu, je menej závislý na
konkrétnych moduloch, ale vyžaduje dodatočnú informáciu o vzťahu medzi
komponentami a ich funkciami. Toto priradenie zoznamu funkcií každej
komponente môže podstatne zvýšiť náročnosť úlohy, náklady na zostavenie
databázy komponent atď. Pre to sa často používa zjednodušenie v (1) nazývané
ako „key-component approach“. Spočíva v tom, že sa pre každú funkciu určí
jeden komponent, ktorý je pre ňu kľúčový a všetky kľúčové komponenty budú
takýmto spôsobom uvedené už v špecifikácii, t.j. žiadna kľúčová komponenta
by do riešenia nemala byť pridávaná na základe nepriamych požiadaviek, ktoré zo
špecifikácie vyplynuli len nepriamo...
Model jednotlivých častí
a popisu ich vzájomných potrieb a požiadaviek popisuje špecifikácie jednotlivých
komponent funkcie, ktoré vykonávajú a ďalšie komponenty, funkcie alebo
zdroje, ktoré pre svoju činnosť potrebujú, prípadne ktoré sa s ich
činnosťou vylučujú (na príklad z dôvodu nekompatibility ).
Model rozmiestňovania častí má na starosti rozmiestňovanie komponent,
špecifikuje rôzne spôsoby alokácie priestoru, ale aj iných zdrojov, ako
financie, odber elektrickej energiea podobne. Popisuje ktoré rozmiestnenia sú
dovolené, a ktoré nie. Táto časť konfiguračného zs je zo všetkých
najkomplikovanejšia, najnáročnejšia a spôsobuje najviac problémov, lebo aj
keď je možné jednoducho popísať požiadavky každej komponenty napr. na priestor,
algoritmický postup, ktorý by z nich dokázal vyprodukovať ideálne riešenie
sa dá nájsť len veľmi ťažko alebo vôbec nie. Ako ukážkový príklad by mohla
slúžiť hra tetris, ktorá je v podstate o umiestňovaní rôzne
tvarovaných komponent v 2D priestore tak, aby zaplnili vždy celý riadok.
Na dokreslenie zložitosti si potom treba predstaviť tetris v 3D, pri čom
niektoré dielce nesmú, iné zas musia byť vedľa seba, niektoré sú potrebné pre
ďalšie a z toho všetkého treba potom vybrať ten naj...
...lacnejší ...menší ...rýchlejší útvar.
Model zdieľania častí určuje
obmedzenia podmienok, za ktorých je možné danú komponentu využívať ostatnými
časťami konfigurácie, prípadne na plnenie nejakej funkcie keď je daná časť
využívaná na plnenie viac, ako jednej požiadavky. Môže sa vyskytnúť niekoľko
typov takéhoto zdieľania častí. Napr.
1.)
Výlučné
použitie – časť môže byť využitá iba raz.
2.)
Limitované
zdieľanie – komponenta môže byť zdieľaná iba určitými funkciami a inými
nie.
3.)
Neobnedzené
zdieľanie – komponenta môže byť ľubovoľne využívaná. (dosť zriedkavá situácia)
4.)
Sériové
využítie – môže byť ľubovoľne používaná, ale iba na jeden účel v danom
čase.
5.)
Obmedzená
kapacita – Každé jedno využitie spotrebováva časť kapacity komponenty, ktorá
môže byť zdieľaná až kým sa nedosiahne maximum kapacity. Ako príklad môže
slúžiť na príklad spotreba elektrickej energie. Zdroj je schopný dodať len
určité maximum, potom už k nemu nesmú byť pripojené ďalšie spotrebiče.
Ešte komplikovanejší prípad predstavuje na príklad priestor vo vnútri skrinky,
kde o tom, či sa do nej nejaká komponenta ešte zmestí rozhoduje aj jej
tvar. Na tomto mieste sa totiž tento a predchádzajúci model prelínajú.
Pri
tomto type zdieľania sa obyčajne používa tzv. aditívna spotreba, ktorá neznamená
nič inšie, len, že každá komponenta má číslom popísané svoje požiadavky
a požiadavky z celej skupiny sa získajú sčítanim ich požiadaviek.
Tieto modely resp. typy
informácií a postupov sa v rôznych podobách vyskytujú vo všetkých
konfiguračných problémoch,väčšinou predstavujú dobre rozpoznateľné celky, aj
keď niekedy sa vzájomne prekrývajú.
3 Rôzne problémy a ich zdroje pri konfiguračných úlohách
Prahový efekt vzniká, keď pomerne malá zmena
v konfigurácii vyvolá prekročenie maximálnej kapacity nejakej komponenty,
čo vyvolá kaskádovú reakciu – prekročenú kapacitu je treba nejak doplniť, nové
komponenty sa musia pridať, prípadne nahradiť výkonnejšími, čo zase spôsobi
ďalšie prekročenie iného limitovaného zdroja tak to môže pokračovať až kým sa pôvodná
konfigurácia zmení úplne, alebo aspoň v nej dôjde k podstatným
úpravám, ktoré spôsobia, že aj keď pôvodná konvigurácia bola v istom smere
optimálna, po tejto úprave už nebude. Prahové efekty môžu vzniknúť
v každej fáze konštrukcie riešenia, principiálne sa im nedá vyhnúť, lebo
požiadavky na zdroje v riešení nie je možné dopredu určiť (súvisí to
efektom horizontu, druhým hlavným problémom). Úlohou algoritmov
a stratégií rozdelenia možností poskytovaných jedenotlivými komponentami
je ,aby podobné efekty nastávali (keď už niekde musia nastať) čo najskôr
v priebehu riešenia úlohy, keď je ešte vygenerovaná konfigurácia malá
a riešenie sa nachádza ešte na veľmi vysokej úrovni abstrakcie.
V takomto prípade sa totiž musí spätne meniť len minimum objektov, jednak
pre to, že abstraktná konfigurácia sa ľahšie mení a pre to, že sa do
zaradilo výslednej iba minimum komponent, tým pádom ani úplná zmena konceptu
riešenia nemusí znamenať žiadne výrazné zníženie efektívnosti automatickej
konfigurácie. Na príklad je dobré pri konfigurácii siete počítačovej čo najskôr
zistiť, že jednotlivé body, ktoré sa majú prepojiť sú príliš riedke (veľke
vzdialenosti (v priemere) medzi uzlami) a pre to použiľť iný spôsob sieťového
spojenia, ktorý podobnú situáciu zvláda, ako túto informáciu zistiť až na
základe toho, že všetky spôsoby, ako jednotlivé body poprepájať skončili
prekročením max. dĺžky vedenia.
Globálne limity na kapacitu
(napr. hmotnosť prístroja, investičné náklady,dostupný výkon a pod )
predstavujú najväčší problém pre alokačné algoritmy, lebo sú konzumované
postupne všetkými komponentami a nie je ich možné nijakým spôsobom pridať.
V praxi to znamená, že sa algoritmus musí spätne vrátiť v priebehu
riešenia a pokúsiť sa nájsť iné riešenie, ktoré limit eventuálne spĺňa.
Efekt Horizontu je dôsledkom toho, že rozhodnutia pri
konfigurácii sú robené postupne a hodnotiace kritériá, ktoré určujú
nasledujúci krok hodnotia situáciu iba v lokálnom kontexte, obmedzujúc sa
na pomerne malú množinu faktorov. Tento „krátkozraký“ prístup spôsobuje, že nie
je možné vidieť všetky dôsledky
rozhodnutí, jednak pre to, že niektoré efekty vznikajú práve na globálnej
úrovni a jednak pre to, že niektoré rozhodnutia, od ktorých sú závislé iné
ešte neboli vykonané.
V ideálnom prípade bú
jednotlivé rozhodnutia nezávislé a lokálne potimálne riešenie je totožné s globálne
optimálnym .V skutočnosti však toto v drvivej väčšine prípadov nie je
dodržané a vplyv jednotlivých rozhodnutí navzájom je pre celkovú
potimalizáciu kľúčový. Nasledujúce príklady závislostí medzi rozhodnutiami ukazujú,
prečo to tak je.
Vychádzajme z toho, že máme
časti A a B, z ktorých je prvá „lacnejšia“ ako druhá.
1.) Nedetegované požadované časti. komponenty požadované časťou A sú o
mnoho drahšie, ako časť B aj s pre ňu potrebnými časťami spolu. Tento jav
nemusí nastať priamičiaro, môže „pôsobiť“ až o niekoľko urovní rozhodovani
ďalej, keď sa ukáže, že A zavádza nové požiadavky, ktoré pri výbere A / B ešte neboli vyjedrené, a tým pádom
nemohli byť ani zohľadnené.
2.) Neočakávané konflikty v alokácii zdrojov. časti požadované A spotrebovávajú o niečo
viac, ako časti potrebné pre B, to prostredníctvom prahového efektu spôsobí, že
sa musia pridať ďalšie komponenty, čo spôsobí ďalšie predraženie riešenia
obsahujúceho A.
3.) Netestovaná kompatibilita.
V prípade, že tu sú ešte nezohľadnené požiadavky kladené
komponentou, ktorá je kompatibilná s B, ale nie je kompatibilná s A.To
znamená, že ak by sa v tejto časti zvolila B na miesto A, nemusli by sa v budúcnosti
pridávať ďalšie časti a celok by bol lacnejší.
Tieto problémy by sa dali
odstrániť iba zohľadnením vplyvu všetkých rozhodnutí na všetky, čo by ale
viedlo k exponenciálnej náročnosti riešenia a rovnalo by sa v podstate
exhaustívnemu hľadaniu najlepšieho riešenia v celom priestore riešení.
Vzhľadom na to, že to ne buď celkom
nemožné vzhľadom na jeho nekonečnosť, alebo pri najmenšom značne nepraktické, je
potrebné nájsť rozumný kompromis medzi požiadavkou na optimálnosť riešenia a hlĺbkou,
do ktorej sa dopredu vyhodnocujú dôsledky zmien.
Hlavná časť príspevku. Ďalšie nadpisy pridajte podľa potreby. Obrázky číslujte a odkazujte sa na ne v texte. Odkazy (aj na literatúru) zvýraznite linkami. Píšte po slovensky a používajte diakritiku.
V tomto príspevku som sa snažil o niečo ako úvod to problematiky, popis , ktorý by po prečítaní mal bližšie priblížiť o čom sa v danej oblasti pojednáva. Zdroj (1) je taký rozsiahly (je to spôsobené hlavne komplexnosťou problémovej oblasti a podrobnosťou popisu), že by vystačil na niekoľko príspevkov podobného rozsahu, ako je tento, mohli by sa zaoberať zvlášť úvodom do problematiky ,jednotlivými systémami v ňom popísanými, prípadne časťou z toho, časťou z toho. Nechcel som však vynechávať informácie, ne ktoré sa potom odvoláva pri popise existujúcich systémov. Porovnenie systémov by zase človeku, ktorý do problematiky nevidí nič nepovedalo. Keďže si nerobím ilúzie o tom ,že by môj príspevok mohol poskytnúť informácie niekomu znalému problematiky (ten si to asi prečíta priamo v (1) ), rozhodol som sa napísať tento príspevok ako úvod do problematiky. Dúfam, že aspoň niekomu pomôže pri zorientovaní sa v oblasti.
(1) … Mark Stefir , Introduction to knowledge systems , Magan Kaufman Publ. , 1995
Znalostné systémy
Zimný semester 2000/2001