CSCE 496/896

Topic Summary Assignment 1:  Intelligent Agents

Questions and Answers

September 4, 2002 

 

Q1:  .. [It] is in regard to the problem of resolution.  I am concerned with the statement that “the same action performed twice in apparently identical circumstances might appear to have entirely different effects and in particular, it may fail to have the desired effect” [2].  Namely, is the problem in the environment is apparently in the same state, the agent fails to perform its action exactly the same each time or both?

 

A1:  In regard to the problem of resolution, two problems in the environment may appear the same, and the agent may perform its action exactly the same, and the outcomes still are different.  This is due to the fact that the designer has failed to factor in other issues, to incorporate some details, for example, that may affect the outcome of an action.  On the other hand, it is also possible for the agent to perform the same action and does not get the same outcome.  This is especially true in a dynamic multiagent system.

 

Q2:  Why can a dynamic environment be deterministic?

 

A2:  The common definition of a dynamic environment is that the environment changes, and it is possible that the environment changes while an agent is making a decision.  The common definition of a deterministic environment is that the states of the environment can be determined or known by an agent.  So, of course, a dynamic environment can be deterministic.  You can let the environment change as frequently as it wants, but as long as the agent knows what the changes are, the environment is deterministic.

 

Q3:  Why is the balance between “reactive” and “proactive” crucial to the agent design?

 

A3:  Reactive refers to the ability of an agent to handle events/problems in a timely fashion.  Proactive refers to the ability of an agent to have goal-directed behaviors.  A purely reactive agent may lose sight of the overall goal.  A purely proactive agent may end up constantly thinking about what to do and not doing anything to solve a pressing problem.  So, it is important to see what the problem is and strike a balance between the two.

 

Q4:  Which architecture to use when we encounter a real-world problem?  How can we balance efficiently between mobility and intelligence of agents?

 

A4:  Each architecture has its advantages and disadvantages.  When you encounter a problem, define its characteristics.  Then, you should be able to pick the most suitable architecture.  For  the second part, usually, the more intelligent an agent is, the less mobile it becomes.  So, to find the balance, look at the problem.  How much mobility is needed?  How much intelligence is needed?  Look at the bandwidth, look at the communication cost, etc.  See also A14.

 

Q5:  In class, we were told that “Agents must prepare for the possibility of failure.  An agent will have a set of actions available to it.  Effective capability is its ability to modify its environment.  Each action has a pre-condition.”  If all of this [is] pre-wired, then the agent is obviously not intelligent.  Going by the definition that an intelligent agent is an agent that learns, does this mean that learning is the ability to modify/create pre-conditions, the ability to modify/create actions, or both?

 

A5:  You have touched upon a very important, and highly debated issue in AI.  Some may argue that if the agent, even pre-wired, is intelligent if it is able to prepare for the possibility of failure, has a set of actions to change its environment, etc.  A famous Turing test discussed in AI is that if a human cannot tell apart during his/her interaction with a human and another system, then that system is considered to be intelligent.  And, a while back, somebody wrote a very simplistic system that was able to converse with a user.  And humans were fooled into believing that they were actually conversing with a human behind the computer.  Is that system intelligent?  When the researchers revealed what was behind the conversation ability of the system, it was simply a set of if-then rules.  So, what is intelligence?  It is a very important question with many different answers!

 

Learning in an agent can be in terms of many aspects: learning to find out who the neighbors are, learning to find out who can do what better, learning to choose a particular action over another, learning to solve a particular problem with some particular solution, etc.  And yes, it can also include learning the ability to modify/create pre-conditions and actions.  See also A11.

 

Q6:  From the book: “It should be easy to see that for every purely reactive agent, there is an equivalent standard agent; the reverse, however, is not generally the case.”  Does it mean generally a standard agent has more complex behavior (from sequences of environment states to actions) than a purely reactive agent, so the function of some standard agents cannot be implemented by purely reactive agents?

 

A6:  Yes.  Exactly.  For example, an agent that uses a production rule-based system to derive (a complex behavior) what to do given a situation cannot by implemented as a purely reactive agent. 

 

Q7:  For logical agents, have they discovered a wait to get around the [NP-completeness] problem?  … If I remember correctly from the end of my CSE310 class Boolean Logic is NP-complete.  So it would be impossible for the logical agent to solve the problem in exponential time using Boolean Logic.  For agents do we need to consider cost? 

 

A7:  The easy question first:  yes, we do need to consider cost for agents when we consider the application and implementation issues.  In most real-world applications, agents must be able to compute fast and require small computational workload.  Your website “personal agents”, your mail-filtering agents, your search engine agents, and so on, have to work fast real-time.  Some use optimized algorithms, some cut corners.  This is what motivates the “good enough, soon enough” paradigm in AI.  On top of that, agents are distributed.  An operation that requires exchange of thousands of kilobytes of data between two agents is too costly.  So, we have mobile agents or mobile code.  Instead of fetching the data from a remote site to a local site for processing, we send the mobile agent to the remote site to take care of the business.  As for the NP-completeness of logic, actually, it depends on what types of logic you talk about.  In a rule-based production system, there are heuristics that allow one to choose the most suitable rule to fire, and so on.  That cuts down the time spent on searching.   Search is one the fundamental issue, if not the one, in Artificial Intelligence.  And logical deduction is one type of search.  And this issue is still alive and well in the community.  But these days, for most applications, people get around it by using optimization algorithms, approximation algorithms, anytime algorithms, just-in-time algorithms, and so on.

 

Q8:  Is there anyway to predict how cautious or bold a BDI agent should be before designing it? 

 

A8:  Yes, to a certain extent.  A bold agent is more reactive, in a way, or once a decision is made, it carries it out.  A cautious agent is more deliberative, and constantly stop to reconsider a decision.  There are several parameters one can look for to see how bold or cautious he/she can design the agent to be.  First, how dynamic is the environment?  If it is rapidly changing, are the changes significant enough to make a difference in the decision making process of an agent?  If yes, then your agent may need to be more deliberative, more cautious.  Second, if on the other hand, the environment is highly “malleable”, that is: an agent can repeatedly perform actions in it, and will be able to fix whatever errors it has done before, then you can afford to have a bold agent:  Just do it, since if the action no longer fits the problem, we can do it again to fix it.  That way, we can guarantee to react to a problem right away.  Third, how deterministic is the environment?  How many agents are there that can affect the environment on their own?  If the environment is highly non-deterministic, then you may want to be cautious, to think twice before acting.  But if it is overly non-deterministic, then you may just want to be bold and stop considering these other factors.  See A12.

 

Q9:  Essentially an agent is still a piece of software that tries to mimic human behavior and decision-making patterns.  Human beings can make stupid, irrational decisions.  Will the agent always make the right decision?  If that is the case, how can we either as user or designer, guarantee that? 

 

A9:  Actually, when we design an agent, it is not necessary for it to mimic human behavior and decision-making patterns.  This is also a popular issue in AI: descriptive vs. prescriptive.  Descriptive refers to, in this case, building an agent that describes what a normal human will do, and that includes making unwise decisions.  Prescriptive refers to, in this case, building an agent that does what a wise human should do.  In some economic simulation and modeling, researchers build descriptive agents (to better mimic the buying and selling behaviors of the consumers, suppliers, etc.) and also prescriptive agents (to show that if the actual population follows the behavior of these “wise” agents, what benefits follow, etc.).  No, an agent will not always make the right decision.  And more often than not, in a real-world application, agents will only make the best decision they can, and in some instances, those best decisions are the wrong decisions.  Remember, when the world is dynamic and uncertain, it is not easy to make the best decision.  And agents can’t.  To guarantee that, a designer has to be sure that the environment is deterministic and when an agent makes a decision, it has complete information it needs to make that decision.  See also A15.

 

Q10:  Essentially an agent is still a piece of software that tries to mimic human behavior and decision-making patterns.  Human beings can make stupid, irrational decisions.  Will the agent always make the right decision?  If that is the case, how can we either as user or designer, guarantee that? 

 

A10:  Actually, when we design an agent, it is not necessary for it to mimic human behavior and decision-making patterns.  This is also a popular issue in AI: descriptive vs. prescriptive.  Descriptive refers to, in this case, building an agent that describes what a normal human will do, and that includes making unwise decisions.  Prescriptive refers to, in this case, building an agent that does what a wise human should do.  In some economic simulation and modeling, researchers build descriptive agents (to better mimic the buying and selling behaviors of the consumers, suppliers, etc.) and also prescriptive agents (to show that if the actual population follows the behavior of these “wise” agents, what benefits follow, etc.).  No, an agent will not always make the right decision.  And more often than not, in a real-world application, agents will only make the best decision they can, and in some instances, those best decisions are the wrong decisions.  Remember, when the world is dynamic and uncertain, it is not easy to make the best decision.  And agents can’t.  To guarantee that, a designer has to be sure that the environment is deterministic and when an agent makes a decision, it has complete information it needs to make that decision

 

Q11:  Intelligent agents are supposed to learn from their experiences, how is this implemented? 

 

A11:  Well, actually, according to my definition, yes, intelligent agents are supposed to learn from their experiences.  But remember that this is not a universally-accepted requirement.  Many times, learning from experiences is implemented using reinforcement learning.  For example, neural networks is a reinforcement learning mechanism.  In general, an agent can keep a profile of the solutions that it has used to solve problems.  Suppose for each problem, there is a set of solutions.  In the beginning, the agent simply picks a random solution out of the set for the problem.  And then, it also keeps track of the success/failure of the solution.  After a while, it knows that solution #4, for example, yields the highest success rate for the problem, so, it may tend to pick that solution more often.  And in this case, the amount of data is stored is the same throughout.  We simply update the success rate fro each solution.  So, the agent’s experience is contained in the solutions’ success rate counter.  See also A5 for other examples.

 

Q12:  In a situation where the environment changes so drastically that the moment the action is performed it is not the right decision any more.  Will the agent be able to adjust its decisions real quickly? 

 

This depends.  It may not be able to adjust its decisions in time for the problem.  It may simply ignore the changes.  From the design standpoint, you have to test the system in order to obtain the correct timing.  When do you say, “Okay, I think I still have time to reconsider,” or “Well, forget it.  I think I will just go ahead with my current decision.  If it no longer applies, so be it.”  See A8. 

 

Q13:  Which [agent architecture} models are active in current research? 

 

A13:  These days, the reactive and the layered architectures are quite active in current research due to the shift of multiagent systems to the real-world applications and problems.  Most models these days are hybrid, by the way, a little bit of both reactive and deliberative.  And many models have done some sort of the layered architecture.  But the one proposed by Peter Stone and Manuela Veloso is the most well-formulated one. 

 

Q14:  I did not totally understand what the issue with mobile agents versus intelligent agents was about.  It seems to me that whether or not a mobile agent is needed is dependent on the application.  Is this just an issue of communication?

 

A14:  A mobile agent needs to be lightweight.  The more objects it is compiled with, the more knowledge bases it needs, etc., the more costly it is for it to travel, to be mobile.  But when you build a lightweight agent, then it limits the features of intelligence you can have on the agent.  And thus the tradeoff.  See also A4. 

 

Q15:  Are reactive agents really intelligent?  And can they be useful in dynamic environments?  If they simply react with programmed response can they be useful in any but the most predictable of environments? 

 

A15:  There is not a single answer to this question.  According to my definition, I require agents to learn to be intelligent.  So, if a reactive agent does not learn, then it is not intelligent.  And by most definitions of a reactive agent, it is not intelligent.  Most researchers agree that reactive agents simply react, and do not have a goal-directed behavior.  And such, it cannot be intelligent.  But keep in mind that a swarm of reactive agents can exhibit intelligent behavior.  Actually, most reactive agents are used in dynamic environments where “too much deliberation” cannot be afforded.  For the last part of your question, yes and no.  Yes, if the problem you want to solve does not expect “emergent behavior”.  No, if the problem you want to solve is dynamic and unpredictable at a local level, but does expect some sort of “emergent behavior”.  Some reactive agents are simple: given situation A, perform action T.  They do not care about other environmental parameters.  But that does not mean the environments are predictable.  They simply do not care!  For example, economic modeling of consumers and producers have simple agents, but adding in different “trigger” behaviors, the outcome maybe quite unpredictable.  See also A9.

 

Q16:  I am still a little unclear of the differences in layered architectures.  Is this just a ways of implementing the decision making process or is it a separate process?

 

A16:  The four architectures discussed in class can be divided into 3 basic approaches: reactive, deliberative, and hybrid.  And the layered architecture is a hybrid.  It says that we will do both.  When there is an emergency or a task that needs my immediate attention, I will switch on my reactive mode to handle it.  If the solution deviates from my overall, higher-level goals, so be it.  If my deliberative module has some other things in mind, I ignore them.  But when there is not an emergency or a task that needs my immediate attention, then maybe I should take a look at how well I have been doing to accomplish my higher-level goals.  This is the elegance of the layered architecture.  This makes sense in real-life.  Suppose you are studying for your qualifying exams.  You have everything planned out under the overall goal of passing your qualifying exams.  But between now and the exam day, you may have other things to take care of—such as homework assignments, going to the doctor, going to a concert—that deviate from your overall goal.  So, the layered architecture offers this flexibility that we do not see in the reactive or deliberative architectures.