La programació inductiva (IP) és una àrea especial de programació automàtica, que cobreix la investigació de la intel·ligència artificial i la programació, que aborda l'aprenentatge de programes típicament declaratius (lògics o funcionals) i sovint recursius a partir d'especificacions incompletes, com ara exemples d'entrada/sortida o restriccions.

Depenent del llenguatge de programació utilitzat, hi ha diversos tipus de programació inductiva. La programació funcional inductiva, que utilitza llenguatges de programació funcionals com Lisp o Haskell, i sobretot la programació lògica inductiva, que utilitza llenguatges de programació lògica com Prolog i altres representacions lògiques com les lògiques de descripció, han estat més destacades, però un altre llenguatge (de programació) També s'han utilitzat paradigmes, com ara la programació de restriccions o la programació probabilística.

Definició La programació inductiva incorpora tots els enfocaments relacionats amb programes d'aprenentatge o algorismes a partir d'especificacions (formals) incompletes. Les possibles entrades en un sistema IP són un conjunt d'entrades d'entrenament i sortides corresponents o una funció d'avaluació de la sortida, que descriu el comportament desitjat del programa previst, traces o seqüències d'acció que descriuen el procés de càlcul de sortides específiques, limitacions per al programa a induir. pel que fa a la seva eficiència temporal o la seva complexitat, diversos tipus de coneixements bàsics com ara tipus de dades estàndard, funcions predefinides a utilitzar, esquemes de programes o plantilles que descriuen el flux de dades del programa previst, heurístiques per guiar la cerca d'una solució o altres biaixos.

La sortida d'un sistema IP és un programa en algun llenguatge de programació arbitrari que conté condicionals i estructures de control de bucle o recursius, o qualsevol altre tipus de llenguatge de representació complet de Turing.

En moltes aplicacions, el programa de sortida ha de ser correcte pel que fa als exemples i l'especificació parcial, i això porta a considerar la programació inductiva com una àrea especial dins de la programació automàtica o síntesi de programes, generalment oposada a "deductiva". síntesi del programa, on l'especificació sol estar completa.

En altres casos, la programació inductiva es veu com una àrea més general on es pot utilitzar qualsevol programació declarativa o llenguatge de representació i fins i tot podem tenir algun grau d'error en els exemples, com en l'aprenentatge automàtic general, l'àrea més específica de la mineria d'estructures o l'àrea de la intel·ligència artificial simbòlica. Una característica distintiva és el nombre d'exemples o especificacions parcials necessaris. Normalment, les tècniques de programació inductiva poden aprendre només d'uns quants exemples.

La diversitat de la programació inductiva sol prové de les aplicacions i els llenguatges que s'utilitzen: a part de la programació lògica i la programació funcional, en la programació inductiva s'han utilitzat o suggerit altres paradigmes de programació i llenguatges de representació, com ara la programació lògica funcional, la programació de restriccions, la programació probabilística, programació de lògica abductiva, lògica modal, llenguatges d'acció, llenguatges d' agent i molts tipus de llenguatges imperatius.

Àrees d'aplicació El primer taller sobre Enfocaments i Aplicacions de la Programació Inductiva (AAIP) celebrat conjuntament amb ICML 2005 va identificar totes les aplicacions on "cal l'aprenentatge de programes o regles recursives, […] primer en el domini de l'enginyeria del programari on l'aprenentatge estructural, Els assistents de programari i els agents de programari poden ajudar a alleujar els programadors de les tasques rutinàries, donar suport a la programació per als usuaris finals o donar suport a programadors novells i sistemes tutors de programació. Altres àrees d'aplicació són l'aprenentatge d'idiomes, l'aprenentatge de regles de control recursiu per a la planificació d'IA, l'aprenentatge recursiu. conceptes en mineria web o per a transformacions de format de dades".

Des d'aleshores, aquestes i moltes altres àrees han demostrat ser nínxols d'aplicacions d'èxit per a la programació inductiva, com ara la programació d'usuari final, les àrees relacionades de programació per exemple i programació per demostració i tutoria intel·ligent. sistemes.

Altres àrees on la inferència inductiva s'ha aplicat recentment són l'adquisició de coneixement, la intel·ligència general artificial, l'aprenentatge de reforç i l'avaluació de la teoria, i la ciència cognitiva en general. També hi pot haver aplicacions potencials en agents intel·ligents, jocs, robòtica, personalització, intel·ligència ambiental i interfícies humanes.

Referències

Categoria:Intel·ligència artificial