Rozhodovací tabulka - Decision table
Rozhodovací tabulky jsou stručné vizuální znázornění pro určení, které akce mají být provedeny v závislosti na daných podmínkách. Oni jsou algoritmy jehož výstupem je sada akcí. Informace vyjádřené v rozhodovacích tabulkách lze také vyjádřit jako rozhodovací stromy nebo v programovací jazyk jako série Jestliže pak jinak a spínací skříňka prohlášení.
Přehled
Každé rozhodnutí odpovídá proměnné, relaci nebo predikátu, jehož možné hodnoty jsou uvedeny mezi alternativami podmínky. Každá akce je procedura nebo operace, kterou je třeba provést, a položky určují, zda (nebo v jakém pořadí) má být akce provedena pro sadu alternativ podmínek, kterým položka odpovídá.
Aby byly stručnější, mnoho rozhodovacích tabulek obsahuje ve svých alternativách stavu a je mi to jedno symbol. Může to být pomlčka[1][2][3] nebo prázdné,[4] i když se nedoporučuje používat mezeru, protože to může jen naznačovat, že rozhodovací tabulka nebyla dokončena.[Citace je zapotřebí ] Jedním z použití rozhodovacích tabulek je odhalení podmínek, za kterých jsou určité vstupní faktory irelevantní pro opatření, která mají být přijata, což umožňuje přeskočení těchto vstupních testů a tím zefektivnění rozhodovacích postupů.[5]
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Výše uvedené tabulky vyjadřují stejné informace, ale druhá tabulka používá pomlčku jako symbol nezajímavosti pro stručnost. |
Kromě základní čtyřkvadrantové struktury se rozhodovací tabulky značně liší ve způsobu, jakým jsou zastoupeny alternativy podmínek a položky akcí.[6][7] Některé rozhodovací tabulky používají jednoduché hodnoty true / false k reprezentaci alternativ k podmínce (podobně jako if-then-else), jiné tabulky mohou používat očíslované alternativy (podobně jako case-switch) a některé tabulky dokonce používají fuzzy logiku nebo pravděpodobnostní reprezentace pro alternativní podmínky.[8] Podobným způsobem mohou položky akcí jednoduše představovat, zda má být akce provedena (zkontrolujte provedené akce), nebo v pokročilejších rozhodovacích tabulkách pořadí akcí, které mají být provedeny (očíslovat akce, které mají být provedeny).
Zvažuje se rozhodovací tabulka vyrovnaný[4] nebo kompletní[3] pokud obsahuje všechny možné kombinace vstupních proměnných. Jinými slovy, vyvážené rozhodovací tabulky předepisují akci v každé situaci, kdy jsou k dispozici vstupní proměnné.[4]
Příklad
Nejjednodušší je popsat rozhodovací tabulku s omezeným vstupem. Alternativy podmínek jsou jednoduché logické hodnoty a položky akcí jsou zaškrtávací značky, které představují, které z akcí v daném sloupci mají být provedeny.
Společnost technické podpory vypíše rozhodovací tabulku k diagnostice problémů s tiskárnou na základě příznaků, které jim byly popsány po telefonu od jejich klientů.
Toto je a vyvážená rozhodovací tabulka (vytvořil Systems Made Simple).
Pravidla | |||||||||
---|---|---|---|---|---|---|---|---|---|
Podmínky | Tiskárna tiskne | Ne | Ne | Ne | Ne | Ano | Ano | Ano | Ano |
Červené světlo bliká | Ano | Ano | Ne | Ne | Ano | Ano | Ne | Ne | |
Tiskárna je rozpoznána počítačem | Ne | Ano | Ne | Ano | Ne | Ano | Ne | Ano | |
Akce | Zkontrolujte napájecí kabel | — | |||||||
Zkontrolujte kabel tiskárny a počítače | — | ||||||||
Zkontrolujte, zda je nainstalován software tiskárny | — | ||||||||
Zkontrolujte / vyměňte inkoust | — | ||||||||
Zkontrolujte uvíznutí papíru | — |
Je to samozřejmě jen jednoduchý příklad (a nemusí to nutně odpovídat realitě řešení potíží s tiskárnami), ale i tak ukazuje, jak mohou rozhodovací tabulky škálovat na několik podmínek s mnoha možnostmi.
Výhody softwarového inženýrství
Rozhodovací tabulky, zejména pokud jsou spojeny s použitím a jazyk specifický pro doménu, umožnit vývojářům a odborníkům na zásady pracovat ze stejných informací, samotných rozhodovacích tabulek.
Jako nástroj pro ladění lze také použít nástroje k vykreslení vnořených příkazů if z tradičních programovacích jazyků do rozhodovacích tabulek.[9][10]
Rozhodovací tabulky se ukázaly být srozumitelnější a přehlednější než kód a byly použity značně a úspěšně k vytvoření specifikací pro složité systémy.[11]
Dějiny
V šedesátých a sedmdesátých letech se rozšířila řada jazyků založených na "rozhodovací tabulce", jako např Filetab byly populární pro obchodní programování.
Programujte vestavěné rozhodovací tabulky
Rozhodovací tabulky mohou být a často jsou zabudovány do počítačových programů a slouží k „řízení“ logiky programu. Jednoduchým příkladem může být a vyhledávací tabulka obsahující rozsah možných vstupních hodnot a ukazatel funkce do části kódu ke zpracování tohoto vstupu.
Vstup | Ukazatel funkce |
---|---|
"1" | Funkce 1 (inicializace) |
"2" | Funkce 2 (proces 2) |
"9" | Funkce 9 (ukončit) |
Ovládací tabulky
Více podmínek lze kódovat podobným způsobem k zapouzdření celé logiky programu ve formě „spustitelné“ rozhodovací tabulky nebo kontrolní tabulka. V praxi může existovat několik takových tabulek, které fungují na různých úrovních a často jsou navzájem propojeny (buď ukazateli, nebo hodnotou indexu).
Implementace
- Filetab, původně z NCC
- DETAB / 65, 1965, ACM
- FORTAB z Randu v roce 1962, navržený k zapuštění do FORTRANU[12]
- A Rubín implementace existuje pomocí MapReduce najít správné akce na základě konkrétních vstupních hodnot.[13]
Viz také
- Rozhodovací stromy
- Zdůvodnění založené na konkrétních případech
- Graf příčin a následků
- Hrubý přístup založený na dominanci
- DRAKON
- Karnaugh-Veitchův diagram
- Mnohocenná logika
- Sémantická rozhodovací tabulka
Reference
- ^ LI Jing (1. dubna 2015). „Výukový program SEEM 3430: Rozhodovací tabulky“ (PDF). p. 23. Citováno 11. listopadu 2017.CS1 maint: ref = harv (odkaz)
- ^ „Vytvoření rozhodovací tabulky v obchodních pravidlech“. Centrum nápovědy Oracle. 6. srpna 2017. Citováno 11. listopadu 2017.
- ^ A b Ross, Ronald G. (2005). „Rozhodovací tabulky, část 2 ~ Cesta k úplnosti“. Deník obchodních pravidel. 6 (8). Citováno 11. listopadu 2017.
- ^ A b C Snow, Paul (19. července 2012). „Rozhodovací tabulky“. DTRules: Nástroj pro pravidla rozhodování podle tabulky Java. Citováno 11. listopadu 2017.
- ^ LI Jing 2015, str. 24-25.
- ^ Rogers, William T. „Příklady tabulky rozhodnutí: zdravotní pojištění“. Analýza a návrh univerzity na univerzitě Saint Xavier. Archivovány od originál 29. března 2007.
- ^ „Archivovaná kopie“. Archivovány od originál dne 2012-05-30. Citováno 2010-07-07.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ Wets, Geert; Witlox, Frank; Timmermans, Harry; Vanthienen, Jan (1996). „Modelování výběru polohy pomocí fuzzy rozhodovacích tabulek“. Nové hranice ve fuzzy logice a výpočtech: dvouletá konference Severoamerické společnosti pro zpracování fuzzy informací z roku 1996 - NAFIPS. Dvouletá konference Severoamerické společnosti pro zpracování fuzzy informací. Berkeley, CA: IEEE. 80–84. doi:10.1109 / NAFIPS.1996.534708. ISBN 0-7803-3225-3.
- ^ „Skutečný příklad CCIDE“
- ^ „Zkušenosti s procesorem Cope Decision Table“. Archivovány od originál dne 2017-05-04. Citováno 2010-07-07.
- ^ Udo W. Pooch, „Translation of Decision Tables“, „ACM Computing Surveys, svazek 6, vydání 2 (červen 1974), strany: 125–151 ISSN 0360-0300
- ^ „FORTAB: Jazyk rozhodovací tabulky pro vědecké výpočetní aplikace“ 1962, Rand
- ^ Alexander Williams (2015). "Analyzátor tabulky ruby rozhodnutí"
Další čtení
- Dwyer, B. a Hutchings, K. (1977) „Optimalizace vývojového diagramu v Cope, tabulka s výběrem více možností“ Aust. Comp. J. sv. 9 č. 3 str. 92 (září 1977).
- Fisher, D.L. (1966) „Data, dokumentace a rozhodovací tabulky“ Comm ACM sv. 9 č. 1 (leden 1966), s. 26–31.
- General Electric Company (1962) GE-225 TABSOL reference manual and GF-224 TABSOL application manual CPB-l47B (June 1962).
- Grindley, C.B.B. (1968) „The Use of Decision Tables within Systematics“ Comp. J. sv. 11 č. 2 str. 128 (srpen 1968).
- Jackson, M.A. (1975) Principles of Program Design Academic Press
- Myers, H. J. (1972) „Kompilace optimalizovaného kódu z rozhodovacích tabulek“, IBM J. Res. & Development (září 1972) s. 489–503.
- Pollack, S.L. (1962) „DETAB-X: Vylepšený počítačově orientovaný obchodní jazyk“ Rand Corp. Memo RM-3273-PR (srpen 1962)
- Schumacher, H. a Sevcik, K.C. (1976) „Syntetický přístup k převodu rozhodovací tabulky“ Comm. ACM sv. 19 č. 6 (červen 1976) s. 343–351
- CSA, (1970): Z243.1–1970 pro Decision Tables, Canadian Standards Association
- Jorgensen, Paul C. (2009) Modeling Software Behavior: A Craftsman's Approach. Publikace Auerbach, CRC Press. Kapitola 5.
externí odkazy
- Software RapidGen Pro verze Windows, Unix, Linux a OpenVMS programovacích nástrojů a překladačů založených na rozhodovací tabulce
- Software LogicGem Pro procesor rozhodovací tabulky Windows pro zdokonalování logiky a obchodních pravidel