genius general environment for negotiation with intelligent multi-purpose usage simulation
Post on 19-Dec-2015
222 views
TRANSCRIPT
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 Web Application
GENIUSCore
Data
GENIUS Desktop Application
GENIUSCore
Server: wenenContainer: Tomcat 6Address: http://mmi.
tudelft.nl/GeniusWEB
Standalone computer
GENIUS Simulator Web Application
GENIUSCore
Data
experimental subjects
GENIUS Web GUI
GENIUSSimulator Web GUI
researchers
GENIUS SwingGUI
Internet (HTTP)
researcher
Component
Legend:
Application
Repository
Agent
Repository
Negotiation setting
Repository
Domain representation
Preferences representation
Negotiation protocol
One-to-oneOne-To-
ManyMany-to-
Many
Analysis
Agent Skeleton
Logging
Simulation Control
Outcome space analysis
Negotiation danceanalysis
Agent introspectionAgent
parameters
GENIUS - Core
negotiator.protocol
negotiator.loggingnegotiator.analysis
negotiator.issue
negotiator.utility
negotiator.tournament
negotiator.repository
negotiator.Agent
negotiator.agentparams
agents.*
GENIUS Swing GUInegotiator.gui.tab
negotiator.gui.agentrepository negotiator.gui.tournamentvars
negotiator.gui.domainrepository
GENIUS Web GUI
Activities
Bidding interface
Preference elicitiation
Analysis
List of available activities
Preference elicitation
Bidding
Exp
lan
atio
n
Exp
lan
atio
n
Analysis
Logon Page
Register account
GENIUS Core
Initializer
Web page (JSP)Page
Home Page
Web service (Servlet)
Proc.
Legend
Internal Java calls
Internet (AJAX: HTTP calls, XML responses)
AJAX callsNavigation via links
Server-side
Client-side (browser)
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?