M ATHÉMATIQUES ET SCIENCES HUMAINES
B ERNARD J AULIN
Sur un aspect du calcul
Mathématiques et sciences humaines, tome 14 (1966), p. 1-8
<http://www.numdam.org/item?id=MSH_1966__14__1_0>
© Centre d’analyse et de mathématiques sociales de l’EHESS, 1966, tous droits réservés.
L’accès aux archives de la revue « Mathématiques et sciences humaines » (http://
msh.revues.org/) implique l’accord avec les conditions générales d’utilisation (http://www.
numdam.org/conditions). Toute utilisation commerciale ou impression systématique est consti- tutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
http://www.numdam.org/
SUR UN ASPECT DU CALCUL Bernard JAULIN
Il est bien connu
qu’un
programme de calculatrice est un schéma dedéfini-
tion d’une semi-fonctionrécursive* et réciproquement qu’une
telle machine nepeut
calculer que dessemi-fonctions,
de cette nature si l’on suppose que sa mé- moire est infinie(en
ce sens que seséléments
demémoire pourront
contenir unnombre aussi
grand
que l’onveut).
En neprécisant
pasplus
la notion de calcula- trice ni celle delangage
deprogrammation
cetteréciproque correspond,
pour cetteidée
intuitived’algorithme
decalcul,
à un desaspects
de lathèse
de A. Church.Compte
tenu de ce fait il est alors faciled’expliciter
des .modèles"théoriques"
simples
de calculatrices dans les termesdesquels
il serapossible d’expliciter
le calcul de
n’importe quelle
semi-fonction effectivement calculable. Par exem-ple
supposons que l’ondispose
d’unequantité
aussigrande
que l’on veut de re-gistres
de"mémoire"
dans chacundesquels
il estpossible d’enregistrer
un nom-bre
quelconque.
Pour modifier le contenu de cesregistres
ondispose
des 4types
suivants d’instruction. °
A
(r)
:augmenter
de 1 le nombre contenu dans leregistre
n°rD
(r)
: diminuer de 1 le nombre contenu dans leregistre
nOrE
(r1’ r2,)
: porter dans leregistre
denuméro r1,
le nombre contenu dans leregistre
denuméro r2.
(*)
Les semi-fonctions recursives sont des semi-fonctionsde [N ’
dans D désignant.
l’ensemble
desentiers)
qui sont définis de. la façon suivante- f:HB} ~-§f4
est unesemi fonction recurs ive si l’on peut la
défini’r
°à partir des fonctions "successeur", suc, "projections" "prp,
nullesCP,
en utilisant 1 es opérations de superpbsition, re-currence simple, minimUisation.
- f est défini i par partir de g,
Ti~, ...
Dh~
si if
(~x , ,
=$(h 1 (x, .... 0 0 ., h n (x, xj)
-festdëfin!
par récurrence’simple à partir de g et h sif (x,
X,0)
=g~~,
’ ~
f
(XI
o;,o,> x ny)
*’ h .,.., x n y ,Xn 1 YJ
- f est défi ni par part i r de g s i °
..., xn~ =1ep1uspet!ty
tel que g(xi, ::: 0,::.
(Nota:
On voit que la dernière oopration, collège rrinimi 1 isation, peut conduire, à pa:rtir d’une fonc- tiong"
à une seni 1 fonction f, c ’ est-à7d.i rg uneapplication
non -partoutdéfini) - (Cf (1 ) ’ pou r
plus de
détails).
’T
(~1 ~ ~2) (r) :
Dans un programme,c’est-à-dire
une suite finie d’instructionqui
chacuneporte
un nom, qi,lorsque
l’on rencontre cette ins-truction,
onregarde
le nombre contenu dans leregistre
de nu-méro r, si celui-ci est
zéro,
y on effectueraaprès
l’instruction de nomq1,
sinon celle de nomq2.
On
vérifiera
trivialement que pour toute semi-fonctionrécursive :
définie de
façon arithmétique
selon ladéfinition
de GUdel-Herbranddonnée
ci-dessus,
onpeut
construire un programmequi
necomportera
que des instructions d’un de ces 4types
et telle que six1,
...,xp
sont les nombresplacés
initiale-ment dans les
registres
n° 1 à p, la machine nes’arrêtera
pas si f(x1 ,...,xp)
n’est pas
défini
et sinons’arrêtera
avec y = f(x1,
...,xp)
dans leregistre
n° 1.
- On
peut alors,
àpartir
de cetype d’algorithme,
yimaginer
ceuxéquivalents
dupoint
de vue du calcul comme lessystèmes
dePost,
lesalgorithmes
deMarkov,
les machines de
Turing*.
Pour cesderniers,
nés de cetteanalyse métamathéma- tique
bien connue dessystèmes formels,
et defaçon plus
nette pour les machi-nes de
Turing
où l’onpeut
vraimentparler
de programme de fonctionnement ausens traditionnel du
terme,
les instructions que l’on utilise pour construireun programme de calcul d’une semi-fonction
récursive
se situent au niveau deschiffres, c’est-à-dire
dessymboles
utilisés pourreprésenter
les nombres qu.e l’onmanipule.
Deplus
dans ces diverstypes d’algorithme
on utilise un seulregistre
demémoire, appelé
"bande" dans le cas des machines deTuring.
No-tons que cette
unicité
deregistre
demémoire implique l’existence,
dans l’ al--plabet
que l’on utilise pourreprésenter
lesnombres,
d’unsigne supplémentai-
re, par
exemple /#,qui
servira àséparer, puisque
l’on"manipule"
exclusivement desséquences
desymboles,
lesreprésentations
de deux nombres.- Dans tous les cas,
c’est-à-dire quelque
soit la formeparticulière
del’algo-
rithme que l’on utilise pour
exprimer
le calcul d’une semi-fonctionrécursive,
que ce soit une liste d’instructions d’un
langage
deprogrammation
ou bien lesproductions
d’unsystème
de.Post, etc...,
laprésentation
du calcul d’une fonc- tion calculable estdonnée
par unnombre, puisqu’elle peut toujours être
faiteexplicitement
par uneécriture
finie sur unalphabet
fini.On
dispose
alors dupremier résultat suivant, équivalent à
unrésultat dû à
Rice.Résultat
1.Etant
donné
unlangage
deprogrammation
suffisamment riche(en
ce sensqu’il permet d’exprimer
le calcul den’importe quelle
semi-fonctionrécursive),
alorspour tout ensemble A de
semi-fonctions récursives (effectivement calculable),
différent
de l’ensemble vide ou de l’ensemble de toutes les semi-fonctionsré- cursives,
l’ensemble B de tous les programmespermettant
de calculer une semi-fonction de A est non
récursif.
(On précise
ceténoncé
dansl’appendice où
en outre on pourra trouver unedémons-
tration).
Ce
résultat signifie, puisque
comme nous venons de le voir un programme dansun
langage
deprogrammation peut-être considéré
comme unnombre,
cequi correspond
’Î
Cn trouvera les defm’!t!ons de ces termes dans(9).
car exemola.n.ailleurs à la
réalité tangible
dans les calculatrices modernes où l’on enre-gistre
un programme dans unemémoire, qu’il
n’est paspossible
de construire unprogramme dans ce
langage
deprogrammation,
yqui opérant
sur un programmequel-
conque comme
donnée (sur
le nombrereprésentant
ceprogramme),
nouspermettrait
de savoir si ce programme
exprime
le calcul d’une semi-fonction de l’ensemble A que l’onconsidère.
Parexemple l’ensemble
infinidénombrable
des programmesqui permettront
de calculer le p.p.c.m. de
deux nombres est dans toutlangage
de pro-grammation
nonrécursif.
Demême
si A est l’ensemble des semi-fonctionsrécur-
sivesdéfinies partout
sur un sousensemble
CC
l’ensemble B desprogrammes
permettant
de calculer ces semi-fonctionsn’est
pasrécursif.
En l’occurencececi
signifie dans
le oaspratique où
C serait lacapacité
demémoire d’une
triae réelle
yqu’il
ne nous est paspossible dtécrire
unprogrume qui
nougmettrait
desavoir pour
unprograme quelconque P écrit
unlangage de pro-
granmmation si
ceproigramme 2 pour n’importe quelle peut enregistrer dans la maahino .
Rom4rquons que
oeréoultat de tel que
Musdépende d’uno part du ot prt ⧠la façon q.~
Chgisi de
unproaruno pge
unEn il @gt
gommo
mog-trpr H p4r oxomplo de 1=
gon
eu êftpgrela notign do
PPgo44Pn%o pas 60 9ao%, do
Po4éul%àt
énd’#x%o@1 du do
oou6#é
nouéi
â âë
llexpmplp d@
sur
les
gew des
d(B
POP%oo9
i9~ 4~§
tigels
pepàa
or 40
un- nonUn mpprtgn-t 4g
oeo xnwà*àe%b*o
eat leur per 4n
belto
Oursoug"ensomblo q Co Il
11 ai le gour Igg YgIpmeg
g ( si 40 0 Q
’.r,_t-’Q" t"t .
e (x)
=10 o 8 0 .
Il si l’on P~’A~~t@ 4p
»o
pelpulgtrice ¡@~
dont lom mont
1fi ) @ 6 )
e
-1B §t8 t! 91 â
t 93t rO=
9AYF
4’a ~~~ l’Pm ~~
en,Il 1 pg4
yyurIsq
ro"weù8
d’un 11~f’ ial
1 le ~OÇPÇI 0 f 1 MI i .~f:’!1 (Ço- Vrgl i
et
j#Br] 46
1
9’ R )
1 ,On voit donc
apparaître
lanécessité,
si l’on veutétudier
defaçon thPori-
que certains
problèmes pratiques, d’introduire
ou dedéfinir précisément
les ca-ractéristiques
deplusieurs
notions commel’importance
de lamémoire utilisée
parun programme, sa
rapidité,
y ... etc.... Nous regrouperons maintenant sous le termegénérique
decomplexité
cesdifférentes notions,
car, et nous le verrons, ellesse laissent
caractériser
dans le cadregénéral
des fonctionsrécursives
à l’aide des mêmes axiomes. Il est alors utile de faire une remarque afind’éviter
des confusions. Unproblème
de calcul c’est laprogrammation
dans un certainlangage
d’une semi-fonction
récursive.
La notion decomplexité
d’unproblème
n’a doncpas de sens si l’on ne
spécifie
pas enmême temps
la forme del’algorithme (ou langage
deprogrammation)
que l’on utilisera pour calculer la semi-fonction ré- cursivedéfinie
par leproblème.
Une fois ceciacquis, quelles
seront les mesu- res decomplexité
que l’on pourra associer au calcul d’une semi-fonctionrécur-
sive pour unalgorithme
d’un certaintype?
Onpeut
en concevoir facilement ungrand
nombre selon la forme del’algorithme
que l’onconsidère.
Parexemple
sil’on effectue le calcul avec une machine de
Turing
ou unalgorithme
deMarkov,
ou un
système
dePost,
on pourra mesurer laquantité
de"mémoire" utilisée
sur le"ruban", c’est-à-dire
lalongueur
maximum des mots considérés au cours du cal-cul.
ou bien encore pour lesalgorithmes
de calcul tels que celuiprésenté
au dé-but de cet
exposé,
y le nombre de fois où l’on effectuera uneopération logique
dutype
T(q1’ q2 ) (r),
ou encore le nombre d’instructionseffectuées,
etc...etc....Le
premier exemple
est on le voit une tentative pour mesurer lamémoire,
le der-nier est relatif à la
rapidité,
le second lacomplexité logique , du
programme etc...L’on remarque alors que dans chacune de ces
situations,
y pour une forme d’al-gorithme donnée,
si i est lenuméro
del’algorithme
ou du programmepermettant
de calculer la semi-fonction
fi,
on mesure lacomplexité
de ce calcul par une semi-fonctionrécursive Fi, tel’ que :
1) ~
n,f i (n) défini ~ Fi (n) défini.
2) (i,
n,m) / Fi (n) = m
estrécursif.
Cettedernière
condition si-gnifiant
queétant donné
un programme denuméro i,
et unargument
n onpeut
re-connaître
si m est la valeur de lacomplexité
du programme iappliqué
à cetargument
n.L’étude
de cesystème
d’axiomes introduit par M. Blum aété
faite par cet auteur. Onpeut
endéduire
un certain nombre deconséquences
et enparticulier
le
résultat
suivant :Résultat
2.(M.
Blum.Thèse
duM.I~T.~.1965).. B
Soit r une fonction
récursive
de 2vaxiables,
alors il existe une fonc-tion
récursive
fprenant
les valeurs 0 et 1 avec lapropriété
que pour tout programme ipermettant
de lacalculer,
il existe un autreprogramme j écrit
dans le
même langage
deprogrammation permettant
de calculer f et tel queFi (n).>
r(n, Fj (n) )
pour presque tout n,(c’est-à-dire
sauf pour un ensemble fini de valeursde n).
On voit
l’importance
dans cerésultat
del’expression "pour
presque tout n".En effet si pour la fonction r on
prend
r(x,y) = xy,
cerésultàt
affirme l’exis- tence d’unproblème
tel que pour tout programme iassocié
à ceproblème
ilexiste un autre
programme j beaucoup
moinscomplexe
pour presque tout n, c’est-F . (n)
à-dire
tel queFi (n)
> nJ
pour presque tout n.Si l’on
remplace
le motcomplexe
parrapidité
ouquantité
demémoire
au cours d’un
calcul,
on se rendcompte aisément
de lasignification
~e ce ré-sultat. ,
Une
démarche complémentaire
à celle de Blum consiste àétudier
lacomplexi-
té que l’onpourrait
définir sur lesprésentations
des calculsc’est-à-dire
sur la formemême
desalgorithmes.
Parexemple
si l’on associe àchaque
programme p,un nombre m
(p) qui exprime
laquantité
d’instructions du programme,etc...,
onpourra associer à une semi-fonction f. le nombre c
(f) égal
auplus petit
desm
(p), lorsque
pparcourt
l’ensemble des programmespermettant
de calculer f.Cette seconde
façon
d’aborderl’étude
descaractéristiques
des fonctions calcu- lablesmécaniquement,
moinsintéressante
que laprécédente,
conduitcependant
àquelques résultats négatifs qui sont
des corollaires durésultat (1 )
de Rice. Defaçon plus précise
soit n: tin eénumération principale ( cf . annexe )
de l’ensemble des semi-fonctions
récursives.
(f), désignant
parexemple
l’ensemble desnuméros
des pro- grammespermettant
de calculerf)
et soit m:IN
une fonction récursiveexprimant
lapseudo-complexité
des programmes(m (p) peut-être
parexemple
lenombre d’instructions
logiques
du programme denuméro p).
Onpeut
alors poser:Complexité
de f = c(f) =
min m(p).
p £ n-1 (f)..
Dans ces conditions on
peut
se demander sil’application
C*: dé- finie par C*(p)
= Cn (p))
est, calculable,c’est-à-dire
s’il estpossible
decalculer, ’,
étant,
donné un programme de numéro p, lapseudo-complexité
minimum desprogrammes
équivalents
à celui donné.Il
apparaît
clairement que les résultats que l’onpeut
obtenirdépendront
d’une
part
de la numérotation choisie n, des semi-fonctionsrécursives
et d’autrepart
descaractéristiques
de fonctions depseudo-complexité
m que l’on veutétudier.
En outre’ on
peut
essayer, si la fonction C* n’est pas calculable cequi
estle cas pour les
pseudo-complexités
mintpressantes(cf. infra), d’approximer
cette fonction par une fonction calculable. Ceci
pourrait être
fait de la maniè-re suivante:
a)
Unefonction
C*: estapproximée linéairement
par une fonc- tion C : : si il existe M telque /
C*(n) -
C(n) /M -
pour toutn.
b)
Une fonction C* :lN --+ rN
estapproximpe logarithmiquement
par unefonction
C :
-. si il existe M tel que pour tout n.On
peut
alorsénoncer
le résultat suivant dû àKloss 4 .
Résultat
(3)
Si m est une fonction
récursive (de pseudo-complexité)
telleue m-1 (n)
est fini pour tout n; alors la fonction de
complexité
C~ :~ "’~
est nonrécursive.
Deplus
cette fonct~ion nepeut
pasêtre approximée
nilinéairement,
ni
logarithmiquement
par une fonctionrécursive.
On trouvera en annexe une démonstration
simplifiée
de cerésultat.
Conclusion :
L’énoncé
et laprésentation
destrois- résultats
1 et 3 ne cons-tituen,t
pas, unrésumé,
exhausif de stravaux .faits
dansce domaine. Ce sont des résultats
généraux qu’il
est utile deconnaître avant
, d’aborder
plus
endétail
les nombreuxproblèmes qui peuvent
se poser. Leur ca-ractère
négatif
tient à leurgénéralité,
onpeut cependant espérer,
mais nousn’avons pas la
place
pour le montrer iciqu’une
restriction de cettegénéralité permet l’étude
deproblèmes
pourlesquels
il estpossible
d’obtenir desrésultats positifs
etmême
dedéfinir explicitement
desalgorithmes
de calcul assezgénéral
et
intéressant
pour lapratique
des calculatricesélectroniques.
DEMONSTRATION DES RESULTATS DE RICE-USPENKHI ET DE KLOSS:
(La démonstration
durésultat
de M.Blum, trop technique
et un peulongue
ne sera pas
reproduite ici).
Les
démonstrations données
sontinformelles,
y il sera facile de lesécrire
avec toute
la,rigueur
propre à unedémonstration.
Soit n :
énumération principale
des semi-fonctionsrécur- sives, n- l (f)
est parexemple
l’ensemble desnuméros
des programmespermettant
àe
calcer f) .
0nécrira
n(p)
=fp (la
semi-fonctioncalculée
par le programme de calculerf).
Onécrira
n(p) = f p (la
semi-fonctioncalculée
par le programme denuméro p).
Cetteénumération possède
lapropriété caractéristique
suivante: lasemi-fonction 4, (p,y) = fp (y)
estrécursive. (Cette semi-fonction T
estappelée
de
façon
traditionnelle une semiapplication récursive
universelle pour les semiapplications récursives à
1variable).
On montre d’abord que
l’ensemble D n /j (n,n)
estdéfini est
nonré-
cursif. En effet s’il
l’était C
D leserai existerait no
tel queCD = { y / T (n, y)
soitdéfini .
1.On aurait
alors( no ~ no ) dé-
no D ce
qui est
contradictoire.Donc D
n’est pasrécursif.
Pour lerésultat
deRice,
on va montrer que si B estrécursif (voir l’énoncé)
alors Dle serait. Pour ceci on
associe à
tout nombre x, un nombre k(x)
tel que k(f)
ou fe
Asi
~x x) est défini
etsinon
k(x) 6 zi1
u*est la
semi-fonction récursive définie nulle part. Cette application k 1:
être construite explicitement et
seradonc récursive.
Sil’on considère
alorsl’application
g o k ou gest
lafonction caractéristique de B,
onconstate dans
ces
conditions que
g o kest
lafonction caractéristique de
D : sdéfini
non
défini
Par
suite si gétait récursive,
Dserait récursif d’oû
lacontradic-
tion.
Il
reste à construire
k. Onprocède
ici pourcette construction de façon heuristique.
A tout nombre x on associe le programme de calcul suivant que l’onexprime
dans lelangage de programmation
de laPage
1 .on
place
x dans leregistre
n° 2on
place
x dans leregistre
n° 34: on
calcule cp ~x,x)
le nombre xétant placé
dans les re-gistres
2 et 3.: on effectue le calcul d’une semi-fonction
f,
fquelcon-
que, y f
E A,
surl’argument
yplacé
dans leregistre
n°1.Il
apparaît
clairement que ce programme de numéro k(x)
est celui d’une semi-fonctionrépondant
la conditionénoncée
ci-dessus: Siy (x,x)
estdéfini,
ce programme calcule f
~ A, si T (x,x)
n’est pasdéfini,
alors pour tout y, le calculdéfini
par ce programme nes’arrête
pas. On a doncmontré
lerésultat
de Rice etUspenkhi.
- Pour
vérifier
lerésultat
de Kloss on va constater que l’on se trouve dans les conditionsd’application
de celui de Rice et l’on endéduira
une contradiction.En effet si C* est
récursive
et siC*(n) =
yo alorsC*-1 (yo) -
B estrécursif.
Or si A =
f e sFR /
c(f) = yo
B =n-1 (A).
On va montrer queA ~ ~,
estdifférent
desFR’
on endéduira d’après
lerésultat
de Rice que B est nonré- cursif,
d’où la contradiction. En effet si m est à domaine finiest
fini, et A c n (C)
car n(C)
est l’ensemble des semi-fonctionsayant
une-complexité inférieure
àyo .
n(C) étant fini,
A est non vide et fini donc dif-férent
desF .
tu On pourraprocéder
de lamême façon
pour montrer que toute fonc- tionca,
yce approximant
defaçon linéaire
oualgorithmique
la fonction c, nepeut
pasêtre
calculable.’
Bibliographie
(1 )
LACOMBE -Fonctions récursives et applications.
Bulletin de laSociété Mathé- matique
de France .Gauthier Villars
(1962) .
(2)
USPENKHI(V.A.) -
Lectures oncomptable
functions.Matematika Logika
iOsnovanija
Matematiki.Fizmatgiz,
Moscow(1960).
(3)
ARBIB(M.A.)
and BLUM(M. ) -
Machinedependance
ofdegree
ofdifficulty.
(4)
KLOSS - The definition ofcomplexity
ofalgorithms.
Sovietmathematics,
volume 5 n°
4, (july-august 1964).
(5)
MARKOV(A.A.) -
Normalalgorithms
whichcomputes
boolean functions. Sovietmathematics,
volume 5 n°
4, (july-august 1964).
(6)
GRZEGORCZYK(Andrej) -
Some classes ofrécursive
functions.Rozprany Matematycne ,
Warsawa (1953).
(7)
CLEAVE(J.P.) -
Ahierarchy
ofprimitive
recursive functions. Zeitsch f.Math.
Logik
undGrunalagen
d. Math.(8)
RITCHIE(R.) -
Classes of recursive functions ofpredictable complexity.
Thése - Université
de Princeton.(9)
DAVIS -Compatability
andUnsolvability (Mac
grawHill).
(10)
MARKOV(A.A.) - Theory
ofalgorithms.
(Distribué
par OldbournePress).
(11)
TRAHTENBROT(B.A.) - Algorithmes
et Machines à calculer(Dunod).
(12)
SMULLGAN -Theory
of formalsystems (Princeton Un. Press).
Pour une introduction à la