Som jeg forstår Darwin levner den ikke helt rum for "intelligens" som en
skaber af mennesket.
Det behøver dog end ikke at være en "gud" det her er tale om. Men det kan
også være en universiel intelligens.
Man kunne så spørge, om en sådan kan findes. Og om Darwin også er på sin
plads her, i forbindelse med
dennes opståen.
I vores "univers" har vi atomer. Det er vores fysiske verden. Men kunne vi
forestille os andre universer?
Og hvilke egenskaber vil disse have?
Vil f.eks. computere kunne eksistere i disse? Er computere noget, som vil
opstå i ethvert univers - eller
er det noget som kun findes her?
Vi kunne som udgangspunkt undlade at starte i vores univers - men i stedet
starte i computeruniverset.
Vi har dermed valgt et tilfældigt univers, et "boolsk" univers, hvori kun
NAND findes, eller NOR, og hvor
disse komponenter forbindes med hinanden. Det er et dynamisk univers, hvor
at ledningerne kan omdeffineres.
Og det er på mange måder bedre, at ligestille det med en PC, fordi at vi
her kan omprogrammere den.
Udgangspunktet kunne f.eks. være et program. Her er simple konstruktioner
som "IF" og "THEN" nok, samt løkker.
Vi kan da også opskrive selv addition, boolsk. Vi kunne også forestille os
mere advancerede computere, men
det er ikke nødvendigt.
Computeren kan naturligvis også bestå af data flow grafer - og her have de
grundlæggende symboler, så løkker,
og betingelser kan laves.
Hvad er nu betingelsen for "intelligens" i sådanne systemer? Kunne vi
opstille nogen krav, for at se, om intelligens kan
findes. Hvordan laver vi en intelligent PC - hvad kan den - og hvordan ser
systemet ud.
Darwinismen påstår, at den mest fremsynede ofte vinder. Og hvordan opnås
det? Det gøres ved at kunne udføre kode hurtig.
I vores "boolsk-binære" univers, har vi nu fået et krav: Vi skal udføre
computerens ordre hurtigere, end de egentlig
udføres, hvis vi "bare udfører disse" styk for styk og dermed opnå
gevindst på hasgtighed.
Nogen vil straks hævde, at det er umuligt. Man kan ikke lave et program,
og få en pentium computer til at gå hurtigere.
Men det kan man godt. Et sådan program analysere den kode, som computeren
får, og reducerer den, til at blive mere
simpel. Vi kunne komme med væld af eksempler som den løser - og kan løse
godt. Og væld af "egenskaber" som kommer i disse systemer, og som kan
løses. Nogen ting, er f.eks. matematik. Forestil dig, at du har en
uendelig løkke - som tager mange
millioner af år før computeren kommer til et resultat med den pågældende
programmering, - en sådan "løkke" kan udføres
på meget kort tid, fordi at den simpelthen løses med matematik.
I princippet kan du udføre sådan kode, på selv pentium computere, og
dermed gøre dem meget hurtigere. Du tager "bare" programmet og
indstallerer - og nu kører din PC hurtigere. Den behøver end ikke et andet
maskinsprog. Hvorfor ikke?
Joh, for du kunne jo bare lave en emulator til din pentium - og så køre
denne. Du kunne lave den i BASIC eller pascal.
Hvis dit program er ideelt, så kan den nemt indsé, at det du emulerer
faktisk er computeren selv - og dermed går det jo
ligeså hurtigt. Det kan aldrig blive langsommere. Men mange gange
hurtigere.
Disse "intelligens" pakker til computere, muliggør også hurtigere, og
simplere programmering. Ting, som normale vil sige,
kræver at blive optimeret, såsom f.eks. eventdrevne ting - de kan
programmeres langt simplere. F.eks. vil man i et regneark bare kunne lave
en uendelig løkke, som regner det samme ud igen og igen - og trods det er
millioner af ting som måske skal regnes ud - så regner den automatisk kun
den ene tals forskel ud, som du har tastet ind. Det går dermed ligeså
hurtig, som
var det eventdrevet - og det er nu ikke mere forskel på uendelige løkker -
og på eventdrevet design.
Compilere, og fortolkere går også over i et. Og matematik løses simpelt.
De fleste programmer går tusind gange hurtigere - og specielt hvis at man
sætter mange processorer sammen, kan det opnås. Da vil man med DFG'erne
nemt kunne udele det på mange computere.
Det som er specielt er algoritmerne bag - disse muliggør, at noget kan gå
hurtigere, end det umiddelbart vil have gjort. På sin vis, er de dermed en
form for intelligens. Og vi vil se, at vores intelligens ligner meget.
Vi kunne komme med rækker af eksempler - og jo mere man bevæger sig ind i
disse algoritmer, jo mere vil man ofte "finde sig selv". Eller, måske
ting, som ligner, i ens omgivelser, og hvor man kan se, at vi mennesker
kan have lavet samme ting (intelligens) for at opnå stor
hastighedsgevindst.
Eksempler, som opstår:
Parallelisering: Parallisering, tråder en sekventiel proceses ud, og
dermed får den ofte til at gå hurtigere. Specielt
hvis den sættes sammen med en form for reorganisering.
For det skal gå rigtig hurtig, skal også andre ting foregå - f..eks.
noget vurderes er konstant, og indsættes.
Serialisering, er en modsat process. Her tages noget og gøres serielt.
Heraf opstår computere. Computere, og DNA
strenge, er noget som opstår af denne process. Noget, som vil opstå
"spontan" i sådan et univers. Det kan nemt indsés:
Parallelisering svarer til, at flere personer gør et stykke arbejde.
Serialisering, svarer til, at du tager et stykke
arbejde, og laver om til kun en person. De vil nu gøre de jobs i serie.. Og
for at gøre det, opskrive programmer. Det
bliver til DNA strenge. Vi kan beskrive processen som først at
gennerelisere, for at kunne gøre blokkene ens - det er
nødvendigt for at kunne serialisere. Det betyder, at måske mere komplekse
blokke bygges, for at kunne udføre flere
forskellige ting - men det har en pladsbesparende virkning. Årsagen til
serialisering, er at det sparer plads - og
dermed muliggør plads for andet, hvorved bedste optimum findes. Derfor
opstår det spontant. Tingene kan dog, hvis
de er forskellige, ikke 100% serialiseres, og kun selve den gennerelle
process serialisers - det som ikke kan, bliver
"hængende" og må gøres parallelt. Her bliver det reelt "multiplekset" ind,
for at blive udført i serie.
Programmerne her, kan udsættes for samme trik som ovenfor. Herved opstår
procedurer, og subrutiner.
Cache, er også et begreb som skyldes ovenstående optimalisering. Og noget
som opstår spontan, i boolske universer.
En caches formål, er at samle "forråd" således vi ikke skal gå efter det.
I computersammenhæng, at have det inde på chippen,
så vi ikke skal rejse efter det. Det opstår altid, i systemer, hvor at det
er "vej" for at gå efter vand. Altså, hvor
at boolske udtryk, har en dybde, som tager tid (eller har en ulempe, idet
vi betragter tiden som ulempefaktoren). Plads
er også en ulempefaktor, fordi det er et begrænset system, og den må
derfor også spare på pladsen, for få nok udførsel.
Det er derved at programmel, og DNA opstår.
Vi kan se disse ting i såvel naturen, som i den måde vi selv arbejder på.
En cache, er et uhyre vigtig begreb. Denne, er
også forwarding, i f.eks. processorer. Her sker det, at vi tager cachen,
og trækker ind i CPU'en. Vi har udenfor CPU'en,
en cache, og den trækker vi ind i den selv, så den uddistribueres ud, over
vore komponenter, og bliver del af vores
beregningslogik. Denne hedder da i computersprog forwarding. Vi tager ofte
et "lager" ind i vores eget hus, f.eks. lidt
fra netto. Hvis vi gør det til en del, af vores normale måde at arbejde
på, viser det sig også, at mennesker gør sådanne
triks. Og ofte også dyr.
Men det interessante, er at alt dette, er alene set udfra et boolske
univers. Og det er ikke atomer. Det kan som sådan,
eksistere i et rent matematisk boolsk univers, og disse former for
intelligente former, har intet at gøre med atomer.
Det betyder også, at det måske har eksisteret før atomer. Atomer, har jo
trods alt også matematiske egenskaber - ihvertfald
kvantemekanik. Måske egenskaber som a+b = b+a eller andre
ombytningsregler. De er også en vigtig del af ovenstående "eksperiment"
med at lave en computer som kører hurtigere ved logisk analyse.
Ombytninger, er noget af det mest effektive,
til at "løse" et problem, i matematikken. Og det ser også ud til, at have
eksisteret, på et før - liv stadie.
Vi kan sagtens forestille os, at mange ting, som ligner "intelligens" har
eksisteret før livet. Og DNA'er, og programmer, også. Det behøver ikke at
være skabt af livet selv - eller af Darwin's udviklings teori altid. For
vores "intelligens" har
jo faktisk allerede mange år tidligere - enda efter darwins principper med
bedst velegnet kommer længst i et boolsk matematisk univers - allerede
skabt mulighederne for at kunne se frem, og dermed være med til at styre
udviklingen på grundlaf af intelligens. Vi opnår at vores simple system,
allerede før livet, formentlig nemt kan have en tendens til, at
kunne overskue konsekvenser af sine handlinger, fordi det kan tænke
hurtigere (simulere) omgivelserne, hurtigere end
omgivelserne, og således reagere på fremtiden før den opstår, og det er
reelt ikke andet, end de "ligninger" som opstår,
spontan - også universer uden atomer.
Et matematisk univers kan have eksisteret end før kvantemekanikken, og
dermed også løsning til ligninger. Og hermed, også
løsningen til problemer og metoder, som kan have gjort udviklingen
hurtigere, end den ville forløbe, hvis at selve atomerne
og deres kvantemekanik skulle være computer, for at udregne. Et sådan
matematisk univers, kan uden tid, have udregnet start
betingelser for vores univers. Og da at det at noget går "for hurtig" er
en tydelig fordel, dermed også mulig, som start.
Nogen af de vigtige ting, er ting som at kunne finde ud af, om noget er
samme hver gang (konstant) og så at fremstille programmer, som kører ved
at sætte disse konstante ind. F.eks. vil en "løkke" der simulerer noget,
når den foldes ud, medføre at koden som "slås op" som del af simuleringen
faktisk er konstant, og kan ofte fjernes, fordi den regnes ud. Og det er
med
til at gøre besværlige ting korte. Også fidusen med regnearket, er reelt
et resultat af denne fremstilling af programmel, til
en konstant opgave, hvor kun forskellen tages i betragtning. Flere måder
kan løse dette - en hirakisering, medfører hurtigere
parallel udregning, men også at mange grene er konstante. Og dermed kan
tal bruges igen. Andre, vil dele "plus" og lignende operatorer op i
systemer, hvor at der bruges flere bits til additionen (f.eks. kan et tal
skrives som a+b). Det muliggør, at
vi kan lægge konstantfaktoren over på a, og korrigere med b. Og dermed, så
kan mange "paths" i vores DFG optimeres, ved at
gå direkte, da den næste operation f.eks. intet gør på a, og b er konstant
og udregnet på forhånd. En ændring, vil dermed
propagere a som er variabel, til resultatet, hvor den skal bruges.
Vi kan lave programmer, som får PC'er, og enhver anden computer til at gå
hurtigere. Og også, til at gå bedre - fordi at de bliver hurtigere, og
nemmere at programmere. Ydermere bliver de kompatible, og det er
ligegyldig hvilken CPU du propper i - for CPU'en forstå opgaven, og
omsætter den dermed til dens egen kode. Det sidste, er endog en relativ
nemt måde, at få den
til at køre perfekt på andre computersystemer, og ofte vil den på en anden
processor køre bedre, end på softwaren den er lavet til. Det giver reelt
ikke forskel om du tager pentium kode, eller noget taget direkte til
CPU'en, fordi at pentium
koden fortolkes, og denne fortolker betragter koden som konstant, hvorved
der laves programmel til den - en såkaldt DFG
udfoldes på baggrund af konstenten programmet. Hvis programmet
modificeres, tages også højde for det, og det er reelt det
eneste som kan medføre noget tager lidt tid - da findes det sted i
programmet, hvor noget ændres, og der sættes en "mærke" på, så den når der
kommer til sådan et sted, automatisk medfører genoversættelser. Systemet
består af en række data flow grafer, som har en stam dataflow graf, og det
er den der så er årsag, til under dataflow graferne. Når en af disse
"overskrives", har den stadig en stamfar, som der kan producere en ny, og
dermed undgås at det ikke fungere, trods at en konstant modificeres, mod
forventningen.
Det, at opnå, at "verden" går hurtigere, formodes at nemt kan have haft
mulig betydning, også før livet. Og ligningerne hertil, behøver ikke at
være væsentlig sværre, end vi nemt kan kopiere det ind på en computer -
ihvertfald ikke, hvis vi kun ser på "computerverdenen", og dens løsninger.
Naturligvis kan vi ikke løse alt - og for matematik har mange ting taget
årtusinder. Men, de simple ting kommer hurtig - og noget kommer så
herefter. Reelt vil systemet selv gå på jagt efter nye triks, ude i
matematikken, når det kodes dertil. Og måske også i "logikken", for at
programmere sig selv perfekt.
Systemer som ovenstående har været udviklet i adskillige år, og findes til
f.eks. workstations.
Det som er interessant - syntes jeg - er at det formentlig med "små
midler" er muligt at opnå udregning og gennemskuning ind i en fremtid
hurtigere, end en "computer" der gør det step by step kan. Og det er
dermed metoder, som formentlig kan være en
del af det tidligere liv - og måske også langt før. Vi kan i princippet
forestille os det, også i systemer, som ikke har med
computere at gøre, og i ethvert univers, som ikke består af atomer, men
hvor logiske formler er mulige, og hvor det findes en ulempe, som skal
udfases, såsom f.eks. forsinkelsen. Løsningen heraf, er derefter en
selvoptimerende process, som går hurtig.
Man kan også lade programmet køre på sig selv, så den optimerer sig selv -
men det behøver det vist ikke at være grund til, da jeg mener det er gjort
"uendelig" mange gange, allerede. Og hvor at en ekstra gang dermed ikke
giver mere.
Hvis vi f.eks. tror på, at et matematisk univers kan have eksisteret før
kvantemekanikken, og at løsningerne hertil, er løst, før kvantemekanikken
kan have opstået, og været mulig, da det jo ikke kan have været en umulig
løsning - for så havde vi ikke været til - så kan man måske også
forestille sig, at samme "matematik", som må have været før universet, har
kunnet løse ting, som f.eks. optimal hastighed, udfra opsætning af
aksiomer. Og dermed være opstået før kvantemekanikken og atomer.
|