FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.benchmarks.meetings.MeetingScheduling Class Reference

Distributed meeting scheduling problem generator. More...

Classes

enum  Mode
 The mode of encoding. More...

Public Member Functions

 MeetingScheduling (final int nbrAgents, final int nbrMeetings, final int nbrAgentsPerMeeting, final int nbrSlots, final AddableInteger infinity, final double tightness, Integer maxCost)
 Constructor.

Static Public Member Functions

static void main (String[] args) throws IOException
 Creates a problem instance and saves it to a file.
static Element createStats (String name, String value)
 Creates a "stats" element.

Private Member Functions

Document toXCSP (final boolean intensional, final Mode mode, AddableInteger infinity)
 Creates an XCSP representation of the problem.

Private Attributes

int nbrAgents
 The number of agents.
ArrayList< ArrayList< Integer > > attendees
 For each meeting, its list of attendees.
ArrayList< ArrayList< Integer > > meetings
 For each participant, its list of meetings.
ArrayList< ArrayList< Integer > > preferences
 The (finite) cost that each participant assigns to having a meeting in each time slot.
ArrayList< ArrayList< Integer > > absences
 For each agent, the list of time slots at which it is NOT available.
final int nbrSlots
 Number of available time slots for each meeting.
final int nbrMeetings
 The number of metings.
final int nbrAgentsPerMeeting
 The number of agents per meeting.
final double targetTightness
 The target tightness value, where the tightness is the probability of being unavailable at a given time slot.
double avgTightness = 0.0
 The real average tightness value, where the tightness is the probability of being unavailable at a given time slot.
final Integer maxCost
 The maximum cost for attending a meeting at any given time slot; if null, no agent preferences are considered.
final String instanceName
 The name of the problem instance.

Detailed Description

Distributed meeting scheduling problem generator.

Author
Thomas Leaute

Constructor & Destructor Documentation

◆ MeetingScheduling()

frodo2.benchmarks.meetings.MeetingScheduling.MeetingScheduling ( final int nbrAgents,
final int nbrMeetings,
final int nbrAgentsPerMeeting,
final int nbrSlots,
final AddableInteger infinity,
final double tightness,
Integer maxCost )

Constructor.

Parameters
nbrAgentsnumber of agents in the overall pool of agents
nbrMeetingsnumber of meetings
nbrAgentsPerMeetingnumber of agents per meeting
nbrSlotsnumber of available time slots for each meeting
infinitythe cost incurred by violating one constraint
tightnessfor each agent and each time slot, the probability of absence
maxCostif not null, each attendee assigns a random cost in [0, value] to having any meeting at each time slot

References absences, attendees, maxCost, meetings, nbrAgents, nbrAgentsPerMeeting, nbrMeetings, nbrSlots, and preferences.

Referenced by main().

Member Function Documentation

◆ createStats()

Element frodo2.benchmarks.meetings.MeetingScheduling.createStats ( String name,
String value )
static

Creates a "stats" element.

Parameters
namethe value of the "name" attribute
valuethe text
Returns
a new "stats" element

Referenced by toXCSP().

◆ main()

void frodo2.benchmarks.meetings.MeetingScheduling.main ( String[] args) throws IOException
static

Creates a problem instance and saves it to a file.

Parameters
args[-i] [-EAV] [-PEAV] [-EASV] [-infinity value] [-tightness value] [-maxCost value] nbrAgents nbrMeetings nbrAgentsPerMeeting nbrSlots
Exceptions
IOExceptionif an I/O error occurs

References frodo2.benchmarks.meetings.MeetingScheduling.Mode.EASV, frodo2.benchmarks.meetings.MeetingScheduling.Mode.EAV, frodo2.solutionSpaces.AddableInteger.fromString(), maxCost, MeetingScheduling(), nbrAgents, nbrAgentsPerMeeting, nbrMeetings, nbrSlots, frodo2.benchmarks.meetings.MeetingScheduling.Mode.PEAV, frodo2.solutionSpaces.AddableInteger.PlusInfinity.PLUS_INF, and toXCSP().

Here is the call graph for this function:

◆ toXCSP()

Document frodo2.benchmarks.meetings.MeetingScheduling.toXCSP ( final boolean intensional,
final Mode mode,
AddableInteger infinity )
private

Creates an XCSP representation of the problem.

Parameters
intensionalwhether to use intensional constraints
modethe mode
infinitythe cost incurred by violating one constraint
Returns
an XCSP Document

References absences, attendees, createStats(), frodo2.benchmarks.meetings.MeetingScheduling.Mode.EASV, meetings, nbrSlots, frodo2.benchmarks.meetings.MeetingScheduling.Mode.PEAV, preferences, and frodo2.solutionSpaces.AddableInteger.toString().

Referenced by main().

Here is the call graph for this function:

Member Data Documentation

◆ absences

ArrayList< ArrayList<Integer> > frodo2.benchmarks.meetings.MeetingScheduling.absences
private

For each agent, the list of time slots at which it is NOT available.

Referenced by MeetingScheduling(), and toXCSP().

◆ attendees

ArrayList< ArrayList<Integer> > frodo2.benchmarks.meetings.MeetingScheduling.attendees
private

For each meeting, its list of attendees.

Referenced by MeetingScheduling(), and toXCSP().

◆ avgTightness

double frodo2.benchmarks.meetings.MeetingScheduling.avgTightness = 0.0
private

The real average tightness value, where the tightness is the probability of being unavailable at a given time slot.

◆ instanceName

final String frodo2.benchmarks.meetings.MeetingScheduling.instanceName
private

The name of the problem instance.

◆ maxCost

final Integer frodo2.benchmarks.meetings.MeetingScheduling.maxCost
private

The maximum cost for attending a meeting at any given time slot; if null, no agent preferences are considered.

Referenced by main(), and MeetingScheduling().

◆ meetings

ArrayList< ArrayList<Integer> > frodo2.benchmarks.meetings.MeetingScheduling.meetings
private

For each participant, its list of meetings.

Referenced by MeetingScheduling(), and toXCSP().

◆ nbrAgents

int frodo2.benchmarks.meetings.MeetingScheduling.nbrAgents
private

The number of agents.

Referenced by main(), and MeetingScheduling().

◆ nbrAgentsPerMeeting

final int frodo2.benchmarks.meetings.MeetingScheduling.nbrAgentsPerMeeting
private

The number of agents per meeting.

Referenced by main(), and MeetingScheduling().

◆ nbrMeetings

final int frodo2.benchmarks.meetings.MeetingScheduling.nbrMeetings
private

The number of metings.

Referenced by main(), and MeetingScheduling().

◆ nbrSlots

final int frodo2.benchmarks.meetings.MeetingScheduling.nbrSlots
private

Number of available time slots for each meeting.

Referenced by main(), MeetingScheduling(), and toXCSP().

◆ preferences

ArrayList< ArrayList<Integer> > frodo2.benchmarks.meetings.MeetingScheduling.preferences
private

The (finite) cost that each participant assigns to having a meeting in each time slot.

Referenced by MeetingScheduling(), and toXCSP().

◆ targetTightness

final double frodo2.benchmarks.meetings.MeetingScheduling.targetTightness
private

The target tightness value, where the tightness is the probability of being unavailable at a given time slot.


The documentation for this class was generated from the following file: