GENIUS - the Interactive Intelligence Group

advertisement
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
Standalone
computer
GENIUS Swing
GUI
GENIUS
Core
researcher
Internet (HTTP)
GENIUS Web Application
GENIUS
Web GUI
GENIUS
Core
Data
experimental
subjects
GENIUS Simulator Web Application
Server: wenen
Container: Tomcat 6
Address: http://mmi.
tudelft.nl/GeniusWEB
GENIUS
Simulator
Web GUI
GENIUS
Core
Data
researchers
Legend:
Application
Component
GENIUS - Core
negotiator.repository
Analysis
negotiator.utility
Negotiation setting
Domain
representation
Outcome space
analysis
negotiator.issue
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-ToMany
Many-toMany
Logging
Repository
negotiator.analysis
negotiator.agentparams
negotiator.logging
negotiator.protocol
GENIUS Swing GUI
negotiator.gui.domainrepository
negotiator.gui.agentrepository
negotiator.gui.tab
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
Bidding
Explanation
Preference
elicitation
Explanation
Activities
Client-side (browser)
Analysis
Internet (AJAX: HTTP calls, XML responses)
Preference
elicitiation
Bidding
interface
Analysis
Initializer
GENIUS Core
Legend
Page
Web page
(JSP)
Navigation via
links
Home
Page
AJAX calls
Proc.
Web service
(Servlet)
Internal Java
calls
Server-side
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?
Download