Transcript 3 paskaita

Intelektikos pagrindai
P176B100
2012 m
Robertas Damaševičius
robertasdamasevicius@ktult
1
Pagrindiniai robotų valdymo
metodai ir algoritmai
2
Robotų valdymo algoritmai








Elgsena grįsti algoritmai
Būsenomis (baigtiniais automatais) grįsti algoritmai
PID - valdymo algoritmas
Fuzzy – neraiškios logikos valdymo algoritmai
Dirbtiniai neuroniniai tinklai
Genetinio programavimo algoritmai
Evoliuciniai skaičiavimai
Tikimybiniai algoritmai
3
Elgsenomis pagrįstas judėjimo
valdymas



Robotas aprūpinamas keletu paprastųjų elgsenų,
kurias gerai moka
Esant tam tikroms situacijoms, jis jas kaitalioja
Modelį sudaro 5 paprastosios elgsenos:





klaidžiojimas (važinėjimasis) aplinkoje,
kliūčių vengimas,
važiavimas pakrauti bateriją,
važiavimas palei sieną,
važiavimas sekant išsiskiriančios spalvos liniją
4
Elgsenomis pagrįstos valdymo
sistemos modelis
5
Roboto elgsenos






Bendroji roboto elgsena susiformuoja sąveikaujant
paprastosioms elgsenoms ir aplinkai, kurioje yra robotas
Paprastosios elgsenos yra realizuojamos kaip atskiros
valdymo sistemos dalys
Kiek ir kokių paprastųjų elgsenų reikės priklauso nuo aplinkos,
kurioje veiks robotas, ir nuo jam keliamų tikslų (uždavinių)
Numatyti ir aprašyti visas paprastąsias elgsenas – sunkus,
kūrybinis projektavimo uždavinys
Jei nebus įdiegtos visos reikalingos paprastosios elgsenos,
robotas gali pakliūti į situaciją, kurioje nežinos kaip elgtis ir
nesugebės atlikti jam pavestų užduočių
Kad sistema gerai funkcionuotų, turi būti užtikrintas paprastųjų
elgsenų parinkimo – keitimo mechanizmas
6
Elgsenos koordinavimas


Koordinavimo mechanizmas yra atsakingas už
elgsenų valdymą, ty jų įjungimą ir išjungimą
konkrečiu laiku, konkrečioje situacijoje
Koordinavimas gali būti atliekamas naudojant
konkurencijos arba kooperacijos metodus


Taikant konkuruojantį metodą, vienu metu įjungta būna tik
viena elgsena ir tik ji gali veikti roboto variklius
Taikant kooperuojantį metodą variklius įtakoti gali kelios
paprastosios elgsenos
7
Neadaptyvaus roboto valdymo
algoritmas




Įprastinėje situacijoje, robotas seka savo aplinką naudodamas
jutiklius
Šios reikšmės yra lyginamos su pageidaujamų reikšmių aibę,
kurią iš karto nustatė programuotojas
Priklausomai nuo jutiklių siunčiamų reikšmių nukrypimo nuo
pageidaujamų reikšmių, algoritmas nustato veiksmų seką ir
konvertuoją ją į vykdytuvams siunčiamų komandų seką
Veiksmai kartojami cikle tol, kol robotas pasiekia savo tikslą
8
Adaptyvaus valdymo algoritmas




Robotas saugo geriausias parametrų reikšmes atmintyje ir gali
jas modifikuoti
Saugomas jutiklių duomenų ir roboto veiksmų į juos sąrašas
Atėjus panašioms jutiklių reikšmėms į saugomas atmintyje,
robotas parenka praeityje sėkmingiausią atliktą veiksmą
Geresnis prisitaikymas prie besikeičiančių aplinkos sąlygų
9
Žmogaus elgsenos algoritmas

Skiriasi didesne atminties įtaka priimamiems
sprendimams
10
Robotų valdymo algoritmai







Būsenomis (baigtiniais automatais) grįsti algoritmai
PID - valdymo algoritmas
Fuzzy – neraiškios logikos valdymo algoritmai
Dirbtiniai neuroniniai tinklai
Genetinio programavimo algoritmai
Evoliuciniai skaičiavimai
Tikimybiniai algoritmai
11
Robotų programavimo algoritmai




Projektuojant robotų judėjimo valdymą susiduriama
su daugeliu problemų
Roboto judėjimas išvengiant kliūčių yra vienas
pagrindinių judėjimo uždavinių
Valdymo sistemos pagrindinis tikslas – sugretinti
planą/modelį su realia aplinka
Valdymo sistema gauna informaciją iš jutiklių, ją
apdoroja ir perduoda komandas valdymo varikliams
arba kitiems valdymo įrenginiams, kad jie veiktų
aplinką pagal numatytą planą
12
Būsenomis aprašoma valdymo sistema





Vienas iš būdų valdyti robotą – aprašyti būsenas, kuriose
jis yra, kai juda aplinkoje, į kurią yra patalpintas
Roboto judėjimas priklauso nuo to, kokioje būsenoje
konkrečiu laiko momentu yra robotas
Kiekviena būsena užprogramuojama tam tikra funkcija,
valdančia variklius Iš jutiklių gaunama informacija,
nustatoma, kurioje būsenoje yra robotas ir atitinkamai
reaguojama
Šis būdas pasiteisina kai robotas veikia nesudėtingoje
aplinkoje, kurioje yra nedaug kliūčių
Jei tik judėjimo erdvė pasidaro sudėtingesnė, paprasta ir
nesunkiai nusakoma valdymo sistema greitai gali tapti
sunkiai valdoma, neatlikti to, ko iš jos tikimasi
13
Pavyzdys







Robotas turi du į priekį nukreiptus atstumo jutiklius K ir D,
kad sugebėtų išvengti susidūrimų
Kuo jutiklių reikšmės K ir D mažesnės, tuo arčiau yra kliūtis
Galimi du režimai:
 miego – robotas išjungtas ir
 judėjimo – robotas aktyvus
Tarkime, kad roboto užduotis yra visą laiką judėti į priekį
Pirmiausia iš jutiklių gaunama informacija, nustatoma,
kurioje būsenoje yra robotas ir atitinkamai reaguojama
Judėjimas priklauso nuo būsenų, kuriose yra robotas
Kiekviena būsena užprogramuojama tam tikra funkcija,
valdančia variklius
14
Būsenomis paremtos valdymo sistemos
algoritmas

1 būsena: K < Astop ir D < Astop


2 būsena: K > Amax, D > Amax


Priekyje nėra kliūčių, robotas visu
greičiu juda tiesiai pirmyn
3 būsena: K < D


Robotas lėtina judėjimo greitį kol
sustoja ir išjungia variklius, jei dar
nėra to padaręs ir pereina į miego
režimą
Kairėje pusėje yra kliūtis, robotas
lėtėja ir suka dešinėn
4 būsena: D < K

Dešinėje pusėje yra kliūtis, robotas
lėtėja ir suka kairėn Kiekviena
būsena užprogramuojama tam tikra
funkcija, valdančia variklius
15
Algoritmo trūkumai (1)








Pagr. trūkumas: sistema neturi atminties
Robotas, nesugebantis mokytis iš
praeities klaidų yra priverstas jas
kartoti
Pavyzdžiui:
Robotas pastebėjęs dvi kliūtis negali
pravažiuoti tarp jų net jei tarpas yra
pakankamas
Robotas pastebėjęs kliūtį kairėje (3
būsena) pradeda sukti dešinėn
Užfiksavęs kliūtį dešinėje (4 būsena),
pradeda sukti kairėn
Po manevro jis vėl atsiduria 3 būsenoje
Robotui taip judant toliau jis gali patekti į
1 būseną arba dar blogiau – kliudyti
vieną iš kliūčių
16
Algoritmo trūkumai (2)



Atsižvelgiant į neseną praeitį
galime fiksuoti kurią nors vieną
būseną ir nurodyti robotui kurį
laiką suktis į vieną pusę
Pavyzdžiui:
Fiksavus, kad sistema perėjo iš
3 į 4 būseną arba iš 4 į 3
būseną ir tame tarpe nebuvo 2
būsenos, galima robotą priversti
suktis nuo kliūties kol bus
pasiekta 2 būsena
17
Patobulintas algoritmas

Įvestos 2 papildomos
būsenos:


5 būsena – “pabėgti
dešinėn”
6 būsena – “pabėgti
kairėn”
18
Būsenomis grįstų algoritmų trūkumai





Realus algoritmas bus labai sudėtingas ir
griozdiškas
Neįmanoma numatyti visų įmanomų elgesio
variantų
Labai sudėtinga ją projektuoti ir derinti
Sunku prižiūrėti, modifikuoti ir plėsti
Netinka dinamiškai kintančiose aplinkose
19
Robotų valdymo algoritmai







PID valdymo algoritmas
Fuzzy – neraiškios logikos valdymo algoritmai
Dirbtiniai neuroniniai tinklai
Genetiniai algoritmai
Induktyvus loginis programavimas
Mokymasis pastiprinimu
Sprendimų medis
20
PID valdymo algoritmai



PID (Proportional-Integral-Derivative) – valdymo
mechanizmas su grįžtamuoju ryšiu
Plačiai naudojamas pramoninėse valdymo
sistemose
Trys elementai:



Proporcinis – priklauso nuo dabartinės paklaidos
Integralo – priklauso nuo praeities paklaidų sumos
Išvestinės – prognozuojamos ateities paklaidos
priklausomai nuo dabartinio pokyčio tempo
21
Bendrinė PID schema
22
Pavyzdys: PID linijos sekimo algoritmas
Error = target_pos – current_pos
P = Error * Kp
I = I + Error
I = I * Ki
D = Error – Previous_error
Correction = P + I + D
//
//
//
//
//
calculate error
proportional constant
store accumulated error
calculate integral value
change in error to derivate
23
PID algoritmo realizacija
epsilon = 001;
dt = 001;
Kp = 5;
Kd = 3;
Ki = 001;
if(abs(error) > epsilon)
integral = integral + error*dt;
derivative = (error - pre_error)/dt;
output = Kp*error + Ki*integral + Kd*derivative;
pre_error = error;
24
PID parametrų įtaka tikslumui
Parametras didėja
Parametras
Augimo laikas Overshoot
Nusistovėjimo Paklaida
laikas
P
Mažėja
Didėja
Mažai keičiasi Mažėja
I
Mažėja
Didėja
Didėja
D
Neapibrėžtas
Mažėja
Mažėja
Nėra
25
PID valdiklio variantai



P valdiklis
PI valdiklis
PD valdiklis
26
Pavyzdys: P valdiklis
Kp = 10
! Inicializuojami kintamieji
offset = 45
Tp = 50
Loop forever
LightValue = read light sensor
! Šviesos jutiklio reikšmė
error = LightValue - offset
! Nuokrypis
Turn = Kp * error
! Variklio galios pokytis
powerA = Tp + Turn
! Galia A varikliui
powerC = Tp - Turn
! Galia C varikliui
MOTOR A direction=forward power=powerA
MOTOR C direction=forward power=powerC
end loop forever
27
P valdiklio problemos



Šviesos jutiklių jautrumo šviesai diapazonas turi būti
platus
Turi būti greitas atsakas iš jutiklių ir variklių.
Jei yra didelė delsa, roboto veiksmai atsilieka nuo P
valdiklio komandų, todėl tiksliai valdyti robotą yra
sudėtinga
28
PI valdiklis: pavyzdys
Kp = 10
Ki = 1
offset = 45
! Inicializuojami kintamieji
Tp = 50
integral = 0
Loop forever
LightValue = read light sensor
! Šviesos jutiklio reikšmė
error = LightValue - offset
! Nuokrypis
integral = integral + error
Turn = Kp*error + Ki*integral
! Galios pokytis
powerA = Tp + Turn
! Galia A varikliui
powerC = Tp - Turn
! Galia C varikliui
MOTOR A direction=forward power=powerA
MOTOR C direction=forward power=powerC
end loop forever
29
PID Lego NXT
30
Multi-PID



Valdymo sistemoje gali būti keli PID valdymo algoritmai
Padėčiai valdyti
Greičiui valdyti
Šaltinis: Zhijun Sun, Rentao Xing, Chunsheng Zhao, Weiqing Huang.
Fuzzy auto-tuning PID control of multiple joint robot driven by ultrasonic motors
31
PID įvertinimas

Pranašumai:


Didesnis tikslumas nei tiesioginio (proporcinio)
valdymo
Trūkumai:


Sudėtinga parinkti PID koeficientų reikšmes
D koeficientas labai jautrus triukšmui
32
Robotų valdymo algoritmai






Fuzzy – neraiškios logikos valdymo algoritmai
Dirbtiniai neuroniniai tinklai
Genetiniai algoritmai
Induktyvus loginis programavimas
Mokymasis pastiprinimu
Sprendimų medis
33
Miglotąja (fuzzy) logika grįstas
valdymas



Teoriją suformulavo L.A. Zadeh 1965 m.
Naudojama, kai reikia dirbti su netikslia
informacija
Pvz.:
34
Būlinė logika ir Miglotoji logika


Būlinėje logikoje teiginio reikšmė gali būti
tik 100% “TRUE” arba “FALSE”
Miglotoje logikoje teiginiai gali būti iš dalies
teisingi arba iš dalies klaidingi
35
Būlinė logika ir Miglotoji logika


Būlinė logika:
A(x) = 1 if x  A and
A(x) = 0 if x A
Miglotoji logika:
A(x) = [0,1]
36
Pavyzdys
37
Miglotosios logikos operatoriai (1)

ARBA: A  B = max {A,B}
38
Miglotosios logikos operatoriai (2)

IR: A  B = min{AB}
39
Miglotosios logikos operatoriai (3)

NE: ’A = 1 - A(x)
40
Miglotąja logika grįsta valdymo sistema


Veikia naudodama ML taisyklių
rinkinį
Struktūra




Fuzzifier: daviklių reikšmėms priskiria ML
reikšmes
ML žinių bazė: IF-THEN tipo taisyklių
rinkinys
ML loginis įrenginys: pritaiko taisykles iš
ML žinių bazės
Defuzzifier: pagal ML išėjimo reikšmes
sukuria vykdiklių valdymo komandų seką
41
ML valdymo pavyzdys

ML taisyklė
IF priekyje-artima-kliūtis AND NOT kairėje artima-kliūtis
THEN staigus posūkis-į-kairę
Šaltinis: Meng Wang, James N.K. Liu.
Fuzzy logic-based real-time robot navigation in unknown environment with dead ends
42
Hibridinis PID-Fuzzy valdymo algoritmas

PI + ML valdiklis
Šaltinis: S. Paramasivam , R. Arumugam. Hybrid fuzzy controller for speed control of switched reluctance motor drives.
43
Hibridinis PID-Fuzzy
valdymo algoritmas
44
Robotų valdymo algoritmai




Dirbtiniai neuroniniai tinklai
Genetinio programavimo algoritmai
Evoliuciniai skaičiavimai
Tikimybiniai algoritmai
45
Dirbtinis neuroninis tinklas (DNT)



Dirbtinis neuroninis tinklas – tarpusavyje
sujungtų dirbtinių neuronų grupė.
Imituoja žmogaus nervų sistemos – neuronų
tinklo – darbą
Iš esmės yra klasifikatorius – parenka išėjimų
(sprendimų) reikšmes priklausomai nuo įėjimų
reikšmių
46
Tipinio DNT architektūra robotikoje
47
DNT

Atlikus apmokymą, variklių greičiai apskaičiuojami
pagal šią formulę:
kur:
wij yra svoriai,
si yra jutiklių signalų reikšmės ir
f yra greitį skaičiuojanti funkcija
48
DNT architektūrų įvairovė
49
Daugiasluoksnė DNT valdomo roboto
architektūra
Šaltinis: L. Acosta, G.N. Marichal, L. Moreno, J.J. Rodrigo, A. Hamilton, J.A. Mendez.
A robotic system based on neural network controllers
50
Hibridinė (PID + DNT) architektūra


ϕd – pageidaujama roboto padėtis
τ – valdymo instrukcijos
Šaltinis: S̨ahin Yıldırım. Adaptive robust neural controller for robots
51
Robotų apmokymas (1)



Ilgai trunkantis ir brangus procesas
Įprasta pirmiau apmokyti robotą kaip programinį
agentą virtualioje aplinkoje ir tik pasiekus norimus
rezultatus visa, kas išmokta, perkelti į tikrą robotą
Roboto elgsenos modeliavimas virtualioje aplinkoje
turi daug privalumų:





pigiau kainuoja,
roboto mokymas vyksta žymiai sparčiau nei realiomis
sąlygomis,
prireikus lengva keisti dirbtinio neuroninio tinklo struktūrą,
nesidėvi ir negadinamas pats robotas,
nereikia iš roboto siųsti duomenų į centrinį kompiuterį,
mokymo metu net nebūtina turėti paties roboto
52
Robotų apmokymas (2)




Sistema yra sudėtingesnė už anksčiau aprašytas, bet tuo
pačiu ir lankstesnė bei universalesnė
Pagrindiniai šios sistemos bruožai: ją reikia apmokyti ir ji gali
evoliucionuoti
Mokymas – vienas iš sudėtingiausių procesų evoliucinių
robotų technikoje Iki šiol nėra sukurta efektyvių mokymo
algoritmų
Dažniausiai mokoma bandymų – klaidų metodu Neuroninių
tinklų mokymas iš esmės yra tinklo svorių optimizavimas
53
Robotų apmokymas (3)




Robotų mokymas pagrįstas idėja, kad valdymo sistema –
dirbtinis neuroninis tinklas – gali būti išmokomas
naudojant nepilnus duomenis
Tai reiškia, kad mokoma tik pagal turimus duomenis, nes
paprastai neturima duomenų, kaip robotas turi elgtis
kiekvienoje situacijoje
Jeigu turima mažai mokymo duomenų, reikia vengti
tinklo permokymo, nes tada robotui bus sunku prisitaikyti
prie staiga ėmusių keistis aplinkos sąlygų
Po apmokymo dirbtiniam neuroniniam tinklui leidžiama
apibendrinti ir taikyti įgytas žinias, kai robotas atsiduria
situacijose, kuriose dar nėra buvęs
54
Robotų apmokymas (4)



Evoliucionuojanti valdymo sistema yra pranašesnė
už tikslų, nekintantį, roboto suprojektavimą
Jį įgalina robotą prisitaikyti prie kintančios aplinkos ir
prie naujų jos savybių
Taikant šią valdymo sistemą nereikia numatyti visų
situacijų, į kurias gali pakliūti robotas, todėl ji
pranašesnė už būsenomis pagrįstą valdymo sistemą
55
Robotų apmokymo strategijos
Prižiūrimas apmokymas
Remiantis pageidaujamos elgsenos
pavyzdžiais (x’,y’), sukonstruoti
elgsenos funkciją y=F(x)
 Priverstinis apmokymas
Robotas, esantis būsenoje s(t) vykdo
veiksmus a(t) Reikia rasti strategiją
a=G(s(t)), kuri maksimizuoja naudos
funkciją
 Neprižiūrimas apmokymas
Duotas tik pradinių duomenų rinkinys
Reikia sukonstruoti išėjimo funkciją,
kurios statistinės charakteristikos
atitinka pradinių duomenų
charakteristikas

56
Kompleksinis apmokymas
Dynamic Brain Project
http://wwwcnsatrjp/erato/indexhtml

57
Robotų valdymo algoritmai


Evoliuciniai / Genetinio programavimo algoritmai
Tikimybiniai algoritmai
58
Evoliuciniai skaičiavimai (ES)



Apima genetinius algoritmus (GA), evoliucijos strategijas ir
evoliucinį programavimą (EP).
Remiasi fundamentaliais “natūralios evoliucijos” principais.
Terminai buvo pasiskolinti iš biologijos ir genetikos,



“individai” (arba “genotipai”, “struktūros”) populiacijoje yra
vadinami “chromosomomis” (arba “eilutėmis”),
“genai” (ar “savybės”, “tipai”, “šifratoriai”) yra chromosomų
elementai (arba vienetai).
Evoliucinė programa yra tikimybinis algoritmas, kuris aprašo
individų populiaciją P(t) = x1(t),...,xn(t), kur t žymi iteracijų
skaičių.
59
Tipinis ES algoritmas
Pradžia
t
<
-
0
u
ž
d
u
o
t
i
s
k
a
i
č
i
u
o
p
r
t
i
a
d
i
n
e
P
(
t
)
s
P
(
t
)
r
kol (neįvykdyta sąlyga
P
a
b
a
i
g
c
i
k
l
o
t
-
>
t
+
1
i
š
r
i
n
p
e
r
r
s
k
a
c
i
k
p
r
k
t
i
i
n
k
t
i
i
č
i
u
o
t
i
l
o
p
a
b
a
a
d
ž
i
a
P
(
t
)
P
(
t
)
P
(
t
g
a
i
i
š
e
i
–
P
(
k
š
m
e
s
r
i
b
a
)
t
+
1
)
s
k
a
i
č
i
u
o
t
i
)
a
60
ES procedūra
1) Problema apibrėžiama kaip n-mačio realių skaičių vektoriaus
XR’, kuris maksimizuoja tikslo funkciją F(X), paieška.
2) Pradinių vektorių Xi, i = 1,...,P, populiacija atsitiktinai
parenkama iš kiekvieno kintamojo galimų reikšmių intervalo.
3) Rezultatų vektorius, Xi’, i = 1,...,P, gaunamas prie kiekvieno
vektoriaus tėvo Xi atsitiktinį dydį, pasiskirsčiusį pagal Gauso
pasiskirstymą su nuliniu vidurkiu.
4) Lyginant paklaidas F(Xi) ir F(Xi’), i = 1,...,P išrenkamas vienas
vektorius. P vektoriai su mažiausia paklaida tampa naujais kitos
kartos tėvais.
5) Iteracijos 2-3 kartojamos tol, kol gaunamas pakankamas
sprendinys ar baigiasi duotas skaičiavimo laikas.
61
Genetiniai algoritmai

Algoritmai, paremti gamtoje egzistuojančiais gyvybės
evoliuciniais mechanizmais:






paveldėjimas,
mutacija,
natūralioji atranka
rekombinaciją (crossover)
Vykdoma tam tikros programų populiacijos
(chromosomų) ir sprendimų kandidatų (individų)
evoliucija artėjant prie geriausio užduoties sprendimo
Leidžia rasti apytikslį užduoties sprendimą, kai tikslaus
sprendimo algoritmai nežinomi.
62
Genetiniai algoritmai (GA)
1) Apibrėžiama problema ir aprašoma tikslo funkcija.
2) Atsižvelgiant į apribojimus sugeneruojama galimų sprendimų X
populiacija. Vektorius X - “chromosoma”, o jo elementai - “genai”.
3) Kiekviena populiacijos chromosoma, Xi, i = 1,...,P, dekoduojama į
formą, tinkamą skaičiavimui, ir jai priskiriama vertė atitinkanti tikslo
funkciją.
4) Kiekvienai chromosomai priskiriama reprodukcijos tikimybė Pi, i =
1,...,P.
5) Iš esamos populiacijos sukuriama nauja chromosomų populiacija
naudojant genetinius operatorius, kaip “kryžminimas” ir “mutacija”.
Kryžminimas taikomas 2 chromosomom (tėvams) ir sukuria 2
naujas chromosomas (vaikus) parenkant atsitiktinę vietą
dvejetainiame kode ir sujungiant dalį pirmos eilutės prieš
pasirinktą vietą su dalimi antros eilutės po pasirinktos vietos
Mutacija leidžia pakeisti bet kurį bitą naujo sprendimo kodo eilutėje
6) Procesas nutraukiamas, jeigu randamas tinkamas sprendimas arba
baigiasi užduotas skaičiavimo laikas. Priešingu atveju procesas
pereina į 3 žingsnį ir ciklas kartojamas.
63
Tipinis GA
Pradžia
g
:
=
0
S
u
k
u
Į
v
e
r
k
o
l
g
:
/
/
r
t
i
t
i
n
n
e
=
g
+
kartų skaitliukas
p
t
i
a
t
o
l
p
u
l
i
a
c
i
j
ą
p
o
p
u
l
i
a
c
i
i
k
t
a
P
j
(
ą
g
)
P
(
g
g
)
/
/
s
u
s
k
a
i
č
i
u
o
t
i
t
i
k
s
l
o
f
-
j
o
s
r
e
i
k
š
m
e
s
1
Pasirinkti P(g) iš P(g  1)
Atlikti P(g) kryžminimą
A
t
l
i
k
t
i
P
(
Įvertinti
P
a
c
i
k
l
o
b
a
i
g
a
k
o
l
p
a
g
)
m
P
(
g
)
b
a
i
g
u
t
a
c
i
j
ą
a
64
Genetinio programavimo algoritmas
Šaltinis: http://www.genetic-programming.com/gpflowchart.html
65
Evoliucinė robotika





Roboto valdymo parametrai interpretuojami kaip
genetinis kodas.
Imituojama ir įvertinama (naudojant „gerumo funkciją“)
roboto elgsena
Individai su aukštesniu įvertinimu kopijuojami į sekančios
kartos populiaciją.
Individai mutuojami.
... Po kelių tūkstančių kartų: gaunamas „beveik geras“
roboto valdymo parametrų rinkinys
66
Evoliucinė robotika
Šaltinis: Rohde, M. (2010).
Enaction, Embodiment, Evolutionary Robotics. Simulation Models in the Study of Human Cognition, Ch. 3
Series: Thinking Machines, Vol. 1, Amsterdam, Beijing, Paris: Atlantis Press.
67
Evoliucinio apmokymo ciklas
68
Apmokymas naudojant genetinį algoritmą




Reikia svorius užkoduoti chromosomomis ir ieškoti
optimalių jų reikšmių
Svoriai randami mokymo metu, tačiau mokymui
reikalingas papildomas laikas: mokymas nėra spartus
Rasti optimalūs svoriai, kurie robotui leis judėti
kokybiškai
Pavyzdys:




Reikia surasti 16 svorių
Kiekvieną jų galime užkoduoti, pvz., 8 genais,
chromosoma (individas) būtų sudaryta iš 16*8=128 genų
Priklausomai nuo robotui keliamų uždavinių reikia sukonstruoti
tikslo funkciją ir ją optimizuoti
69
Roboto apmokymo genetinio
algoritmo pavyzdys
ObstaclesCreate;
PopulationBuild;
for 1 to NUMBER_GENERATIONS do begin
for 1 to RUNS_PER_GENERATION do begin
for 1 to MAX_NUMBER_STEPS do begin
ROBOTSMove
end
ObstaclesRecreate;
end
RobotsEvaluate
RobotsReproduce;
RobotsCrossover;
RobotsMutate;
end
70
Genetiniai operatoriai (1)
71
Genetiniai operatoriai (2)

Dauginimosi operatorius:



Kryžminimosi operatorius:


Geriausi individai pakeičia blogesnius individus
Kopijuojami individai parenkami atsitiktinai
Du individai apsikeičia informacija ir sukuriami nauji
individai, kurie gali būti geresni arba blogesni
Mutacijos operatorius:



Pakeičiamos atsitiktinės genų reikšmės
Įtakoja tik vieną individą
Padeda išeiti iš lokalaus minimumo
72
Tikslo funkcija

Apibrėžiama kaip svorinė baudų funkcija:
gerumas = susidurimų_svoris x susidūrimų_skaičius +
laiko_svoris x žingsnių_skaičius +
atstumo_svoris x nukeliautas_atstumas

Keičiant svorius galima parinkti 3 strategijas:
Saugi: siekiant tikslo vengti klūčių
Greita: kuo greičiau pasiekti tikslą
Trumpa: parinkti kuo trumpesnį kelią

73
Robotų valdymo algoritmai

Tikimybiniai algoritmai
74
Tikimybiniai algoritmai



Robotų daviklių gaunama informacija yra
netiksli, nepilna, užteršta triukšmo
Robotas kuria apytikslį (tikimybinį)
programavimo modelį
Tokio modelio parametrus galima
apskaičiuoti iš aplinkos duomenų
75
Statistinė (tikimybinė) robotika
Šaltinis: http://www.robotics.sk
76
Judėjimo neapibrėžtumas
77
Pavyzdys




Robotas bando nustatyti ar durys atidarytos
Gauna rezultatą z
Kokia yra tikimybė P(open|z)?
P(x | y) yra x tikimybė, kai žinomas y
P(x | y) = P(y | x) * P (x) / P(y)
(Bajeso formulė)
78
Pavyzdys


P(z|open) = 0.6
P(z|open) = 0.3
P(open) = P(open) = 0.5
P( z | open) P(open)
P(open| z ) 
P( z | open) p(open)  P( z | open) p(open)
0.6  0.5
2
P(open| z ) 
  0.67
0.6  0.5  0.3  0.5 3
79
Literatūra


Hitoshi Iba. Frontiers in Evolutionary
Robotics. I-Tech Education and Publishing,
Published: April 01, 2008.
http://www.intechopen.com/books/frontiers_in_e
volutionary_robotics
M.R.W. Dawson, B. Dupuis, M. Wilson. From
Bricks to Brains. AU Press.
http://www.aupress.ca/books/120175/ebook/99Z_Dawso
n_et_al_2010-From_Bricks_To_Brains.pdf
80