teoria de la computació

f
Matemàtiques

Branca de les matemàtiques que estudia problemes de decidibilitat.

Com és usual en la història de les matemàtiques, té orígens aparentment molt diferents que finalment conflueixen i permeten d’establir el que esdevé una teoria enormement potent i irrenunciable. Cal remarcar-ne el problema diofàntic plantejat per David Hilbert l’any 1900, i el problema de les paraules que sorgí en el món de la topologia algèbrica. Es tracta de dos problemes típics de decidibilitat; és a dir, aquells en què cal disposar d’un mètode que permeti de decidir una o altra de dues opcions: atesa una equació diofàntica, té solució?, són equivalents dues paraules donades per endavant? L’any 1931 Kurt Gödel establia el famós teorema d’incompletesa i, en la seva demostració, introduïa dos fets realment importants: d’una banda, la gödelització, que és una tècnica que aconsegueix de convertir paraules i frases escrites en un cert llenguatge en nombres naturals ben determinats, i, d’altra banda, introdueix el concepte de funció parcial recursiva. L’any 1936 Alonzo Church establia la tesi de Church: ‘Una funció f : A ⊆ ℕk → ℕ és computable si és recursiva’, però no deia pas què calia entendre per computable. Aquest concepte, però, no trigaria pas gaire i, lògico-matemàtics com ara Kurt Gödel, Alonzo Church, Alan Turing, Jean Herbrand, Emile Post, Andrei Markov, Stephen C. Kleene, etc, proporcionarien diverses definicions d’algorisme. Cada un d’ells, amb la seva pròpia definició d’algorisme, podia preguntar-se per la validesa de la tesi de Church. Resultà, així, que tots els algorismes, aparentment diferents, satisfeien la tesi de Church. És a dir, tots els algorismes computaven el mateix tipus de funcions, les funcions recursives de Gödel. D’entre totes aquestes definicions la més coneguda és, potser, el concepte de màquina de Turing. Un cop es disposa d’una definició correcta i precisa d’algorisme de computació, els problemes de credibilitat poden ésser plantejats correctament: un conjunt A ⊑ ℕ és decidible si la seva funció característica 1A és recursiva o, dit altrament, computable per una màquina de Turing. Ara hom pot replantejar el problema diofàntic en els termes següents: primerament, hom gödelitza les equacions diofàntiques i així obté un cert subconjunt OOO ⊑ ℕ; a continuació cal considerar el subconjunt OOO de els que tenen solució. Tot rau a veure si aquest conjunt és o no decidible. El matemàtic rus Yuri Matijasevicz establí l’any 1981, d’acord amb els resultats dels matemàtics americans Martin D. Davis i Julia Robinson, que el conjunt OOO no és recursiu. Aquesta tècnica permet també de donar resposta a d’altres problemes, com ara el de les paraules, el de la indecibilitat de certes teories matemàtiques —K. Gödel (1931); R. Robinson (1950); A. Tarski (1936); etc—, el de la indecidibilitat de la lògica de predicats de primer ordre —A. Church (1936)—, etc. Però també amb l’aparició dels algorismes de computació, si bé hom resol un cert tipus de qüestions, en planteja de noves. Aquestes fan referència als problemes decidibles i a la dificultat que presenta l’algorisme que els resol. Cal aconseguir algorismes amb una complexitat mínima i que, alhora, siguin suficientment ràpids per tal que siguin algorismes efectius. L’estudi d’aquesta nova mena de qüestions ha portat a la teoria de la complexitat algorísmica. Un tipus de problema seria el següent: suposem una família OOO de problemes i suposem que cada problema té associat un cert nombre natural n. Sigui T(n) el màxim nombre de passos necessaris per tal de computar tots els problmes n d’una certa família. Ara la qüestió consisteix a saber el tipus de creixement de T(n) en funció d'n. Pot esdevenir-se que el creixement sigui polinòmic; és a dir, T(n) = An k, amb A i k fixos. En aquest cas, hom diu que els problemes d’OOO són de la categoria P. Una segona mena de problemes, anomenada NP, més interessant i també més difícil de descriure, la constitueixen aquells problemes en els quals la verificació d’una certa solució pot ésser realitzada en temps polinòmic. Amb l’aparició d’aquests problemes sorgeixen certes qüestions a les quals cal donar una resposta. Per exemple, P = NP? Però avui hom no en coneix la resposta. El que sí que és conegut, en canvi, són problemes concrets, anomenats problemes NP- complets que tenen la propietat següent: si un d’ells és de tipus P, aleshores tots els problemes de tipus NP són de tipus P i, per tant, P = NP. Els problemes P corresponen als problemes computables amb màquines de Turing deterministes (els estats interns que pren la màquina no depenen pas de l’atzar), mentre que els problemes NP són els computables amb màquines de Turing no deterministes (els estats interns són presos d’acord amb certes lleis de probabilitat). Un exemple ho pot aclarir: si hom vol multiplicar m per n ho pot fer per mitjà de l’algorisme de multiplicació i obtenir el resultat P = mn. El problema és determinat i el temps de computació és més petit o igual al quadrat del més gran dels dos nombres. Ara bé, si, atès un nombre P, hom vol descompondre'l en dos factors, el que farà és agafar, en primer lloc, un nombre n P i dividir P per n. Això és ben determinat i és fet en temps polinòmic, però és un tempteig. Seguidament, caldrà fer-ne un altre i un altre, etc. Es tracta d’un problema del tipus NP.