סוכנים רציונליים

Download Report

Transcript סוכנים רציונליים

‫סוכנים‬
:‫מבוסס על השקפים של יעל נצר‬
http://www.cs.bgu.ac.il/~yaeln/
AI06/rational-agents.ppt
‫סוכן רציונלי‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫סוכן רציונלי הוא סוכן שצופה (‪ (perceiving‬על סביבתו על‬
‫ידי חיישנים (‪ )sensors‬ופועל (‪ )acting‬על ידי שימוש‬
‫במפעילים (‪)actoutors‬‬
‫לאדם יש עיניים‪ ,‬אוזניים ואיברים נוספים כחיישנים‪ ,‬ידיים‬
‫ורגליים כמפעילים‪.‬‬
‫לרובוט‪ :‬מצלמות וקרניים אולטרא‪-‬אדומות לחישה‪ ,‬מנועים‬
‫כמפעילים‬
‫אברי החישה של סוכן כתוכנית מחשב הם מקלדת‪ ,‬מערכת‬
‫הקבצים או חבילות ברשת‪ ,‬וכתיבה למסך‪ ,‬לקובץ או שליחה‬
‫ברשת כמפעילים‪.‬‬
‫הנחה‪ :‬כל סוכן רציונלי מכיר וקולט את הפעולות של עצמו‬
‫(אך לא בהכרח את התוצאות שלהן)‪.‬‬
‫דוגמאות‬
‫מערכת רפואית לדיאגנוזה‬
‫רובוט האוסף חלקים‬
‫מערכת ללימוד שפה‬
‫תוכנית לקנייה ברשת האינטרנט‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪ – Percept sequence‬סדרת התצפיות של סוכן‬
‫היא ההיסטוריה של כל התצפיות שקלט‪.‬‬
‫פעולה של סוכן בכל זמן נתון מתבססת על מה‬
‫שכבר קלט (וייתכן שעל כל מה שקלט)‬
‫התנהגות של סוכן תלויה ברצף התצפיות הזו‪.‬‬
‫כלומר‪ :‬התנהגות היא "פונקציית הסוכן"‬
‫]‪[f: P*  A‬‬
‫עולם שואבי‪-‬האבק‬
‫• שואבי האבק קולטים‪:‬‬
‫– באיזה חדר הם נמצאים (‪ A‬או ‪)B‬‬
‫– האם החדר שבו הם נמצאים מלוכלך או לא‬
‫• פעולות‪:‬‬
‫– תנועה מחדר ‪ A‬לחדר ‪ B‬וההפך (ימינה ושמאלה)‬
‫– שאיבת אבק‬
‫– כלום‬
‫• פונקציית פעולה פשוטה‪:‬‬
‫– אם החדר מלוכלך – שאב אבק‪ ,‬אחרת‪ ,‬עבור לחדר השני‬
‫פונקציית הפעולה של סוכן שואב אבק פשוט‬
Percept Sequence
[A,Clean]
[A,Dirty]
[B,Clean]
[B,Dirty]
[A,Clean], [A,Clean]
[A,Clean], [A,Dirty]
[A,Clean], [B,Clean]
[A,Clean], [B,Dirty]
[A,Dirty], [A,Clean]
[A,Dirty], [A,Dirty]
[A,Clean], [A,Clean], [A,Clean]
Action
Right
Suck
Left
Suck
Right
Suck
Left
Suck
Right
Suck
Right
‫השאלה היא‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫מהי הדרך הנכונה ביותר למלא את טבלת המצבים?‬
‫כלומר‪ :‬מה הופך סוכן לסוכן טוב או רע‪ ,‬טיפש או‬
‫אינטילגינטי?‬
‫סוכן רציונלי הוא סוכן שעושה את "הדבר הנכון"‬
‫אבל מהו "הדבר הנכון"?‬
‫הנחה ראשונה‪ :‬הדבר הנכון הוא מה שיהפוך את‬
‫הסוכן לבעל ההישגים הטובים ביותר‪.‬‬
‫לשם כך דרוש‪ :‬מדד להצלחה‪.‬‬
‫מדד ביצועים ‪performance measure‬‬
‫• כיצד קובעים מדד אובייקטיבי להצלחת פעולה של‬
‫סוכן?‬
‫רציונליות‬
‫• רציונליות של פעולה תלויה בארבעה גורמים‪:‬‬
‫–‬
‫–‬
‫–‬
‫–‬
‫‪ Performance‬מדד הביצועים המגדיר קריטריון‬
‫להצלחה‬
‫‪ Environment‬הידע הקודם של הסוכן על הסביבה‬
‫‪ Actuators‬הפעולות אותן יכול לבצע הסוכן‬
‫‪ Sensors‬היסטוריית תצפיות של הסוכן כפי שנקלטו על‬
‫ידי החיישנים‪.‬‬
‫הגדרה של סוכן רציונלי היא‪:‬‬
‫לכל רצף קלטים נתון‪ ,‬סוכן רציונלי ייבצע את הפעולה‬
‫האפשרית שתמקסם את מדד הביצועים‪ ,‬בהנתן‬
‫רצף תצפיות העבר והידע שברשות הסוכן‪.‬‬
‫האם שואבי האבק הנ"ל הם סוכנים‬
‫רציונלים?‬
‫• מדד הביצועים‪:‬‬
‫– הסוכן יקבל "נקודה טובה" עבור כל חדר נקי בכל נקודת‬
‫זמן ברצף של ‪ 1000‬נקודות זמן‪.‬‬
‫– חסכון בחשמל‪ ,‬מינימום תנועות‪ ,‬הפחתת הרעש‬
‫• ידע על הסביבה‪ :‬הגיאוגרפיה ידועה מראש‪ ,‬אך לא‬
‫מצב הנקיון של כל חדר‪.‬חדרים נקיים נשארים נקיים‪.‬‬
‫שאיבת אבק מנקה את החדר‪ .‬תנועה אפשרית לימין‬
‫ולשמאל אבל לא אל מחוץ מהסביבה המוגדרת‪.‬‬
‫• הפעולות הן ‪ Right,Left,Suck‬ו‪NoOp-‬‬
‫• תצפיות‪ :‬הסוכן יודע באיזה חדר הוא נמצא‪ ,‬ומזהה‬
‫את מצב הנקיון של החדר‪.‬‬
‫• סוכן יודע‪-‬כל ‪ omniscience‬יודע מה יהיו תוצאות‬
‫כל הפעולות שלו – אבל האם זה ייתכן?‬
‫• סוכן רציונלי ≠ סוכן יודע‪-‬כל‬
‫למידה ואוטונומיה‬
‫• סוכן צריך ללמוד מתוך אוסף התצפיות אותם קולט‪:‬‬
‫– הקונפיגורציה ההתחלתית משקפת את הידע הקודם על‬
‫הסביבה‬
‫– הסוכן צובר ניסיון כך שהידע על הסביבה יכול להשתנות‬
‫• אוטונומיה‪ :‬מכיוון שלא ניתן לתת לסוכן את כל הידע‬
‫על מצבים לא‪-‬ידועים‬
‫– התחלה עם ידע מקדים ומובנה‬
‫– אפשרות ללמוד מידע חדש‪.‬‬
‫אפיוני הסביבה – דוגמא‪ :‬נהג מונית אוטומטי‬
‫סוג הסוכן מדד‬
‫הביצועים‬
‫סביבה‬
‫מפעילים‬
‫חיישנים‬
‫הגה‪ ,‬דוושת מצלמות‪,‬‬
‫כבישים‪,‬‬
‫בטוח‪,‬‬
‫מד מהירות‬
‫גז‬
‫מהיר‪ ,‬חוקי‪ ,‬מכוניות‬
‫(מאיצים)‪,‬‬
‫נהג מונית נסיעה נוחה‪ ,‬אחרות‪,‬‬
‫הולכי רגל‪ ,‬בלמים‪,‬‬
‫רווחים‬
‫מקסימלים‪ .‬לקוחות‬
‫איתות‪,‬‬
‫צופר‪ ,‬מסך‬
‫מדד הביצועים של נהג המונית‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫הגעה למקום הנכון‬
‫הקטנת הוצאות הדלק‪ ,‬בלאי‬
‫הקטנת זמן הנסיעה ומחירה‬
‫מניעת עבירות תנועה והפרעות לנהגים אחרים‬
‫הגדלת בטיחות ונוחיות הנוסע‬
‫חלק מהמדדים האפשריים מנוגדים זה לזה‪..‬‬
‫אפיוני הסביבה‬
‫•‬
‫•‬
‫•‬
‫•‬
‫סמטאות העיר‪ ,‬אוטוסטרדות‪ ,‬כבישים באזורי ספר‬
‫תנועה בכבישים‪ ,‬הולכי רגל‪ ,‬בורות‪ ,‬בעלי חיים‪,‬‬
‫עבודות בכביש ושלוליות‪.‬‬
‫שיחות עם לקוחות פוטנציאלים‪/‬אקטואלים‬
‫ועוד‪ :‬נהיגה בלילה‪ ,‬נהיגה בקרח‪ ,‬נהיגה רק בשמש‬
‫קופחת –‬
‫– סביבה מצומצמת יותר – מאפשר אפיון מדוייק יותר‬
‫מפעילים‬
‫•‬
‫•‬
‫•‬
‫•‬
‫שליטה על המנוע (האצה‪ ,‬האטה)‬
‫הגה‬
‫בלמים‬
‫פלט למסך‪ ,‬מערכת קול סינטתית לשיחה עם‬
‫לקוחות‪ ,‬או להחלפת קללות עם נהגים אחרים‪.‬‬
‫חיישנים‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫מצלמות‪ ,‬מד מהירות‪ ,‬מד מרחק‬
‫מד תאוצה (שליטה על סיבובים)‬
‫ידיעה של מצב מכאני‪ :‬חיישנים במנוע‬
‫מערכת ניווט לוויני ‪GPS‬‬
‫קרניים אינפרא‪-‬אדומות או אחרות לזיהוי מרחק‬
‫ממכוניות אחרות למשל‬
‫מקלדת‪/‬מערכת זיהוי קולית ללקוחות‬
‫מימדים לאפיון סביבה‬
‫• ‪Fully vs. Partially observable‬‬
‫– האם הסוכן רואה את כל הסביבה במלואה (כלומר כל מה‬
‫שרלוונטי לתפקוד שלו) או רק מידע חלקי (שואב אבק‪ :‬יודע את‬
‫מצב הלכלוך במ"ר אחד ולא בכל החדר)‬
‫• ‪Deterministic vs. non-deterministic‬‬
‫– האם קיים מיפוי יחיד ממצב לפעולה?‬
‫• ‪Episodic vs. Sequential‬‬
‫– האם המצב הבא תלוי במצבים הקודמים שנצפו בסביבה?‬
‫• ‪Static vs. Dynamic‬‬
‫– האם העולם יכול להשתנות כשהסוכן "חושב"?‬
‫• ‪Discrete vs. Continuous‬‬
‫• האם סך התצפיות השונות הוא סופי או אינסופי‬
?‫מה הכי קשה‬
Partially observable, non deterministic
dynamic sequential continuous
•
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
Part-picking
robot
Web shopping
program
Foreign-Language
Tutor
Medical Diagnosis
Taxi driving
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
Part-picking
robot
Web shopping
program
Foreign-Language
Tutor
Medical Diagnosis
Taxi driving
(Yes)
Yes
No
Yes
Yes
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
(Yes)
Yes
No
Yes
Yes
Part-picking
robot
No
No
Yes
No
No
Web shopping
program
Foreign-Language
Tutor
Medical Diagnosis
Taxi driving
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
(Yes)
Yes
No
Yes
Yes
Part-picking
robot
No
No
Yes
No
No
Web shopping
program
No
No
No
No
Yes
Foreign-Language
Tutor
Medical Diagnosis
Taxi driving
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
(Yes)
Yes
No
Yes
Yes
Part-picking
robot
No
No
Yes
No
No
Web shopping
program
No
No
No
No
Yes
Foreign-Language
Tutor
No
No
No
Yes
Yes
Medical Diagnosis
Taxi driving
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
(Yes)
Yes
No
Yes
Yes
Part-picking
robot
No
No
Yes
No
No
Web shopping
program
No
No
No
No
Yes
Foreign-Language
Tutor
No
No
No
Yes
Yes
Medical Diagnosis
No
No
No
No
No
Taxi driving
Environment Types
Observable Deterministic Episodic Static Discrete
Crossword
Puzzle
(Yes)
Yes
No
Yes
Yes
Part-picking
robot
No
No
Yes
No
No
Web shopping
program
No
No
No
No
Yes
Foreign-Language
Tutor
No
No
No
Yes
Yes
Medical Diagnosis
No
No
No
No
No
Taxi driving
No
No
No
No
No
‫מבנה של סוכנים‬
Agent = Architecture + Program •
:‫• סוגי תוכניות סוכן‬
table-driven agent ‫סוכן מונחה טבלה‬
simple reflex agent ‫סוכן עם רפלקס פשוט‬
model-based reflex ‫מודל‬-‫סוכן עם רפלקס מבוסס‬
agent
goal-based agent ‫מטרה‬-‫סוכן מבוסס‬
utility-based agent ‫שירות‬-‫סוכן מבוסס‬
–
–
–
–
–
‫סוכן מונחה טבלה‬
function TABLE-DRIVEN-AGENT (percept) returns action
static: percepts, a sequence, initially empty
table, a table, indexed by percept sequences,
initially fully specified
append percept to the end of percepts
action  LOOKUP(percepts, table)
return action
Look-up table for chess: 35100
Simple Reflex Agent
sensors
Condition-action rules
What action I
should do now
Environment
What the world is
like now
actuators
function SIMPLE-REFLEX-AGENT(percept) returns action
static: rules, a set of condition-action rules
state  INTERPRET-INPUT (percept)
rule  RULE-MATCH (state,rules)
action  RULE-ACTION [rule]
return action
Model-Based Reflex Agent
sensors
State
What the world
is like now
What my actions do
Condition-action rules
What action I
should do now
Environment
How the world evolves
actuators
function REFLEX-AGENT-WITH-STATE (percept) returns action
static: state, a description of the current world state
rules, a set of condition-action rules
state  UPDATE-STATE (state, percept)
rule  RULE-MATCH (state, rules)
action  RULE-ACTION [rule]
state  UPDATE-STATE (state, action)
return action
Goal-Based Agent
State
How the world evolves
sensors
What my actions do
What it will be like if I
do action A
Goals
What action I
should do now
actuators
Environment
What the world is
like now
Utility-Based Agent
State
How the world evolves
sensors
What the world
is like now
What my actions do
Utility
How happy I will
be in such as a state
What action I
should do now
actuators
Environment
What it will be like
if I do action A