intelektikos pagrindai

36
Intelektikos pagrindai P160B100 2012 m. Robertas Damaševičius [email protected]

Upload: sally

Post on 13-Jan-2016

109 views

Category:

Documents


3 download

DESCRIPTION

Intelektikos pagrindai. P160B100 2012 m. Robertas Damaševičius r obertas.damasevicius @ktu.lt. Tipinio roboto programavimo pavyzdys: Braitenbergo mašina. Turinys. Tipin ė roboto strukt ū ra Braitenbergo mašina – gerai žinomas teorinis roboto modelis Braitenbergo mašinos programavimas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Intelektikos pagrindai

Intelektikos pagrindai

P160B1002012 m.

Robertas Damaševičius [email protected]

Page 2: Intelektikos pagrindai

Tipinio roboto programavimo

pavyzdys:

Braitenbergo mašina

Page 3: Intelektikos pagrindai

Turinys

Tipinė roboto struktūra Braitenbergo mašina – gerai žinomas teorinis

roboto modelis Braitenbergo mašinos programavimas Braitenbergo mašina ir kvantiniai skaičiavimai

Page 4: Intelektikos pagrindai

Tipinė roboto struktūra (1) Jutimas – renka ir apdoroja iš jutiklių gaunamą

informaciją Modelio sukūrimas – kuria savo aplinkos modelius tikslu

judėti aplinkoje ir planuoti savo veiksmus Sprendimas – remiantis savo jutiklių pateikta informacija

pasirenka tinkamą veiksmą Planavimas – iš vartotojo nustatytų tikslų sukuria

tikslams reikalingų pasiekti veiksmų seką

Page 5: Intelektikos pagrindai

Tipinė roboto struktūra (2) Veikimas – pageidaujamo veiksmo konvertavimas į

atitinkamą fizinį veiksmą (pvz., judesį) Valdymas – atlieka dabartinio veiksmo pasirinkimą iš

turimos veiksmų sekos Vadovavimas – atliekamas roboto elgsenų ir

komponentų įjungimas, išjungimas ir konfigūravimas Veiksmo pasirinkimas – tinkamiausio veiksmo

pasirinkimas iš kelių galimai tinkamų veiksmų variantų

Page 6: Intelektikos pagrindai

Braitenberg’o mašina

Jei roboto forma yra simetrinė bent vienos ašies atžvilgiu ir jis turi du ratus, tai judėjimą galima realizuoti Braitenberg’o mašinos modeliu.

Braitenberg’o mašina yra paprasčiausias mobilus robotas.

Page 7: Intelektikos pagrindai

Braitenberg’o mašinos dalys

Buferis

Kairysis fotoelementas

Dešinysis fotoelementas

Dešinysis IRdaviklis

Kairysis IRdaviklis

Ratai

• Buferis nustato, ar įvyko susidūrimas.• Sienos nepraleidžia šviesos.• Sienos atspindi infraraudonuosius spindulius.• Šviesos šaltiniai pakabinti lubose.

Page 8: Intelektikos pagrindai

Braitenberg’o mašina

Ratai yra tiesiogiai sujungti su atstumo jutikliais įvedant jiems svorius panašiai kaip dirbtiniuose neuroniniuose tinkluose.

Kiekvienam ratui valdyti, gaunamos jutiklių vertės padauginamos iš svorių, o sandaugos susumuojamos.

Gauti rezultatai perduodami ratų motorams. Jeigu jungtis yra teigiama (stiprinanti), rato sukimosi greitis

yra proporcingas jutiklio signalo vertei. Jeigu jungtis yra neigiama (slopinanti), rato sukimosi greitis

yra priešingai proporcingas jutiklio signalo vertei. Jeigu į ratą ateina neigiamas suminis signalas – ratas

pradeda suktis atgal.

Page 9: Intelektikos pagrindai

Pagrindiniai principaiJei signalas slopinamas, robotas artėja link šviesos

Minuso ženklas reiškia neigiamą grįžtamąjį ryšį

Page 10: Intelektikos pagrindai

Jei slopinami signalai sukryžiuoti, robotas tolsta nuo šviesos

Pagrindiniai principai

Page 11: Intelektikos pagrindai

Paprasčiausios Breitenberg‘o mašinos a) Kiekvienas jutiklis sujungtas su varikliu toje pačioje pusėje b) Kiekvienas jutiklis sujungtas su varikliu priešingoje pusėje c) Kiekvienas jutiklis sujungtas su varikliais abejose pusėse

Page 12: Intelektikos pagrindai

Braitenberg‘o tipo valdymo sistemos struktūra Bendruoju atveju gali būti daug

jutiklių Kiekviena jungtis gali būti:

stiprinanti (didinanti rato variklio greitį; žymima „+“) arba

silpninanti (mažinanti rato variklio greitį; žymima „-„)

Storesnės jungčių linijos rodo, kad iš jutiklių perduodamos reikšmės motorams turi didesnius svorius

Page 13: Intelektikos pagrindai

Breitenberg‘o mašinos elgsenos tipai

1) „Gyvybė“ 2a) “Baimė” 2b) “Agresija”

3) “Meilė”

1

2a 2b 3

Page 14: Intelektikos pagrindai

Braitenbergo mašinos elgsena: “gyvybė” 1-tipo mašina gali važiuoti tik tiesiai Judėjimo greitis proporcingas jutiklio

grąžinamai reikšmei

Page 15: Intelektikos pagrindai

Braitenbergo mašinos elgsena: “baimė” 2a-tipo mašina su stiprinančiomis jungtimis

stengiasi patekti į zoną, kurioje jos jutikliai bus mažiau aktyvuojami

Jeigu jutikliai reaguoja į šviesą, tuomet jutiklis esantis arčiau šviesos šaltinio privers atitinkamą ratą suktis greičiau ir robotas nusuks į šoną, tuo pademonstruodamas “baimės” elgseną.

Page 16: Intelektikos pagrindai

Braitenbergo mašinos elgsena: “agresija” 2b-tipo mašina su stiprinančiomis jungtimis

stengsis artėti prie šviesos šaltinio, tuo demonstruodama “agresijos” elgseną

Page 17: Intelektikos pagrindai

Braitenbergo mašinos elgsena: “meilė” 3-tipo mašina su silpninančiomis

jungtimis stengsis artėti prie šviesos šaltinio

Artėjant varikliai veiks vis silpniau, todėl robotas visą laiką bus šviesoje atsigręžęs į šviesos šaltinį, tačiau niekada nepasieks jo, tuo demonstruodamas “meilės” elgseną.

Tyrinėtojo elgesys Jei aptinka stipresnį šviesos šaltinį,

pradeda artėti prie jo

Page 18: Intelektikos pagrindai

4 tipo mašina Turi „vertybes“ (instinktus) 4a tipas: Variklio aktyvavimo funkcija yra

netiesinė (nemonotoninė), pvz., pasiekus max reikšmę vėl mažėja

Elgesys tampa sudėtingu: mašina artėja prie šviesos šaltinio, o po

to vėl nutolsta arba sukasi aplink šaltinį tam tikru

spinduliu 4b tipas: aktyvavimo funkcija yra trūki

esant tam tikroms reikšmėms, mašina sustoja

Page 19: Intelektikos pagrindai

Sudėtingos Braitenbergo mašinos 5: Logika

Įvedamos loginės elgesio taisyklės Atminties pradmenys

6: Pasirinkimas Įvedamas atsitiktinumo pasirenkant faktorius Pvz., realizuojami genetiniai algoritmai

7: Koncepcijos Mašina gali mokytis Gali pati modifikuoti savo jungtis tarp jutiklių ir variklių Gali būti realizuota naudojant Hebb learning algoritmą

8: Erdvė Robotas turi jutiklius ir algoritmus reikalingus žemėlapiui sudaryti

Page 20: Intelektikos pagrindai

Sudėtingos Braitenbergo mašinos 9: Formos

Robotas gali atpažinti išorinių daiktų formas

10: Samprotavimas Robotas iš loginių teiginių gali išvesti naujus teiginius (elgesio taisykles) 11: Taisyklės Robotas pats gali susidaryti pasaulio modelį

12: Reflektyvumas Robotas žino savo „mąstymo“ taisykles (būsenas) ir pats gali keisti jų

parametrų reikšmes

13: Numatymas Robotas gali prognuozuoti savo veiksmus ir aplinkos būseną ateityje

14: Malonumas Robotas pats gali pasirinkti savo būsimą būseną

Page 21: Intelektikos pagrindai

Change the vehicle behavior?

Elgseną valdo doSenseLogic() metodas

// Sensor output goes directly to wheel on same side void doSenseLogic() { setASpeed(sA.getSense()); setBSpeed(sB.getSense()); }

// Sensor output crossed to wheel on opposite side /* void doSenseLogic() { setASpeed(sB.getSense()); setBSpeed(sA.getSense()); }*/

// Each sensor goes to wheel on same side with an inhibitory connection /* void doSenseLogic() { setASpeed(sA.getInverseSense()); setBSpeed(sB.getInverseSense()); } */

// Each sensor goes to wheel on opposite side with an inhibitory connection /* void doSenseLogic() { setASpeed(sB.getInverseSense()); setBSpeed(sA.getInverseSense()); } */

// Sensors are hooked up to opposite motors, with threshhold sensing. /* void doSenseLogic() { setASpeed(sB.getNonlinearSense()); setBSpeed(sA.getNonlinearSense()); } */

Page 22: Intelektikos pagrindai

Braitenbergo mašinos valdymo architektūra

Jutikliai

Vykdikliai

Loginės taisyklės

AplinkaAplinka

Page 23: Intelektikos pagrindai

Braitenbergo automatas

Jutikliai

Vykdikliai

Loginės taisyklės

Atm

ntisAplinkaAplinka

Page 24: Intelektikos pagrindai

Modeliavimas

Braitenbergo mašiną galima modeliuoti naudojant įvairaus tipo signalus Analoginius Dvejetainius Daugiareikšmius Miglotosios logikos Kvantinius

Page 25: Intelektikos pagrindai

Kvantiniai skaičiavimai

Klasikiniai kompiuteriai skaičiavimams naudoja bitus, kurių reikšmė gali būti 0 arba 1.

Kvantiniai kompiuteriai skaičiavimams naudoja kubitus (qubits), kurių reikšmė gali būti: 0 arba 1 arba 0 ir 1 superpozicija

Teorinis pagrindas: kvantinė mechanika (fizika)

Page 26: Intelektikos pagrindai

Jutiklia

i

vykdikliai

Miglotosios logikos blokas

Kvantinių skaičiavimų

blokasKvantinė

atmintis

APLINKAAPLINKA

ML

atmintis

F/Q

Q/F

Hibridinė Hibridinė architektūra su architektūra su ML ir kvantinės ML ir kvantinės logikos logikos posistemėmisposistemėmis

Page 27: Intelektikos pagrindai

Breitenberg‘o mašinos algoritmas (Java) float l = MINIMAL_SPEED;

float r = MINIMAL_SPEED;

/* turn away from obstacles */ l = l + GetProximitySensor(FRONTLEFT) - GetProximitySensor(FRONTRIGHT); r = r + GetProximitySensor(FRONTRIGHT) - GetProximitySensor(FRONTLEFT);

/* turn towards light sources */ r = r + GetLightSensor(LEFT) - GetLightSensor(RIGHT); l = l + GetLightSensor(RIGHT) - GetLightSensor(LEFT);

/* normalize speed to [-1 ; +1] */ l = l / (4f + MINIMAL_SPEED); r = r / (4f + MINIMAL_SPEED);

/* set the motors */ SetMotorSpeed(LEFTMOTOR,l); SetMotorSpeed(RIGHTMOTOR,r);

Page 28: Intelektikos pagrindai

MotorTest.java

import josx.platform.rcx.*;

class MotorTest {

static final int STOP = 0;static final int RUN = 1;static final int FLOAT = 2;

static int mode = STOP;static int power = 0;

public static void main(String [] args) {setupButtonListeners();

while (true) {if (mode == RUN) {

Motor.A.setPower( power ); Motor.A.forward();

} else if (mode == STOP) {Motor.A.stop();

} else if (mode == FLOAT) {Motor.A.flt();

}}

}... (button listener code not shown)

Page 29: Intelektikos pagrindai

LightTest.javaimport josx.platform.rcx.*;

class LightTest implements SensorConstants {

public static void main(String [] args) throws InterruptedException{

Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT);

Sensor.S1.activate();

while (true) {int lightReading;

if (Button.VIEW.isPressed()) {lightReading = Sensor.S1.readRawValue();

} else {lightReading = Sensor.S1.readValue();

}

LCD.showNumber( lightReading );}

}

}

Page 30: Intelektikos pagrindai

Aggressive.javaAggressive.java class aggressive implements SensorConstants {public static void main(String [] args) {

int minBright = 100;final int gain = 12;

Sensor.S1.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT);Sensor.S1.activate();Sensor.S3.setTypeAndMode (SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT);Sensor.S3.activate();

for (int i = 0; i < 100; i++) { if (Sensor.S1.readValue() < minBright) { minBright = Sensor.S1.readValue(); }

else if (Sensor.S3.readValue() < minBright) { minBright = Sensor.S3.readValue(); }

Thread.sleep(20);}

Motor.A.forward();Motor.C.forward();

while (true) {int motorASpeed = (Sensor.S3.readValue() - minBright) / gain;int motorCSpeed = (Sensor.S1.readValue() - minBright) / gain;setMotorSpeed(Motor.A, motorASpeed);setMotorSpeed(Motor.C, motorCSpeed);

}}

Page 31: Intelektikos pagrindai

Aggressive.java (continued)protected static void setMotorSpeed(Motor m, int motorSpeed){

if (motorSpeed < 1) {m.flt(); // importantLCD.showNumber(-1);

} else {if (motorSpeed > 7) {

motorSpeed = 7;}m.forward();m.setPower(motorSpeed);LCD.showNumber(motorSpeed);

}}

}

Page 32: Intelektikos pagrindai

Įvertinimas

Breitenberg‘o mašina įrodo, kad net ir paprastos architektūros robotas gali turėti sudėtingą elgseną, panašią į primityvių biologinių būtybių (pvz., vabzdžių) elgseną.

Page 33: Intelektikos pagrindai

ĮvertinimasĮvertinimas

• Braitenberg‘o mašina paprastų elgsenų pagalba leidžia modeliuoti emocijas

• Emocijos (sudėtinga elgsena) modeliuojamos kaip paprastų elgsenų (artėti/tolti nuo šviesos šaltinio) sintezė

• Tokio tipo sistemą Brooks‘as vadino intelektualia

• Emocijos atsiranda savaime, kaip elgesio sudėtingėjimo (evoliucijos) pasekmė

Page 34: Intelektikos pagrindai

Breitenberg‘o mašinos simuliatoriai Java applet‘ai

http://www.ifi.unizh.ch/~llicht/newsimu/SimApplet.html http://www.ai.rug.nl/~gert/applets/braitenbergJRE/ http://kovan.ceng.metu.edu.tr/~ilke/Braitenberg/

BraitenbergEN/.bin/sim.html http://cs.nmu.edu/~jeffhorn/Classes/MA240/Fall2007/

NateLyleSimulator.html

Page 35: Intelektikos pagrindai

Literatūra (1) Pagrindinis:

V. Braitenberg. Vehicles: Experiments in Synthetic Psychology.

http://books.google.lt/books?id=7KkUAT_q_sQC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false

R. Pfeifer and C. Scheier. Understanding Intelligence. The MIT Press.

https://academics.skidmore.edu/wikis/Fvehicles/images/Pfeifer1996.pdf

Kiti: Taavi Salumae, Iñaki Rañó, Otar Akanyeti, Maarja Kruusmaa: Against the flow: A

Braitenberg controller for a fish robot. ICRA 2012:4210-4215 Iñaki Rañó: An Introduction to the Analysis of Braitenberg Vehicles 2 and 3 Using

Phase Plane Portrait. SAB 2012:23-32 Iñaki Rañó: An Empirical Evidence of Braitenberg Vehicle 2b Behaving as a Billiard

Ball. SAB 2010:293-302 X. Yang, R. V. Patel, Mehrdad Moallem: A Fuzzy-Braitenberg Navigation Strategy for

Differential Drive Mobile Robots. Journal of Intelligent and Robotic Systems (JIRS) 47(2):101-124 (2006)

Page 36: Intelektikos pagrindai

Literatūra (2) Kvantiniai skaičiavimai robotikoje

M. Lukac and M. Perkowski, "Quantum mechanical model of emotional robot behaviors". Proc. of Int. Symp. on Multiple-Valued Logic, Oslo, May 2007.

M. Lukac, D. H. Kim, Normen Giesecke, Sazzad Hossain and Marek Perkowski, "Quantum Behaviors: Synthesis and Measurement." Proc. of RM Symposium, Oslo, May 16, 2007.

M. Perkowski, "Quantum Robots. Now or Never?". Invited Talk at the 5th National Conference on Informatics. Gdansk, Poland. May 2007.