310 likes | 456 Views
Programming Agents. Prof. Andrew B. Williams University of Iowa Dept. of Electrical and Computer Engineering abwill@eng.uiowa.edu http://www.icaen.uiowa.edu/~abwill. Goals. Overview of agent programming Course organization for “incremental learning”
E N D
Programming Agents Prof. Andrew B. Williams University of Iowa Dept. of Electrical and Computer Engineering abwill@eng.uiowa.edu http://www.icaen.uiowa.edu/~abwill
Goals • Overview of agent programming • Course organization for “incremental learning” • C# and .NET as alternative to Java and CORBA
Outline • Intelligent Agents and Multi-Agent Systems • Teaching Agent Programming • Challenges of using C# and .NET as alternative to Java and CORBA • Homeworks and Projects • Lessons Learned
Agent Programming • Integrating distributed programming techniques and AI tools to create a multi-agent system program • What’s an intelligent agent? • What’s a multi-agent system?
Intelligent Agent • No universally accepted definition • Computational entity such as a software program or robot • Operates ,or behaves, flexibly and rationally in a variety of environmental circumstances • Also referred to as autonomous agent
Multi-Agent System • A group of problem solvers that work together in a loosely coupled network (Durfee et. al 1989) • Greater than their individual capabilities • Better suited for dynamic, open, and often unpredictable environments (Sen and Weiss 1998)
Intelligent Agents and Multi-Agent Systems(Adapted from G. Berkey and A. Agah) #Brain Multi-agent Swarms Swarm Systems 100’s + Multi-agent control DAI/MAS Distributed Robotic Systems 10’s Robotics Centralized Control AI 1 # Body Multi-machine Systems Machines 1 10’s 100’s +
Major Characteristics of Multi-Agent Systems • Each agent has incomplete information • Each agent is restricted in its capabilities • System control is distributed • Data is decentralized • Computation is asynchronous
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)
Web Services and MAS 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
Distributed Intelligent Agents 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
Teaching Challenges • How to teach C# and .NET along with Java and CORBA? • Should students be forced to learn both? • Limited knowledge of C# and .NET • Lacked resources for teaching C# and .NET
Teaching Agent Programming • Distributed Application Programming • Reasoning Engines • Agent Communication Languages and Protocols • Knowledge Representation & Ontologies • Learning Mechanisms • Other
Alternative Programming Language • Gave students option to use Java or C# • Let students know there would be additional challenges to using C# • I was not C# expert • But I would support them • Support of Microsoft Univ. Relations Rep was key • Rob Reed
Incremental, “hands-on” Learning for Students • Construct homeworks to allow students to learn C# or Java on their own • Each homework builds on each other • Final homework integrates concepts learned and constructed classes
Course Organization • Autonomous Agent and MAS theory and practice • Homeworks • Purpose: Learn Java or C# with useful classes • Projects • Use Java or C# to program agents • Project 1: SoccerBots • Project 2: DABORAS • Project 3: Distributed Intelligent Agent app • Presentation and Paper
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
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!
Project 2: DABORAS • Distributed Agent-Based Online Realtime Auction 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
Project 3: Distributed Intelligent Agent App • Students decide on project • Instructor approves topic
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
DABORAS- C#Technologies Used • C# and .NET Framework • .NET Remoting • C++ to C# Interoperability
CLIPS Inference Engine • Rule-based, Forward Chaining Reasoning • Implemented in C • No Library wrapper or DLL existed for C# • But one existed for C++
C# CLIPS Wrapper • New wrapper written using .NET Managed C++ • Wrapper compiled into DLL • Became possible to make calls to CLIPS from C# • Scott Stone and Dan McIntyre (undergrads)
DABORAS Communication Architecture • .NET Remoting used • Makes remote methods available to other distributed applications • All arguments serialized and sent over communication channel in a SOAP message • Peer-to-peer messaging and information sharing
Communication in .NET Remoting • 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
Teaching Challenges Revisited • 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
Benefits • Instructor learns from students • Students gain self-confidence • Microsoft provides cool tools and useful books • Rob Reed (Thanks!) • Students gain valuable, marketable experience
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 choose C#
Summary • Gave overview of agent programming • Described course organization • “Incremental learning” • Self-taught programming • Lessons learned using C# and .NET as alternative to Java and CORBA