Шешімдер кестесі - Decision table

Гольфтық деректер жиынтығы.png

Шешімдер кестелері берілген шарттарға байланысты қандай іс-әрекеттер жасау керектігін анықтауға арналған қысқаша визуалды көрініс. Олар алгоритмдер оның шығысы әрекеттер жиынтығы. Шешімдер кестесінде көрсетілген ақпараттар келесі түрде ұсынылуы мүмкін шешім ағаштары немесе а бағдарламалау тілі қатарынан егер олай болса және коммутатор мәлімдемелер.

Шолу

Әрбір шешім мүмкін болатын мәндер шарт баламаларының қатарына енгізілген айнымалыға, қатынасқа немесе предикатқа сәйкес келеді. Әрбір әрекет орындалатын процедура немесе операция болып табылады және жазбалар жазба сәйкес келетін шарт баламаларының жиынтығы үшін әрекеттің орындалуын (немесе қандай тәртіппен) анықтайды.

Оларды неғұрлым қысқа ету үшін көптеген шешімдер кестесіне олардың шарттарына а бәрібір таңба. Бұл дефис болуы мүмкін[1][2][3] немесе бос,[4] дегенмен, бос кестені пайдалану ұсынылмайды, өйткені бұл шешім кестесінің аяқталмағанын көрсетуі мүмкін.[дәйексөз қажет ] Шешімдер кестесін қолданудың бірі - белгілі бір енгізу факторлары қабылданатын іс-әрекеттерге маңызды емес болатын жағдайларды анықтау, бұл осы тестілеуді өткізіп жіберуге мүмкіндік береді және осылайша шешім қабылдау процедураларын оңтайландырады.[5]

Рәміздерді көрсету маңызды емес
Ережелер
ШарттарӨзіңізді жігерлі сезінесіз бе?ИәЖоқИәЖоқ
Жаңбыр жауып тұр ма?ИәИәЖоқЖоқ
ӘрекеттерІште бол.МүмкінМүмкін
Жүгіруге барыңыз.Мүмкін
Бақшаға күтім жасаңыз.МүмкінМүмкін
Ережелер
ШарттарӨзіңізді жігерлі сезінесіз бе?ИәЖоқ
Жаңбыр жауып тұр ма?ИәЖоқЖоқ
ӘрекеттерІште бол.Мүмкін
Жүгіруге барыңыз.Мүмкін
Бақшаға күтім жасаңыз.МүмкінМүмкін
Жоғарыда келтірілген кестелер бірдей ақпаратты береді, бірақ екінші кестеде қысқартудың маңызды емес белгісі ретінде сызықша қолданылады.

Төрт квадранттың негізгі құрылымынан басқа, шешім кестелері шарттың баламалары мен әрекет жазбаларын ұсыну тәсілімен әр түрлі болады.[6][7] Кейбір шешімдер кестесінде шарттың баламаларын ұсыну үшін қарапайым ақиқат / жалған мәндер қолданылады (if-then-ке ұқсас), басқа кестелерде нөмірленген баламалар қолданылуы мүмкін (коммутаторға ұқсас), ал кейбір кестелерде бұлыңғыр логикалық немесе ықтималдық көріністер қолданылады шарттың баламалары үшін.[8] Дәл сол сияқты, әрекеттегі жазбалар әрекеттің орындалуын (орындалатын әрекеттерді тексеріңіз) немесе неғұрлым жетілдірілген шешім кестелерінде орындалатын әрекеттердің реттілігін (орындайтын әрекеттерді нөмірлейді) жай көрсете алады.

Шешімдер кестесі қарастырылады теңдестірілген[4] немесе толық[3] егер ол енгізілетін айнымалылардың барлық мүмкін комбинациясын қамтыса. Басқаша айтқанда, шешімдердің теңдестірілген кестелері кіріс айнымалылар ұсынылған кез келген жағдайда әрекетті тағайындайды.[4]

Мысал

Шектеулі шешім кестесін сипаттауға қарапайым. Шартты баламалар - бұл қарапайым логикалық мәндер, ал әрекет жазбалары - берілген бағандағы әрекеттердің қайсысы орындалатындығын білдіретін құсбелгі.

Техникалық қолдау компаниясы өз клиенттерінің телефон арқылы сипатталған белгілері бойынша принтердің ақауларын диагностикалау үшін шешім кестесін жазады.

Келесі а теңдестірілген шешім кестесі (Systems Made Simple жасаған).

Принтердің ақауларын жою
Ережелер
ШарттарПринтер басып шығарадыЖоқЖоқЖоқЖоқИәИәИәИә
Қызыл шам жыпылықтайдыИәИәЖоқЖоқИәИәЖоқЖоқ
Принтер компьютер арқылы таныладыЖоқИәЖоқИәЖоқИәЖоқИә
ӘрекеттерҚуат кабелін тексеріңізМүмкін
Принтердің компьютер кабелін тексеріңізМүмкінМүмкін
Принтердің бағдарламалық жасақтамасының орнатылғанына көз жеткізіңізМүмкінМүмкінМүмкінМүмкін
Сияны тексеріңіз / ауыстырыңызМүмкінМүмкінМүмкін
Қағаздың кептелуін тексеріңізМүмкінМүмкін

Әрине, бұл қарапайым мысал (және ол принтерде ақаулықтарды жоюдың шындыққа сәйкес келуі міндетті емес), бірақ соған қарамастан, ол шешім кестелерінің көптеген мүмкіндіктермен бірнеше шарттарға қалай кеңеюін көрсетеді.

Бағдарламалық жасақтаманың артықшылықтары

Шешім кестелері, әсіресе а доменге арналған тіл, әзірлеушілер мен саясат сарапшыларына бір ақпараттан, шешім кестесінен өздері жұмыс істеуге мүмкіндік береді.

Дәстүрлі бағдарламалау тілдерінен алынған шешімдерді кестеге шешуге арналған құралдарды түзету құралы ретінде пайдалануға болады.[9][10]

Шешім кестелерін кодтан гөрі түсіну және қарау оңайырақ екендігі дәлелденді және күрделі жүйелер үшін техникалық сипаттамаларды жасау үшін кең және сәтті қолданылды.[11]

Тарих

1960-70 ж.ж. сияқты бірқатар «шешім кестесіне негізделген» тілдер Filetab іскерлік бағдарламалау үшін танымал болды.

Бағдарламаға енгізілген шешім кестелері

Шешімдер кестелері компьютерлік бағдарламаларға енгізілуі мүмкін және көбінесе бағдарламаның логикасын «қозғау» үшін қолданылады. Қарапайым мысал a болуы мүмкін іздеу кестесі мүмкін болатын мәндер ауқымын және а функция көрсеткіші сол кірісті өңдеу үшін код бөліміне.

Статикалық шешім кестесі
КірісФункция көрсеткіші
"1"1-функция (инициализация)
"2"2-функция (2-процесс)
"9"9-функция (аяқтау)

Басқару кестелері

Бағдарламаның барлық логикасын «орындалатын» шешім кестесі түрінде жинау үшін бірнеше шарттарды ұқсас түрде кодтауға болады немесе басқару кестесі. Әр түрлі деңгейде жұмыс істейтін және бір-бірімен жиі байланысқан (көрсеткіштер немесе индекс мәні бойынша) іс жүзінде бірнеше осындай кестелер болуы мүмкін.

Іске асыру

  • Filetab, бастапқыда NCC
  • DETAB / 65, 1965, ACM
  • 1962 жылы Rand компаниясынан FORTAB, FORTRAN-ға енуге арналған[12]
  • A Рубин іске асыру қолдана отырып бар MapReduce нақты кіріс мәндеріне негізделген дұрыс әрекеттерді табу.[13]

Сондай-ақ қараңыз

Пайдаланылған әдебиеттер

  1. ^ LI Jing (1 сәуір 2015). «SEEM 3430 оқулығы: шешімдер кестелері» (PDF). б. 23. Алынған 11 қараша 2017.CS1 maint: ref = harv (сілтеме)
  2. ^ «Бизнес ережелерінде шешім кестесін құру». Oracle анықтама орталығы. 6 тамыз 2017. Алынған 11 қараша 2017.
  3. ^ а б Росс, Рональд Г. (2005). «Шешімдер кестелері, 2 бөлім ~ Толықтыққа апарар жол». Іскери ережелер журналы. 6 (8). Алынған 11 қараша 2017.
  4. ^ а б c Snow, Paul (19 шілде 2012). «Шешімдер кестелері». DTRules: Java негізіндегі шешім кестесінің ережелері. Алынған 11 қараша 2017.
  5. ^ LI Jing 2015, б. 24-25.
  6. ^ Роджерс, Уильям Т. «Шешім кестесінің мысалдары: медициналық сақтандыру». Сент-Ксавье университетінің жүйелерін талдау және жобалау. Архивтелген түпнұсқа 2007 жылғы 29 наурызда.
  7. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2012-05-30. Алынған 2010-07-07.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  8. ^ Ылғал, Герт; Витлокс, Фрэнк; Тиммерманс, Гарри; Вантиенен, қаңтар (1996). «Бұлыңғыр шешімдер кестесін қолдана отырып таңдауды модельдеу». Бұлыңғыр логика мен есептеудегі жаңа шектер: 1996 ж. Солтүстік Американың бұлыңғыр ақпаратты өңдеу қоғамының екі жылдық конференциясы - NAFIPS. Ақпараттық өңдеу жөніндегі Солтүстік Американың екі жылдық конференциясы. Беркли, Калифорния: IEEE. 80–84 бет. дои:10.1109 / NAFIPS.1996.534708. ISBN  0-7803-3225-3.
  9. ^ «Нақты CCIDE мысалы»
  10. ^ «Шешім қабылдау кестесінің процессорымен жұмыс тәжірибесі». Архивтелген түпнұсқа 2017-05-04. Алынған 2010-07-07.
  11. ^ Удо В. Пуч, «Шешімдер кестелерін аудару», ACM есептеу сауалдары, 6 том, 2 шығарылым (маусым 1974 ж.) Беттер: 125–151 ISSN  0360-0300
  12. ^ «FORTAB: ғылыми есептеулерге арналған шешімдер кестесі», 1962, Рэнд
  13. ^ Александр Уильямс (2015). «Ruby шешім кестесін талдаушы»

Әрі қарай оқу

  • Dwyer, B. and Hutchings, K. (1977) «Cope-тегі блок-схеманы оңтайландыру, шешімдердің көп нұсқасы» Aust. Комп. J. Vol. 9 № 3 б. 92 (1977 ж. Қыркүйек).
  • Фишер, Д.Л. (1966) «Деректер, құжаттама және шешім қабылдау кестелері» Comm ACM т. 9 №1 (1966 ж. Қаңтар) б. 26–31.
  • General Electric Company (1962) GE-225 TABSOL анықтамалық және GF-224 TABSOL қолдану жөніндегі нұсқаулық CPB-l47B (1962 ж. Маусым).
  • Гриндли, К.Б.Б. (1968) «Шешімдер кестелерін жүйелік жүйеде қолдану» Құр. J. Vol. 11 № 2 б. 128 (1968 ж. Тамыз).
  • Джексон, М.А. (1975) Бағдарламаны жобалау принциптері Academic Press
  • Myers, H.J. (1972) «Шешімдер кестесінен оңтайландырылған кодты құрастыру» IBM J. Res. & Даму (1972 ж. Қыркүйек) б. 489–503.
  • Pollack, S.L. (1962) «DETAB-X: жетілдірілген іскери компьютерлік тіл» Rand Corp. Memo RM-3273-PR (тамыз 1962)
  • Шумахер, Х. және Севчик, К.С. (1976) «Шешімдерді кестені түрлендіруге синтетикалық тәсіл» Comm. ACM Vol. 19 № 6 (1976 ж. Маусым) б. 343–351
  • CSA, (1970): Z243.1–1970 шешімдер кестелері, Канадалық стандарттар қауымдастығы
  • Jorgensen, Paul C. (2009) Бағдарламалық жасақтаманың мінез-құлқын модельдеу: шебердің тәсілі. Ауэрбах басылымдары, CRC Press. 5 тарау.

Сыртқы сілтемелер