Sabato, 18 ott 2003, alle 23:28 Europe/Rome, [log in to unmask] ha
scritto:
> Si on simplemente extrapola iste tendentias, on
> trova que nostre computatores habera, plus o minus in
> le anno 2040, le capacitate de un cerebro human.
> Probabilemente iste processo de evolution continuara
> e post 2040 nostre computatores essera plus
> intelligente que nos. Inter altere cosas, illos
> probabilemente habera nostre capacitates visual
> e linguistic.
Iste dies post mi operation, io passa mi tempore legente re le
linguages de programmation logic, como Prolog, LISP, CLIPS, benque io
non cognosce le mathematica logic nec io es studente de ingenieria
informatic.
On sovente lege que LISP es "le lingua" del IA (intelligentia
artificial). Prolog es un linguage deductive con le qual le machina
deduce responsas a questiones re le factos que illo cognosce. CLIPS es
un linguage pro le disveloppamento de systemas que cambia e que debe
cambiar post cambios definite.
Ma toto isto se applica a systemas experte: io pote describer in Prolog
alicunes relationes, per exemplo que un cosino es le filio o le filia
del frater o del soror del patre o del madre. Io pote definir mi
familia, e decir que Antonio es frater de mi madre e que Carolina e su
sposa, e que lor filios se appella Erika e Mattia.
Post, io pote demandar a Prolog si Erika es mi cosina, e illo va
deducer que si, illa es mi cosina.
Similmente, on pote ampliar iste idea e construer, per exemplo, un base
de cognoscentia (knowledge base) con factos e regulas re le production
de carta, e scriber un programma (imperative) que usa le logic
deductive de Prolog pro decider si ille ligno es bon o non. Esque le
tronco es troppo vetule? Esque illo veni de un zona in le qual le clima
ha essite mal assi que on necessita un ulterior controllo?
Toto isto, in veritate, poterea esser facite anque per un database
"static", sin capacitates deductive. On pote usar un database MySQL e
usar alicun 'queries' pro vider si le tronco es sufficientemente bon -
statisticamente - pro le uso destinate.
Assi, que es IA? IA es le possibilitate, pro le machina, de ampliar le
datos autonomamente, usante le "experientia" (datos precedente). E IA
es le possibilitate, pro le programmator, de abstraer le conceptos a un
nivello plus alte, e isto simplifica le gestion del systema.
Per exemplo, multe inter vos ha certemente jocate le adventures textual
multo famose in le annos '80-'90. Illos era jocos textual in le qual on
legeva le description del loco e lo que on poteva prender o usar, e
scribeva commandos como:
PRENDE MONETA
PONE MONETA SUPER LE TABULA
Un mundo como isto, con objectos que ha proprietates (le portabilitate,
le mobilitate...) es extrememente difficil a construer con un linguage
classic. Le structuras e le referentias (e le difficultates de gestion)
cresce exponentialmente post cata modifica.
Con Prolog, in vice, on simplemente va definir factos e regulas, per
exemplo:
---8<---
camera(cocina). % isto defini que cocina es un camera
camera(hall). % ... que hall es un camera
camera(banio). % ...
porta(cocina, hall). % un porta es inter le cocina e le hall
porta(banio, hall). % ...
hic(cocina). % ubi es le jocator (stato initial)
connecte(X,Y) :- porta(X,Y). % si un porta existe inter X e Y
connecte(X,Y) :- porta(Y,X). % o inter Y e X, X e Y es connectite.
pote_vader(Loco) :- % pro omne X tal que X es le valor de le factos
"hic"
hic(X), % [e nos sape que nos ha uno], controlla si
connect(X, Loco). % il ha un connection inter X e Loco.
pote_vader(_) :- % si no...
write('Infelicemente, tu non pote vader illac ab hic.'), nl, %
scribe le message
fail. % e da error
move(Loco) :- % nos necessita saber ubi le jocator debe vader
retract(hic(_)), % nos elimina le facto "hic" (il non importa le
valor)
asserta(hic(Loco)). % e nos lo reimposta con le valor nove
vade(Loco) :- % quando le jocator vole vader ad alicubi
pote_vader(Loco), % nos controlla si ille pote vader illac
move(Loco). % e nos le face vader
--->8---
Io non va explicar le listato linea per linea (io ha scripte alicunos
commentos pro le plus curiose inter vos :), ma si on cognosce un pauc
de programmation classic (imperative) on pote vider como il non ha
typos de datos, e anque le linea de distinction inter datos e
proceduras (factos e regulas) es multo subtil.
Prolog sape nihil re lo que es un "camera" o un connection inter duo
cameras. Iste cosas ha un significato pro le programmator, non pro le
machina.
E isto permitte un semplification del gestion del systema experte
notevolissime.
Lo que io vole dicer con toto isto (que inutilitate que io ha scripte!)
es que actualmente lo que le Intelligentia Artifical es realmente non
es le puero semi-human del bellissime film AI, nec le cyborgs de
Terminator... In iste momento, le IA es le gestion automatic de
systemas experte: un base de cognoscentia limitate a un argumento o un
ambito particular, cuje decisiones es strictemente relative a ille
ambito.
Machinas non va prender le controllo del mundo como in matrix: illos
non pote, proque scriber un systema experte complexe como le mundo
requirerea un systema experte complexe como le mundo. E un tal loop non
existe, pro obvie rationes.
Nos pote dormir tranquillemente... ;)
Prologamente
Daniele
--
Daniele Nicolucci (Jollino)
"Jos haluat tietää kuinka paljon rakastan sinua,
katso merta ja laske sen aallot."
|