Sunteți pe pagina 1din 31

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

Andrew B. Williams

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

Andrew B. Williams

Agent Programming

Integrating distributed programming techniques and AI tools to create a multi-agent system program Whats an intelligent agent? Whats a multi-agent system?

Andrew B. Williams

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

Andrew B. Williams

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)

Andrew B. Williams

Intelligent Agents and Multi-Agent Systems


(Adapted from G. Berkey and A. Agah)

#Brain 100s +
DAI/ 10s MAS
Multi-agent Swarms

Swarm Systems

Multi-agent control
Distributed Robotic Systems Robotics Centralized Control

AI
Machines

# Body
Multi-machine Systems

Andrew B. Williams

10s

100s +

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

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 interoperating agents -- not just data. Semantic Web is playground of agents (K. Sycara)

Andrew B. Williams

Web Services and MAS Research

Deal with similar issues (K.Sycara, CMU) Must be discovered

Agent matchmaking

Must be selected

Learning preference models


Communication Planning and coordination

Must be involved

Must be composed

Andrew B. Williams

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

Andrew B. Williams

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

Andrew B. Williams

Teaching Agent Programming


Distributed Application Programming Reasoning Engines Agent Communication Languages and Protocols Knowledge Representation & Ontologies Learning Mechanisms Other

Andrew B. Williams

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

Andrew B. Williams

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

Andrew B. Williams

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

Andrew B. Williams

Homework Organization

Homework 1

Web search for IA and MAS Token frequency counter String, File,Hashtables, Vectors URL Retrieval, GUI

Homework 2

Homework 3

Homework 4

Simple Web (crawler) agent Integrate homeworks 2 and 3

Andrew B. Williams

Project 1: SoccerBots

Implement subsumption architecture Incorporate a reasoning engine


JESS (No CLIPS with C# wrappers) Windows 2000 Platform Prizes from Microsoft!

Double elimination soccer tournament


Andrew B. Williams

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

Andrew B. Williams

Project 3: Distributed Intelligent Agent App


Students decide on project Instructor approves topic

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

Andrew B. Williams

DABORAS- C#Technologies Used

C# and .NET Framework .NET Remoting C++ to C# Interoperability

Andrew B. Williams

CLIPS Inference Engine

Rule-based, Forward Chaining Reasoning Implemented in C No Library wrapper or DLL existed for C#

But one existed for C++

Andrew B. Williams

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)

Andrew B. Williams

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

Andrew B. Williams

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

Andrew B. Williams

Teaching Challenges Revisited

How to teach C# and .NET along with Java and CORBA?


Incremental learning and assignments Let students choose Jump start students Let them teach themselves Rob Reed or your Univ. equivalent

Limited knowledge of C# and .NET


Lacked resources for teaching C# and .NET

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

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 choose C#

Andrew B. Williams

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

Andrew B. Williams

S-ar putea să vă placă și