Кіріспе
академиялық конференция LICS Академиялық пән Компьютерлік ғылымдағы логика логика және компьютерлік ғылым салаларының арасындағы байланысты қамтиды. Бұл тақырыпты үш негізгі салаға бөлуге болады: Теориялық негіздер және талдау Логика мамандарына көмек көрсету үшін компьютерлік технологияны пайдалану Логикалық ұғымдарды компьютерлік қолданбаларда қолдану.
Academic discipline
Logic in computer science covers the overlap between the field of logic and that of computer science. The topic can essentially be divided into three main areas:
Theoretical foundations and analysis
Use of computer technology to aid logicians
Use of concepts from logic for computer applications
Теориялық негіздер мен талдау
Логика компьютерлік ғылымда маңызды рөл атқарады. Логиканың ең маңызды салаларының кейбірі – есептеу теориясы (бұрын рекурсия теориясы деп аталатын), модальдық логика және категория теориясы. Есептеу теориясы Алонзо Черч және Алан Тьюринг сияқты логиктер мен математиктер анықтаған ұғымдарға негізделген. Черч алғаш рет өзінің лямбда-анықтамасы (lambda definability) ұғымын пайдаланып, алгоритмдік шешімі жоқ проблемалардың бар екенін көрсетті. Тьюринг «механикалық процедура» деп аталатын нәрсенің тұңғыш толыққанды талдауын жасады, ал Курт Гёдель Тьюрингтің талдауын «үлкен» деп бағалағанын айтты. Сонымен қатар, логика мен компьютерлік ғылым арасындағы теориялық байланыстың маңызды салалары:
Гёдельдің толық еместік теоремасы арифметиканы сипаттауға жеткілікті күшті кез келген логикалық жүйеде дәлелдеуге не жоққа шығаруға болмайтын мәлімдемелер болатынын дәлелдейді. Бұл бағдарламалық қамтамастың толықтығы мен дұрыстығын дәлелдеу мүмкіндігіне қатысты теориялық мәселелерге тікелей қатысты. Фрейм мәселесі – жасанды интеллект агентінің мақсаттары мен оның ортасының күйін бірінші реттік логика арқылы бейнелеген кезде шешілуі тиіс негізгі мәселе. Карри-Говард сәйкестігі – логикалық жүйелер мен бағдарламалау тілдері арасындағы байланыс. Бұл теория дәлелдер мен бағдарламалар арасында нақты сәйкестік орнатады. Атап айтқанда, қарапайым типтелген лямбда-есептеудегі терминдер интуициялық пропозициялық логиканың дәлелдеріне сәйкес екенін көрсетті. Категория теориясы – математиканы құрылымдар арасындағы қатынастарды баса назарлайтын тұрғысынан қарастырады. Ол компьютерлік ғылымның көптеген салаларымен тығыз байланысты: бағдарламалау тілдерінің типтік жүйелері, өту жүйелерінің теориясы, бағдарламалау тілдерінің модельдері және бағдарламалау тілдерінің семантикасы теориясы. Логикалық бағдарламалау – формалды логикаға негізделген бағдарламалау, деректер базасы және білімді ұсыну парадигмасы. Логикалық бағдарлама – белгілі бір проблемалық сала туралы мәлімдемелер жиынтығы. Есептеулер логикалық қорыту арқылы осы саладағы мәселелерді шешу арқылы жүзеге асырылады. Басты логикалық бағдарламалау тілдерінің отбасыларына Prolog, Answer Set Programming (ASP) және Datalog жатады.
Gödel's incompleteness theorem proves that any logical system powerful enough to characterize arithmetic will contain statements that can neither be proved nor disproved within that system. This has direct application to theoretical issues relating to the feasibility of proving the completeness and correctness of software. The frame problem is a basic problem that must be overcome when using first order logic to represent the goals of an artificial intelligence agent and the state of its environment. The Curry–Howard correspondence is a relation between logical systems and programming languages. This theory established a precise correspondence between proofs and programs. In particular it showed that terms in the simply typed lambda calculus correspond to proofs of intuitionistic propositional logic. Category theory represents a view of mathematics that emphasizes the relations between structures. It is intimately tied to many aspects of computer science: type systems for programming languages, the theory of transition systems, models of programming languages and the theory of programming language semantics. Logic programming is a programming, database and knowledge representation paradigm that is based on formal logic. A logic program is a set of sentences about some problem domain. Computation is performed by applying logical reasoning to solve problems in the domain. Major logic programming language families include Prolog, Answer Set Programming (ASP) and Datalog.
Логикалық зерттеушілерге көмекші компьютерлер
Жасанды интеллект терминін алғаш қолданғандардың бірі 1956 жылы Аллен Ньюэлл, Клифф Шоу және Герберт Саймон жасаған «Логикалық теоретик» жүйесі болды. Логиктердің атқаратын жұмыстарының бірі – логикадағы бірнеше тұжырымды алып, логика заңдарына сәйкес дұрыс болуға тиіс қорытындыларды (қосымша тұжырымдарды) шығару болып табылады. Мысалы, егер «Барлық адамдар өлдір» және «Сократ – адам» деген тұжырымдар берілсе, онда «Сократ өлдір» деген қорытынды дұрыс болады. Әрине, бұл өте қарапайым мысал ғана. Шын мәніндегі логикалық жүйелерде тұжырымдар көптеген және күрделі болуы мүмкін. Осындай талдауды компьютерлердің көмегімен жүргізуге болатыны ерте түсінілді. «Логикалық теоретик» Бертран Рассел мен Альфред Норт Уайтхедтің математикалық логика саласындағы «Principia Mathematica» атты әсерлі еңбегіндегі теориялық жұмыстарын растады. Бұдан бөлек, кейінгі жүйелер логиктерге жаңа математикалық теоремалар мен дәлелдерді тексеруге және табуға көмектесті.
Компьютерлер үшін логикалық қолданбалар
Жасанды интеллект (ЖИ) саласында математикалық логиканың әрдайым күшті ықпалы болды. Саланың бастапқы кезеңдерінен-ақ логикалық қорытындыларды автоматтандыру технологиясының мәселелерді шешуге және фактілерден тұжырымдар жасауға зор мүмкіндік беретіні түсінілді. Рон Брахман бірінші реттік логиканы (FOL) барлық ЖИ білімді бейнелеу формализмдерін бағалау үшін өлшем ретінде сипаттады. Бірінші реттік логика – ақпаратты сипаттау және талдау үшін жалпы және қуатты әдіс. FOL-дің өзі компьютерлік тіл ретінде қолданылмауының себебі, ол өте кең мүмкіндіктерге ие, яғни FOL қаншалықты қуатты болса да, ешбір компьютер шеше алмайтын мәлімдемелерді оңай білдіре алады. Сондықтан, білімді бейнелеудің кез келген түрі белгілі бір дәрежеде кеңдік пен есептеу мүмкіндігі арасындағы компромисс болып табылады. Тіл неғұрлым кең болса және FOL-ге жақын болса, соғұрлым баяу жұмыс істеуі және шексіз циклге түсуі мүмкін. Мысалы, сарапшы жүйелерде қолданылатын ЕГЕР-СОН ережелері FOL-дің өте шектеулі жиынтығына жуықтайды. Логикалық операторлардың толық спектрі бар кездейсоқ формулалардан гөрі, бастапқы нүкте логиктер modus ponens деп атаған нәрсе. Нәтижесінде, ережелерге негізделген жүйелер жоғары өнімді есептеулерді қолдауға болады, әсіресе олар оңтайландыру алгоритмдері мен компиляцияны пайдаланса. Екінші жағынан, логикалық бағдарламалау, бірінші реттік логиканың Хорн клаузасының қосалқы жиынтығын монотонды емес жорамал формасымен біріктіреді, ол жоғары кеңдікке және тиімді іске асыруға ие. Атап айтқанда, логикалық бағдарламалау тілі Prolog – Тьюринг толық бағдарламалау тілі. Datalog рекурсивті қатынастармен реляциялық деректер базасы моделін кеңейтеді, ал жауап жиынтығын бағдарламалау қиын (негізінен NP қиын) іздеу мәселелеріне бағытталған логикалық бағдарламалау түрі. Логикалық теорияны зерттеудің тағы бір маңызды саласы – бағдарламалық жасақтама жасау. Білімге негізделген бағдарламалық қамтамасыз ету көмекшісі және бағдарламалаушы шәкірті сияқты ғылыми-зерттеу жобалары бағдарламалық қамтамасыз ету ерекшеліктерінің дұрыстығын растау үшін логикалық теорияны қолданды. Олар сондай-ақ түрлі платформаларда ерекшеліктерді тиімді кодқа айналдыру және іске асыру мен ерекшелік арасындағы теңдікті дәлелдеу үшін логикалық құралдарды қолданды. Бұл формалды трансформацияға бағытталған тәсіл көбінесе дәстүрлі бағдарламалық жасақтаманы әзірлеуден әлдеқайда күшті күш-жігерді қажет етеді. Алайда, тиісті формализмдер мен қайта пайдалануға болатын үлгілер бар нақты салаларда бұл тәсіл коммерциялық өнімдер үшін тиімді болып шықты. Тиісті салалар, әдетте, қару-жарақ жүйелері, қауіпсіздік жүйелері және нақты уақыт қаржылық жүйелері сияқты жүйелердің бұзылуы адам немесе қаржылық шығындар өте жоғары салалар. Мұндай саланың мысалы – өте үлкен масштабтағы интегралды (VLSI) дизайн – цифрлық құрылғылардың CPU және басқа да маңызды компоненттерінде қолданылатын микросхемаларды жобалау процесі. Чиптегі қате апатты болуы мүмкін. Бағдарламалық жасақтамадан айырмашылығы, чиптерді жаңартуға немесе түзетуге болмайды. Сондықтан, іске асыру спецификацияға сәйкес келетінін дәлелдеу үшін формалды әдістерді қолданудың коммерциялық негіздемесі бар. Логиканы компьютерлік технологияға қолданудың тағы бір маңызды саласы – фрейм тілдері мен автоматты жіктеуіштер. KL ONE сияқты фрейм тілдерін тікелей жинақ теориясымен және бірінші реттік логикамен байланыстыруға болады. Бұл классификаторлар деп аталатын теоремаларды дәлелдеушілерге берілген модельдегі жиынтықтар, кіші жиынтықтар және қатынастар арасындағы әртүрлі декларацияларды талдауға мүмкіндік береді. Осылайша модельді растауға болады және сәйкес келмейтін анықтамалар белгіленеді. Классификатор сондай-ақ жаңа ақпаратты қорытуға болады, мысалы, қолданыстағы ақпаратқа негізделген жаңа жиынтықтарды анықтау және жаңа деректерге негізделген қолданыстағы жиынтықтардың анықтамасын өзгерту. Интернет әлемінде үнемі өзгеріп отыратын өзгерістерді басқару үшін икемділік деңгейі өте жақсы. Классификатор технологиясы Web Ontology Language сияқты тілдердің үстіне құрылған, ол қолданыстағы Интернеттің үстіне логикалық семантикалық деңгейді қосуға мүмкіндік береді. Бұл қабат Семантикалық Желі деп аталады. Уақытша логика бір мезгілдегі жүйелерде ойлау үшін қолданылады.