Sistem de raționament - Reasoning system

În tehnologia informației, un sistem de raționament este un sistem software care generează concluzii din cunoștințele disponibile utilizând tehnici logice precum deducția și inducția . Sistemele de raționament joacă un rol important în implementarea inteligenței artificiale și a sistemelor bazate pe cunoaștere .

Prin definiția de utilizare zilnică a expresiei, toate sistemele informatice sunt sisteme de raționament în sensul că toate automatizează un anumit tip de logică sau decizie. Cu toate acestea, în utilizarea tipică în domeniul tehnologiei informației , sintagma este de obicei rezervată sistemelor care efectuează tipuri de raționament mai complexe. De exemplu, nu pentru sistemele care fac tipuri destul de simple de raționament, cum ar fi calcularea unei taxe pe vânzări sau reducerea clienților, ci efectuarea de deducții logice despre un diagnostic medical sau o teoremă matematică. Sistemele de raționament vin în două moduri: procesarea interactivă și procesarea discontinuă. Sistemele interactive interacționează cu utilizatorul pentru a pune întrebări clarificatoare sau pentru a permite utilizatorului să ghideze procesul de raționament. Sistemele de lot preluează toate informațiile disponibile simultan și generează cel mai bun răspuns posibil fără feedback sau îndrumare de către utilizator.

Sistemele de raționament au un domeniu larg de aplicații care include programarea , procesarea regulilor de afaceri , rezolvarea problemelor , procesarea complexă a evenimentelor , detectarea intruziunilor , analiza predictivă , robotică , viziune computerizată și procesarea limbajului natural .

Istorie

Primele sisteme de raționament au fost demonstratorii de teoreme, sisteme care reprezintă axiome și enunțuri în logica de primă ordine și apoi folosesc reguli de logică precum modus ponens pentru a deduce noi enunțuri. Un alt tip timpuriu de sistem de raționament a fost rezolvarea problemelor generale. Acestea erau sisteme precum Solverul general de probleme proiectat de Newell și Simon . Rezolvatorii de probleme generale au încercat să ofere un motor generic de planificare care să poată reprezenta și rezolva probleme structurate. Au funcționat descompunând problemele în subprobleme mai mici, mai ușor de gestionat, rezolvând fiecare subproblemă și asamblând răspunsurile parțiale într-un răspuns final. Un alt exemplu general de rezolvare a problemelor a fost familia de sisteme SOAR .

În practică, acești factori de rezolvare a teoremelor și rezolvatorii de probleme generale au fost rareori utili pentru aplicații practice și au necesitat utilizatorii specializați cu cunoștințe de logică. Prima aplicație practică a raționamentului automat au fost sistemele expert . Sistemele expert s-au concentrat pe domenii mult mai bine definite decât rezolvarea generală a problemelor, cum ar fi diagnosticarea medicală sau analizarea defectelor dintr-o aeronavă. Sistemele expert s-au concentrat, de asemenea, pe implementări mai limitate ale logicii. Mai degrabă decât să încerce să implementeze întreaga gamă de expresii logice, ei s-au concentrat de obicei pe modus-ponens implementat prin regulile IF-THEN. Concentrându-se pe un domeniu specific și permițând doar un subset restrâns de logică a îmbunătățit performanța unor astfel de sisteme, astfel încât acestea să fie practice pentru a fi utilizate în lumea reală și nu doar ca demonstrații de cercetare, așa cum au fost majoritatea sistemelor de raționament automatizate anterioare. Motorul utilizat pentru raționamentul automatizat în sistemele expert a fost numit de obicei motoare de inferență . Cele utilizate pentru inferențe logice mai generale sunt denumite în mod obișnuit verificatori de teoreme .

Odată cu creșterea popularității sistemelor expert, multe noi tipuri de raționament automat au fost aplicate diverselor probleme din guvern și industrie. Unele, cum ar fi raționamentul bazat pe cazuri, au fost înlăturate de cercetarea expertă a sistemelor. Altele, cum ar fi algoritmii de satisfacție a constrângerilor, au fost, de asemenea, influențate de domenii precum tehnologia de decizie și programarea liniară. De asemenea, o abordare complet diferită, una care nu se bazează pe raționamentul simbolic, ci pe un model conexionist, a fost, de asemenea, extrem de productivă. Acest ultim tip de raționament automat este adecvat în special pentru potrivirea tiparelor și tipurile de detectare a semnalului, cum ar fi căutarea textului și potrivirea feței.

Utilizarea logicii

Termenul de sistem de raționament poate fi utilizat pentru a se aplica la aproape orice fel de sistem sofisticat de sprijinire a deciziilor, așa cum este ilustrat de domeniile specifice descrise mai jos. Cu toate acestea, cea mai obișnuită utilizare a termenului de sistem de raționament implică reprezentarea logică pe computer. Diverse implementări demonstrează variații semnificative în ceea ce privește sistemele de logică și formalitate. Majoritatea sistemelor de raționament implementează variații ale logicii propoziționale și simbolice ( predicate ). Aceste variații pot fi reprezentări matematice precise ale sistemelor logice formale (de exemplu, FOL ) sau versiuni extinse și hibride ale acestor sisteme (de exemplu, logica curtoasă). Sistemele de raționament pot implementa în mod explicit tipuri logice suplimentare (de exemplu, logice modale , deontice , temporale ). Cu toate acestea, multe sisteme de raționament implementează aproximări imprecise și semi-formale la sistemele logice recunoscute. Aceste sisteme susțin de obicei o varietate de tehnici procedurale și semi- declarative pentru a modela diferite strategii de raționament. Ele subliniază pragmatismul peste formalitate și pot depinde de extensii și atașamente personalizate pentru a rezolva problemele din lumea reală.

Multe sisteme de raționament utilizează raționamentul deductiv pentru a trage inferențe din cunoștințele disponibile. Aceste motoare de inferență acceptă raționamentul înainte sau raționamentul înapoi pentru a deduce concluzii prin modus ponens . Cele recursive metode de raționament pe care le folosesc sunt denumite „ înlănțuire înainte “ și „ înlănțuire înapoi “, respectiv. Deși sistemele de raționament acceptă pe scară largă inferența deductivă, unele sisteme utilizează raționamente abductive , inductive , defezabile și alte tipuri de raționament. Euristicile pot fi, de asemenea, folosite pentru a determina soluții acceptabile la problemele insolubile .

Sistemele de raționament pot utiliza presupunerea lumii închise (CWA) sau presupunerea lumii deschise (OWA). OWA este adesea asociat cu reprezentarea cunoașterii ontologice și a Semantic Web . Diferite sisteme prezintă o varietate de abordări ale negației . Pe lângă complementul logic sau bit , sistemele pot susține forme existențiale de negație puternică și slabă, inclusiv negația ca eșec și negația „inflaționistă” (negarea atomilor non- soli ). Diferite sisteme de raționament pot sprijini raționamentul monotonic sau non-monoton , stratificarea și alte tehnici logice.

Raționament sub incertitudine

Multe sisteme de raționament oferă capacități de raționament sub incertitudine . Acest lucru este important atunci când construim agenți de raționament situați care trebuie să se ocupe de reprezentări incerte ale lumii. Există mai multe abordări comune pentru gestionarea incertitudinii. Acestea includ utilizarea factorilor de certitudine, a metodelor probabilistice , cum ar fi inferența bayesiană sau teoria Dempster-Shafer , logica multivalentă („ fuzzy ”) și diverse abordări conexioniste .

Tipuri de sistem de raționament

Această secțiune oferă o clasificare neexhaustivă și informală a tipurilor comune de sistem de raționament. Aceste categorii nu sunt absolute. Acestea se suprapun într-un grad semnificativ și împărtășesc o serie de tehnici, metode și algoritmi .

Rezolvarea constrângerilor

Solvenții de constrângeri rezolvă problemele de satisfacție a constrângerilor (CSP). Sprijină programarea constrângerilor . O constrângere este o care trebuie îndeplinită de orice soluție validă la o problemă . Constrângerile sunt definite declarativ și aplicate variabilelor din domeniile date. Solvenții de constrângeri utilizează tehnici de căutare , backtracking și propagare a constrângerilor pentru a găsi soluții și a determina soluții optime. Ele pot folosi forme de programare liniară și neliniară . Ele sunt adesea folosite pentru a efectua optimizarea în spații cu probleme extrem de combinatorii . De exemplu, acestea pot fi utilizate pentru a calcula programarea optimă, pentru a proiecta circuite integrate eficiente sau pentru a maximiza productivitatea într-un proces de fabricație.

Teorema demonstrează

Demonstratorii de teoreme utilizează tehnici de raționament automatizat pentru a determina dovezile teoremelor matematice. Ele pot fi, de asemenea, utilizate pentru a verifica dovezile existente. În plus față de utilizarea academică, aplicațiile tipice ale verificatorilor de teoreme includ verificarea corectitudinii circuitelor integrate, a programelor software, a proiectelor de inginerie etc.

Programe logice

Programele logice (LP) sunt programe software scrise folosind limbaje de programare ale căror primitive și expresii oferă reprezentări directe ale constructelor extrase din logica matematică. Un exemplu de limbaj de programare cu scop general este Prolog . LP-urile reprezintă aplicarea directă a programării logice pentru rezolvarea problemelor. Programarea logică se caracterizează prin abordări extrem de declarative bazate pe logica formală și are o aplicare largă în multe discipline.

Regulați motoarele

Motoarele de regulă reprezintă logica condițională ca reguli discrete. Seturile de reguli pot fi gestionate și aplicate separat pentru alte funcționalități. Au o largă aplicabilitate în mai multe domenii. Multe motoare de regulă implementează capabilități de raționament. O abordare comună este implementarea sistemelor de producție pentru a sprijini înlănțuirea înainte sau înapoi. Fiecare regulă („producție”) leagă o conjuncție de clauze predicate la o listă de acțiuni executabile.

În timpul rulării, motorul de regulă corespunde producțiilor cu fapte și execută („declanșează”) lista de acțiuni asociate pentru fiecare meci. Dacă acțiunile respective elimină sau modifică orice fapt sau afirmă noi fapte, motorul recalculează imediat setul de meciuri. Motoarele de reguli sunt utilizate pe scară largă pentru modelarea și aplicarea regulilor de afaceri , pentru controlul luării deciziilor în procesele automate și pentru aplicarea politicilor tehnice și de afaceri.

Clasificator deductiv

Clasificatorii deductivi au apărut puțin mai târziu decât sistemele bazate pe reguli și au fost o componentă a unui nou tip de instrument de reprezentare a cunoștințelor de inteligență artificială cunoscut sub numele de limbaje cadru . Un limbaj cadru descrie domeniul problemei ca un set de clase, subclase și relații între clase. Este similar cu modelul orientat pe obiecte . Spre deosebire de modelele orientate pe obiecte, limbajele cadrelor au o semantică formală bazată pe logica de ordinul întâi.

Ei folosesc această semantică pentru a furniza intrări clasificatorului deductiv. La rândul său, clasificatorul poate analiza un model dat (cunoscut sub numele de ontologie ) și poate determina dacă diferitele relații descrise în model sunt coerente. Dacă ontologia nu este consecventă, clasificatorul va evidenția declarațiile care sunt inconsistente. Dacă ontologia este consecventă, clasificatorul poate face raționamente suplimentare și poate trage concluzii suplimentare despre relațiile obiectelor din ontologie.

De exemplu, poate determina faptul că un obiect este de fapt o subclasă sau o instanță de clase suplimentare precum cele descrise de utilizator. Clasificatorii sunt o tehnologie importantă în analiza ontologiilor utilizate pentru a descrie modele în web-ul semantic .

Sisteme de învățare automată

Sistemele de învățare automată își evoluează comportamentul în timp pe baza experienței . Acest lucru poate implica raționamente asupra evenimentelor observate sau date de exemplu furnizate în scopuri de instruire. De exemplu, sistemele de învățare automată pot utiliza raționamente inductive pentru a genera ipoteze pentru faptele observate. Sistemele de învățare caută reguli sau funcții generalizate care dau rezultate în conformitate cu observațiile și apoi folosesc aceste generalizări pentru a controla comportamentul viitor.

Sisteme de raționament bazate pe cazuri

Sistemele de raționament bazat pe cazuri (CBR) oferă soluții la probleme analizând similitudini cu alte probleme pentru care există deja soluții cunoscute. Ei folosesc raționamente analogice pentru a deduce soluții bazate pe istoric de caz. Sistemele CBR sunt utilizate în mod obișnuit în scenarii de asistență pentru clienți / tehnică și call center și au aplicații în fabricarea industrială , agricultură , medicină , drept și multe alte domenii.

Sisteme de raționament procedural

Un sistem de raționament procedural (PRS) folosește tehnici de raționament pentru a selecta planurile dintr-o bază de cunoștințe procedurale . Fiecare plan reprezintă un curs de acțiune pentru atingerea unui obiectiv dat . PRS implementează un model de credință-dorință-intenție prin raționamentul asupra faptelor („ credințe ”) pentru a selecta planuri adecvate („ intenții ”) pentru obiective date („dorințe”). Aplicațiile tipice ale PRS includ sisteme de management, monitorizare și detectare a defecțiunilor .

Referințe