New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. ·...

32
Artificiell Intelligens Lektion 1 Administrativt Allmänt om laborationer Intelligenta agenter

Transcript of New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. ·...

Page 1: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

A rtific ie ll Inte llig e nsL e ktio n 1

AdministrativtAllmänt om laborationer

Intelligenta agenter

Page 2: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Allmänt

Kursassistent: Jody Foo, [email protected]

Labbassistenter:Robin Keskisärkkä, [email protected]

Jonas Rybing, [email protected]

Christian Smith, [email protected]

(Sara Stymne, [email protected])

Page 3: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Allmänt

Hemsida (www.ida.liu.se/~729G10) innehållerNyheter, t ex flyttade tillfällen och ändringar i

labbarDödlinjer för laborationer och

inlämningsuppgifter

Anmäl er till laborationerna via webreg (vanliga Liu-kontot)

Page 4: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Lektioner

Laborationsförberedande Eventuellt genomgångar

lektionsövningar

Frågor i allmänhet

Page 5: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laborationer

Programmering, körbara program och diskussioner

Förbered er välLäs instruktionernaLäs den teori instruktionerna hänvisar till

Page 6: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laborationer – redovisning

Redovisning sker genomProgramkod ska redovisas både skriftligt i

underskrivna labbomslag och via epostDiskussioner behöver enbart redovisas

skriftligt på papperLabbar lämnas till:

[email protected] Facket utanför Jody Foos rum (våning 2, E-huset)

Page 7: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laborationer – redovisning

Deadline för laborationerna finns på hemsidan

Slutdeadline Om giltigt skäl kan alternativa tider

diskuteras med handledare Var noga med att spara godkända

laborationsrapporter och inlämningsuppgifter (och mejl)

Page 8: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laborationer – betygssättning

Betygen godkänt och väl godkänt gesFör godkänt krävs att

laborationen är redovisad enligt de krav som finns angivna i varje laborationsinstruktion

För väl godkänt krävs att ni har kopplat ihop teorin med praktiken ni kan föra egna resonemang och dra egna

slutsatser efter era erfarenheter programkoden innehåller genomtänkta

funktionsnamn och en genomtänkt struktur

Page 9: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laborationskursen – betyg

Laborationskursen utgör ett av två betygsmomentÖvrigt moment: tentamen

Varje laboration med betyget VG ger en poäng mot betyget VG på tentamen.Möjligt att komplettera till VG om gränsfallKrav: Inlämnad i tid och kompletterad inom en

vecka från registrerad komplettering

Page 10: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Vår roll

Labbar rättas inom 10 dagar efter deadline Kompletteringar rättas under

uppsamlingstillfällen Om ni inte får svar i tid så hör av er till oss Vad vi kan hjälpa till med

Page 11: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laboration 1 – översikt

Vad?Utforma och implementera en agent som kan

dammsuga ett omöblerat rum, samt resonera kring vad ni gjort

Varför?För att känna få insikt i vad en agent är och

vad som egentligen menas med intelligens i kursboken och inom AI

För att lära er använda kursbokens begreppsapparat

Page 12: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laboration 1 – översikt

Hur?Genom att utgå från en befintlig

omgivningssimulator och ett programskelettGenom att reflektera

Page 13: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Omgivningen – grafisk

Page 14: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Agent och omgivning

1. Agenten varseblir (omgivningssimulatorn förser agenten med ett percept).

2. Agenten beslutar sig för hur den vill handla (dvs. skickar ut en handling till omgivningssimulatorn).

3. Omgivningssimulatorn ser till att handlingen utförs och uppdaterar omgivningen.

4. Agenten uppdaterar sitt interna tillstånd.

5. Upprepa från steg 1.

Page 15: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Agent och omgivning

Dammsugaragent

Interntillstånd

(Clean, None)

’Forward’

Omgivningssimulator

Representation av världen

Page 16: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Percept

Perceptet är en tupel med två element (status, bumping)

status='Dirty' om rutan är smutsig, annars Clean bumping='Bump' om agenten gått in i en vägg, annars None

Page 17: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Handlingar

Agenten kan utföra fem handlingar 'Forward' 'TurnRight' 'TurnLeft' 'Suck' 'ShutDown'

Page 18: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Omgivning

Klasshieraki: Environment

XYEnvironment VacuumEnvironment

Funktioner: env = VacuumEnvironment(width=10, height=10)

env.add_random_hinders(prob=0.2)

env.add_random_dirt(prob=0.2)

Page 19: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Agenter

Klasshieraki: Object

Agent RandomAgent - RandomVacuumAgent SimpleReflexAgent - SimpleReflexVacuumAgent ReflexAgentWithState - VacuumAgentWithState

Funktioner: agent = VacuumAgentWithState() env.add_object(agent)

Page 20: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

RandomAgentclass RandomAgent(Agent):

def __init__(self, actions): Agent.__init__(self) self.program = lambda percept: random.choice(actions)

def RandomVacuumAgent(): return Agent.RandomAgent(['TurnRight', 'TurnLeft, 'Suck', 'Forward'])

Page 21: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

SimpleReflexAgentclass SimpleReflexAgent(Agent):

def __init__(self, interpret_input, choose_action): Agent.__init__(self) def program(percept): state = interpret_input(percept) action = choose_action(state) return action self.program = program

Page 22: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

SimpleReflexVacuumAgent

def SimpleReflexVacuumAgent():

def interpret_input(percept): return percept

def choose_action(state): (dirt, bump) = state if dirt == 'Dirty': return 'Suck' elif bump == 'Bump': return random.choice(['TurnLeft', 'TurnRight']) else: return random.choice(['TurnLeft', 'TurnRight',

'Forward', 'Forward]) return SimpleReflexAgent(interpret_input, choose_action)

Page 23: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

ReflexAgentWithState

class ReflexAgentWithState(Agent):

def __init__(self, update_state_with_percept, choose_action, update_state_with_action):

Agent.__init__(self) self.state = None self.action = None def program(percept): self.state = update_state_with_percept(self.state,

percept) self.action = choose_action(self.state) self.state = update_state_with_action(self.state,

self.action) return self.action self.program = program

Page 24: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

VacuumAgentWithStatedef VacuumAgentWithState():

class State: def __init__(self): #Add your code here def update_state_with_percept(state, percept):

#Add your code here return state

def choose_action(state): #Add your code here def update_state_with_action(state, action):

#Add your code here return state

agent = ReflexAgentWithState(update_state_with_percept, choose_action,

update_state_with_action) agent.state = State() return agent

Page 25: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Köra och Jämföra agenter

run_random_vacuum_environment(AgentType,width=10, height=10, dirt=0.2, gui=False)

run_random_vacuum_environment(SimpleReflexVacuumAgent,10, 10, 0.3, True)

run_vacuum_environment(AgentType, gui=False)run_vacuum_environment(VacuumAgentWithState, True)

compare_vacuum_agents([RandomVacuumAgent, SimpleReflexVacuumAgent, VacuumAgentWithState])

Page 26: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Förberedelser

Gör klart för er själva hur er agent interagerar med sin omgivning (konkret i denna implementation)

Beskriv den strategi er agent har Beskriv de egenskaper och kunskap som er

agent ska ha Översätt agentens strategi i termer av

handlingsregler Fundera på vilken information som måste

finnas i interntillståndet och hur denna ska uppdateras

Page 27: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laboration 1 – strategier

Spiral Zick-Zack L + Zick-Zack

Page 28: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laboration1 – skiss spiral

Om det finns smuts ska agenten suga upp det Om nästa ruta är obesökt ska agenten gå framåt

annars svänga vänster Om agenten befinner sig i mitten ska den stänga

av sig Vad behöver agenten veta?

Page 29: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Laboration 1 – skiss zick-zack

Om det finns smuts ska agenten suga upp det Om nästa ruta är en vägg ska den svänga, gå

fram och sedan svänga igen Om agenten befinner sig i ett övre hörn ska den

stänga av sig Vad behöver agenten veta?

Page 30: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Vad behöver agenten veta? Om det finns smuts på en ruta? Om den har bumpat? Vart den är? Vilken riktning den har? Vart den har varit? Om den svängde förra gången? Om den svängde förrförra gången? Vilken riktning den svängde åt senast? Hur långt den har gått? Annat...?

Page 31: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Exempel

Få agenten att gå framåt Få agenten svänga när den bumpar Få agenten att stänga av sig efter fyra

bumpar

Page 32: New Artificiell Intelligens Lektion 1729G10/resources/fo-oh/lektion1.pdf · 2012. 4. 17. · Laborationer – betygssättning Betygen godkänt och väl godkänt ges För godkänt

Extra

Få agenten att sicksacka diagonalt