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?