Programming Agents Williams
Transcript of Programming Agents Williams
-
7/29/2019 Programming Agents Williams
1/31
Programming Agents
Prof. Andrew B. WilliamsUniversity of IowaDept. of Electrical and [email protected]://www.icaen.uiowa.edu/~abwill
mailto:[email protected]:[email protected] -
7/29/2019 Programming Agents Williams
2/31
Andrew B. Williams
Goals
Overview of agent programming
Course organization for incrementallearning
C# and .NET as alternative to Java andCORBA
-
7/29/2019 Programming Agents Williams
3/31
Andrew B. Williams
Outline
Intelligent Agents and Multi-AgentSystems
Teaching Agent Programming
Challenges of using C# and .NET asalternative to Java and CORBA
Homeworks and Projects
Lessons Learned
-
7/29/2019 Programming Agents Williams
4/31
Andrew B. Williams
Agent Programming
Integrating distributed programmingtechniques and AI tools to create amulti-agent system program
Whats an intelligent agent? Whats a multi-agent system?
-
7/29/2019 Programming Agents Williams
5/31
Andrew B. Williams
Intelligent Agent
No universally accepted definition
Computational entity such as asoftware program or robot
Operates ,or behaves, flexibly andrationally in a variety of
environmental circumstances Also referred to as autonomous
agent
-
7/29/2019 Programming Agents Williams
6/31
Andrew B. Williams
Multi-Agent System
A group of problem solvers thatwork together in a loosely coupled
network (Durfee et. al 1989) Greater than their individual
capabilities
Better suited fordynamic, open, andoften unpredictable environments(Sen and Weiss 1998)
-
7/29/2019 Programming Agents Williams
7/31 Andrew B. Williams
Intelligent Agents and Multi-AgentSystems
(Adapted from G. Berkey and A. Agah)
#Brain
# Body
1
10s
100s +
1 10s 100s +
AI
DAI/
MAS
Multi-agent
control
Machines Multi-machineSystems
Robotics
Distributed
Robotic
Systems
Swarm
Systems
CentralizedControl
Multi-agent
Swarms
-
7/29/2019 Programming Agents Williams
8/31 Andrew B. Williams
Major Characteristics ofMulti-Agent Systems Each agent has incomplete information
Each agent is restricted in its
capabilities System control is distributed
Data is decentralized
Computation is asynchronous
-
7/29/2019 Programming Agents Williams
9/31 Andrew B. Williams
Semantic Web Vision
Semantic Web Data machine understandable not just machine
readable
Distributed, large, open, and heterogeneous
computing platforms and environments
Wired/Wireless world populated by inter-operating agents -- not just data.
Semantic Web is playground of agents (K.Sycara)
-
7/29/2019 Programming Agents Williams
10/31 Andrew B. Williams
Web Services andMAS Research
Deal with similar issues (K.Sycara, CMU)
Must be discovered
Agent matchmaking
Must be selected Learning preference models
Must be involved
Communication Must be composed
Planning and coordination
-
7/29/2019 Programming Agents Williams
11/31 Andrew B. Williams
Distributed IntelligentAgents Course
Senior/Grad Level Course
Approx. 15 students per semester
2 to 4 undergraduates
Traditionally used these technologies:
Java, CORBA, JESS, KQML
Wanted to offer C#, .NET, XML, CLIPS
-
7/29/2019 Programming Agents Williams
12/31 Andrew B. Williams
Teaching Challenges
How to teach C# and .NET along withJava and CORBA?
Should students be forced to learn both?
Limited knowledge of C# and .NET Lacked resources for teaching C# and
.NET
-
7/29/2019 Programming Agents Williams
13/31 Andrew B. Williams
Teaching Agent
Programming Distributed Application Programming
Reasoning Engines
Agent Communication Languages andProtocols
Knowledge Representation &
Ontologies Learning Mechanisms
Other
-
7/29/2019 Programming Agents Williams
14/31 Andrew B. Williams
Alternative ProgrammingLanguage
Gave students option to use Java or C#
Let students know there would be additionalchallenges to using C#
I was not C# expert
But I would support them
Support of Microsoft Univ. Relations Rep
was key Rob Reed
-
7/29/2019 Programming Agents Williams
15/31 Andrew B. Williams
Incremental, hands-onLearning for Students
Construct homeworks to allowstudents to learn C# or Java on theirown
Each homework builds on each other
Final homework integrates conceptslearned and constructed classes
-
7/29/2019 Programming Agents Williams
16/31 Andrew B. Williams
Course Organization Autonomous Agent and MAS theory
and practice Homeworks
Purpose: Learn Java or C# with usefulclasses
Projects
Use Java or C# to program agents
Project 1: SoccerBots
Project 2: DABORAS Project 3: Distributed Intelligent Agent
app
Presentation and Paper
-
7/29/2019 Programming Agents Williams
17/31 Andrew B. Williams
Homework Organization
Homework 1 Web search for IA and MAS
Homework 2
Token frequency counter
String, File,Hashtables, Vectors
Homework 3
URL Retrieval, GUI
Homework 4 Simple Web (crawler) agent
Integrate homeworks 2 and 3
-
7/29/2019 Programming Agents Williams
18/31 Andrew B. Williams
Project 1: SoccerBots
Implement subsumption architecture Incorporate a reasoning engine
JESS
(No CLIPS with C# wrappers)
Double elimination soccer tournament
Windows 2000 Platform
Prizes from Microsoft!
-
7/29/2019 Programming Agents Williams
19/31
Andrew B. Williams
Project 2: DABORAS
Distributed Agent-Based Online RealtimeAuction System with Instant Messaging
Use .NET Remoting or CORBA
Use C# or Java Use JESS or CLIPS w/ C# wrappers
Use KQML as Agent Communication
Language
-
7/29/2019 Programming Agents Williams
20/31
Andrew B. Williams
Project 3: DistributedIntelligent Agent App
Students decide on project
Instructor approves topic
-
7/29/2019 Programming Agents Williams
21/31
Andrew B. Williams
DABORAS
Matchmaker agent Stores auctioned items
Embedded Inference Engine
DABORAS agents Buyer and seller agents
Makes requests to Matchmaker
Update or retrieve info on items Instant messaging for users
-
7/29/2019 Programming Agents Williams
22/31
Andrew B. Williams
DABORAS- C#TechnologiesUsed
C# and .NET Framework
.NET Remoting
C++ to C# Interoperability
-
7/29/2019 Programming Agents Williams
23/31
Andrew B. Williams
CLIPS Inference Engine
Rule-based, Forward ChainingReasoning
Implemented in C
No Library wrapper or DLL existed forC#
But one existed for C++
-
7/29/2019 Programming Agents Williams
24/31
Andrew B. Williams
C# CLIPS Wrapper
New wrapper written using .NETManaged C++
Wrapper compiled into DLL
Became possible to make calls toCLIPS from C#
Scott Stone and Dan McIntyre
(undergrads)
-
7/29/2019 Programming Agents Williams
25/31
Andrew B. Williams
DABORAS CommunicationArchitecture .NET Remoting used
Makes remote methods available to otherdistributed applications
All arguments serialized and sent overcommunication channel in a SOAPmessage
Peer-to-peer messaging andinformation sharing
-
7/29/2019 Programming Agents Williams
26/31
Andrew B. Williams
Communication in .NETRemoting Takes places using Channels
Either HTTP or TCP/IP
DABORAS uses HTTP channel All SOAP message info is encoded in XML
and sent via HTTP post messages
-
7/29/2019 Programming Agents Williams
27/31
Andrew B. Williams
Teaching ChallengesRevisited How to teach C# and .NET along with Java
and CORBA?
Incremental learning and assignments
Let students choose Limited knowledge of C# and .NET
Jump start students
Let them teach themselves
Lacked resources for teaching C# and .NET
Rob Reed or your Univ. equivalent
-
7/29/2019 Programming Agents Williams
28/31
Andrew B. Williams
Benefits
Instructor learns from students Students gain self-confidence
Microsoft provides cool tools and
useful books Rob Reed (Thanks!)
Students gain valuable, marketable
experience
-
7/29/2019 Programming Agents Williams
29/31
Andrew B. Williams
Lessons Learned using C# Good alternative to Java
Let students volunteer to use C# Some already know Java and want to learn a
new language
Students must be self-starters and able to
learn on their own Instructor must provide needed resources
(VS.NET, reference books)
Instructor must be up front regarding
challenges of C# Including instructors lack of knowledge
Be understanding of students that chooseC#
-
7/29/2019 Programming Agents Williams
30/31
Andrew B. Williams
Summary
Gave overview of agent programming Described course organization
Incremental learning
Self-taught programming
Lessons learned using C# and .NET asalternative to Java and CORBA
-
7/29/2019 Programming Agents Williams
31/31