Programming Agents Williams

download Programming Agents Williams

of 31

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