Кіріспе
"Өндірістік жүйе" (немесе "өндірістік ережелер жүйесі") – әдетте жасанды интеллекттің бір түрін ұсыну үшін қолданылатын компьютерлік бағдарлама. Ол негізінен мінез-құлық туралы ережелер жиынтығынан тұрады, бірақ сонымен қатар жүйе әлемнің күйіне жауап берер кезде осы ережелерді орындауға қажетті механизмді де қамтиды. Осы ережелер "өндірістер" деп аталады және олар автоматтандырылған жоспарлау, сарапшы жүйелер және әрекеттерді таңдауда қолданылатын негізгі тәсіл болып табылады. Өндірістер екі бөліктен тұрады: сезімдік шарт (немесе "ЕГЕР" шарты) және әрекет (немесе "СОҢА"). Егер өндірістің шарты әлемнің ағымдағы күйімен сәйкес келсе, онда өндіріс орындалуға дайын деп есептеледі. Егер өндірістің әрекеті орындалса, ол орындалды деп есептеледі. Өндірістік жүйеде сонымен қатар ағымдағы күй немесе білім туралы деректерді сақтайтын, кейде "жұмыс жады" деп аталатын деректер базасы және ережелерді түсіндіруші (интерпретатор) болады. Ережелерді түсіндіруші бірнеше өндіріс орындалуға дайын болғанда, оларды басымдыққа бөлу механизмін ұсынуы керек.
Негізгі жұмыс
Ереже интерпретаторлары, әдетте, ағымдағы мақсаттарға жету үшін орындалатын өнімді таңдау үшін алдыңғы тізбекті алгоритмді орындайды, бұл жүйенің деректерін немесе сенімдерін жаңартуды қамти алады. Әрбір ереженің шарты (сол жағы немесе LHS) жұмыс жадының ағымдағы күйімен салыстырылады. Идеалды немесе деректерге бағытталған өндіріс жүйелерінде, кез келген орындалған шарттар орындалуы керек деген болжам бар: нәтижелік әрекеттер (оң жағы немесе RHS) агенттің білімін жаңартады, жұмыс жадынан деректерді жояды немесе қосады. Жүйе өңдеуді пайдаланушы алдыңғы тізбектеу циклын тоқтатқанда; белгілі бір цикл саны орындалғанда; «тоқтату» RHS орындалғанда, немесе ережелердің LHS-терінің ешқайсысы рас болмағанда тоқтатады. Нақты уақыт және сарапшы жүйелері керісінше, өзара қоса алмайтын өнімдер арасынан таңдау жасауға міндетті – әрекеттер уақыт алатындықтан, тек бір ғана әрекет жасалуы мүмкін, немесе (сарапшы жүйесінің жағдайында) ұсынылуы мүмкін. Мұндай жүйелерде ереже интерпретаторы немесе қорытынды шығару машинасы екі қадамнан өтеді: өндіріс ережелерін деректер базасымен сәйкестендіру, содан кейін сәйкес келген ережелердің қайсысын қолдану керектігін таңдау және таңдалған әрекеттерді орындау.
Өндіріс ережелерін жұмыс жадымен сәйкестендіру
Өндірістік жүйелер өндіріс ережелеріндегі шарттардың экспрессивті күшіне қарай әртүрлі болуы мүмкін. Сәйкесінше, сәйкес келетін шарттары бар өндіріс ережелерін іздеу үшін қолданылатын үлгіні тану алгоритмі, барлық ережелерді тізбектеп қарап, алғашқы сәйкестікте тоқтаудан бастап, ережелерді өзара байланысты шарттар желісіне "компиляциялайтын" оңтайландырылған нұсқаға дейін өзгеруі мүмкін. Мұның ең танымал мысалы – 1974 жылы Чарльз Л. Форги жасаған Rete алгоритмі. Бұл алгоритм OPS деп аталатын өндірістік жүйелердің бірнеше түрінде қолданылады және бастапқыда Карнеги Меллон университетінде 1980 жылдардың басында OPS5 деңгейіне дейін жетілдірілді. OPS5 өндірістік жүйелерді бағдарламалау үшін толыққанды бағдарламалау тілі ретінде қарастырылуы мүмкін.
Қай ережелерді бағалауды таңдау
Өндірістік жүйелер өртке қойылатын өндіріс ережелерін таңдауда да айырмашылықтарға ие болуы мүмкін. Бұрынғы сәйкестендіру алгоритмі нәтижесінде пайда болатын ережелер жиынтығы қақтығыс жиынтығы деп аталады, ал таңдау процесі қақтығысты шешу стратегиясы деп аталады. Мұндай стратегиялар да қарапайым – өндіріс ережелері жазылған тәртіп бойынша қолдану; өндіріс ережелеріне салмақ немесе басымдық тағайындап, қақтығыс жиынтығын сәйкесінше реттеу; – дей тұрғаннан бастап, күрделі – өндіріс ережелері бұрын қанша рет орындалғанына қарай қақтығыс жиынтығын реттеу; немесе олардың оң жақ бөлімдері (RHS) тудырған өзгерістердің мөлшеріне қарай өзгеріп отыруы мүмкін. Қандай да бір қақтығысты шешу стратегиясы қолданылса да, бұл әдіс өндірістік жүйенің тиімділігі мен дұрыстығы үшін маңызды. Кейбір жүйелер жай ғана барлық сәйкес келетін өнімдерді орындайды.
Өндіріс жүйелерін пайдалану
Өндірістік жүйелерді қолдану, қарапайым жолдарды қайта жазу ережелерінен бастап адамның танымдық процестерін модельдеуге дейін, термин жазу және азайту жүйелерінен сарапшы жүйелерге дейін әртүрлі болады.
Логикамен байланысы
Расселл мен Норвигтің «Жасанды интеллект: заманауи тәсіл» және Джон Соуаның «Білімді бейнелеу: логикалық, философиялық және есептеу негіздері» еңбектері өндірістік жүйелерді логикалық жүйелер ретінде сипаттап, олардың алға қарай тізбектеу арқылы қорытынды шығаруын көрсетеді. Дегенмен, Стюарт Шапиро Соуаның кітабына жасаған шолуында, мұның қате ұғымдалуы екенін айтады. Сол сияқты, Ковальски мен Садри өндірістік жүйелердегі амалдар императивтер ретінде қарастырылатындықтан, өндірістік жүйелердің логикалық семантикасы жоқ деп тұжырымдайды. Олардың логикасы және компьютерлік тілі – Логикалық өндіріс жүйесі (LPS) агенттің сенімдері ретінде интерпретацияланатын логикалық бағдарламаларды, агенттің мақсаттары ретінде интерпретацияланатын реактивті ережелермен үйлестіреді. Олардың пікірінше, LPS-дегі реактивті ережелер өндіріс ережелеріне логикалық семантика береді, ол оларда болмаса, жоқ. Келесі мысалда 1-3 жолдар типтерді жариялау, 4 – бастапқы күйді сипаттайды, 5 – реактивті ереже, 6-7 – логикалық бағдарламалық шарттар, ал 8 – себеп-салдар заңы:
1. мәндік айнымалылар – от. 2. амалдар – жою, қашу. 3. оқиғалар – отпен күресу. 4. бастапқыда от бар. 5. егер от болса, онда отпен күресу. 6. отпен күресуді жою арқылы. 7. егер қашса, онда отпен күресу. 8. жою отты тоқтатуға себеп болады. Бұл мысалда 5-жолдағы реактивті ереже өндіріс ережесі сияқты іске қосылады, бірақ бұл жолы оның қорытындысы – отпен күресу, 6-7 жолдардағы логикалық бағдарламаларды пайдаланып, кіші мақсаттарға дейін ыдыратылады. Бұл кіші мақсаттар – амалдар (2-жол), олардың кем дегенде біреуін орындау мақсатты қанағаттандыру үшін қажет.
Қатынасты жүйелер
Шектіліктерді басқару ережелері: ережелерге негізделген бағдарламалау тілі. CLIPS: сарапшы жүйелерді құруға арналған, жалпы қолданыстағы бағдарламалық құрал. JBoss Drools: ашық кодты бизнес ережелерін басқару жүйесі (BRMS). ILOG ережелері: бизнес ережелерін басқару жүйесі. JESS: Java платформасы үшін ереже қозғалтқышы, ол CLIPS бағдарламалау тілінің кеңейтілген түрі. Lisa: Common Lisp тілінде жазылған ереже қозғалтқышы. OpenL Tablets: бизнесге бағытталған ережелер және ашық кодты BRMS. Prolog: жалпы мақсаттағы логикалық бағдарламалау тілі. ACT-R, Soar, OpenCog: өндіріс жүйесіне негізделген танымдық архитектуралар.