GENIUS - the Interactive Intelligence Group

Download Report

Transcript GENIUS - the Interactive Intelligence Group

GENIUS

General Environment for Negotiation with Intelligent multi-purpose Usage Simulation

Background

• The original purpose of GENIUS: assist in designing of generic efficient negotiation strategies • GENIUS is used in education (teach design of generic efficient negotiation strategies) • Can be used as a testbed for automated negotiating strategies • Can be used in experiments with human negotiators • Can be used as a training environment (training of negotiation skills)

Architecture - At Glance

GENIUS Desktop Application GENIUS Swing GUI GENIUS Core Standalone computer researcher Internet (HTTP) GENIUS Web Application GENIUS Web GUI GENIUS Core Data experimental subjects researchers Legend: Component Server: wenen Container: Tomcat 6 Address: http://mmi.

tudelft.nl/GeniusWEB GENIUS Simulator Web Application GENIUS Simulator Web GUI GENIUS Core Data Application

negotiator.repository

GENIUS - Core

negotiator.issue

negotiator.utility

Analysis Negotiation setting

Outcome space analysis Domain representation Preferences representation negotiator.Agent

negotiator.tournament

Repository

Agent

Agent introspection agents.* Agent Skeleton Agent parameters Simulation Control Repository

Negotiation protocol

Negotiation dance analysis One-to-one One-To Many Many-to Many Logging Repository negotiator.analysis

negotiator.agentparams

negotiator.logging

negotiator.protocol

GENIUS Swing GUI

negotiator.gui.tab

negotiator.gui.domainrepository

negotiator.gui.agentrepository

negotiator.gui.tournamentvars

GENIUS Swing GUI

negotiator.gui.negosession

GENIUS Swing GUI

negotiator.gui.chart

negotiator.gui.progress

GENIUS Swing GUI

negotiator.gui.tree

GENIUS Web GUI

Register account List of available activities Logon Page Activities Preference elicitation Bidding Internet (AJAX: HTTP calls, XML responses) Analysis Preference elicitiation Bidding interface Analysis Initializer Client-side (browser) Server-side GENIUS Core Legend Page Web page (JSP) Navigation via links Home Page AJAX calls Proc.

Web service (Servlet) Internal Java calls

Project Management

• Source code is stored on SVN: https://mmi.tudelft.nl/svn/nego • Trac:https://mmi.tudelft.nl/cgi-bin/negotiation.cgi

• Sub-projects (branches): – GENIUS Core + GENIUS Swing GUI: • NegotiatorGUI – stable version used for ANAC (Dmytro) • GeniusBI – used by Bar-Ilan university (Yinon, ) • GeniusS – main development branch (Dmytro, Tim, Colin) • NegotiatorGRID – (Crisitina, Dmytro) – GENIUS Web • GeniusWeb – Genius Web – GENIUS Simulator Web • GeniusWebSimulator – (Dmytro, Alper)

Documentation

• Available: – User guide explaining how to use GENIUS Desktop Application (requires minor revision): • Installation • Working with domains/profiles • Explained how to make own agent (uses ZI agent as an example) • To do: – User guide for GENIUS Web Application – Programmer’s guide: • Explain GENIUS architecture • Explain modules in details (classes, relations between classes, interaction between objects, etc.) – Java Doc

Technologies

• Programming language: Java, version >1.5

• Used technologies: – GENIUS Desktop Application: • SWING – used in GUI • JFreeChart - used in GUI to draw charts – GENIUS Web Application: • J2EE (Java Enterprise Edition) – JSP (Java Server Pages) - used to create HTML pages that are shown to a user – Servlets – establish interaction (on the server) between user interface and GENIUS Core – JAXB (Java Architecture for XML Binding) – used to (de)serialize objects (actions, bids) into (from) XML format.

• JavaScript – used for scripting of user’s GUI (redrawing tables, charts, etc.) • AJAX – used to make async. calls to the server without refreshing browser • Jquery – used to simplify access to AJAX and elements of the user’s GUI • Tomcat >6.0 – a server-side run-time enviroment

GENIUS in Education

• AI Techniques: – See NegotiatorGUI\doc\assignment.pdf

– A negotiation session in the beginning – Students design own automated strategies in GENIUS • Field trips (demos, summer schools, etc.) – Install Genius Web on a laptop (server) – take a wirred router (ask Ruud/Bart) and sufficient number of cables – configure the router to generate dynamic IP – assign a static IP address to the laptop

Short-term planning

• Add a Web interface for simulations • Extend preferences representation module to support: – complex utility functions (e.g., dependencies) – hard constraints – (qualitative preferences, e.g., CP-nets) • Extend analytical toolbox with: – cache for optimal solutions – analysis of one-to-many and many-to-many negotiations – “re-play” of negotiations from logs • Missing documentation

Advices

• Split GENIUS Core in a separate project • Manage the GENIUS Core exclusively by VICI team • Use “extends” instead of changing the GENIUS Core classes • Project maintenance and development can be delegated to: – GENIUS Core -> Tim – Other modules -> Wouter, Bart, Ruud

Ideas

• GENIUS Web: – Allow long negotiations (days, weeks) – Introduce mediator – Extend human bidding GUI with an advice from an agent (Tim?) • Add new preference elicitation tools • Choose a software license (GPL, Apache,…) • Make a SourceForge account?

Open questions

• Make a SourceForge account?