All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Public Types | Public Member Functions | List of all members
paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator > Class Template Reference

The class for solving the Generalised Assignment problem using Iterative Rounding. More...

#include <generalised_assignment.hpp>

Public Types

using Job = typename std::iterator_traits< JobIter >::value_type
 
using Machine = typename std::iterator_traits< MachineIter >::value_type
 
using Compare = utils::compare< double >
 
using MachineRows = std::unordered_set< lp::row_id >
 
using ColIdx = std::vector< lp::col_id >
 
using ErrorMessage = boost::optional< std::string >
 

Public Member Functions

 generalised_assignment (MachineIter mbegin, MachineIter mend, JobIter jbegin, JobIter jend, const Cost &c, const ProceedingTime &t, const MachineAvailableTime &T, JobsToMachinesOutputIterator job_to_machines)
 
ErrorMessage check_input_validity ()
 
std::size_t idx (std::size_t j_idx, std::size_t m_idx)
 
std::size_t get_j_idx (std::size_t idx)
 
std::size_t get_m_idx (std::size_t idx)
 
MachineRows & get_machine_rows ()
 
Compare get_compare ()
 
std::size_t get_machines_cnt () const
 
std::size_t get_jobs_cnt () const
 
boost::iterator_range
< MachineIter > 
get_machines ()
 
boost::iterator_range< JobIter > get_jobs ()
 
ColIdx & get_col_idx ()
 
JobsToMachinesOutputIterator get_job_to_machines ()
 
const ProceedingTime & get_proceeding_time ()
 
const MachineAvailableTime & get_machine_available_time ()
 
const Cost & get_cost () const
 

Detailed Description

template<typename MachineIter, typename JobIter, typename Cost, typename ProceedingTime, typename MachineAvailableTime, typename JobsToMachinesOutputIterator>
class paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >

The class for solving the Generalised Assignment problem using Iterative Rounding.

Template Parameters
MachineIter
JobIter
Cost
ProceedingTime
MachineAvailableTime
JobsToMachinesOutputIterator

Definition at line 170 of file generalised_assignment.hpp.

Constructor & Destructor Documentation

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::generalised_assignment ( MachineIter  mbegin,
MachineIter  mend,
JobIter  jbegin,
JobIter  jend,
const Cost &  c,
const ProceedingTime &  t,
const MachineAvailableTime &  T,
JobsToMachinesOutputIterator  job_to_machines 
)
inline

Constructor.

Definition at line 184 of file generalised_assignment.hpp.

Member Function Documentation

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
ErrorMessage paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::check_input_validity ( )
inline

Checks if input is valid.

Definition at line 196 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
ColIdx& paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_col_idx ( )
inline

Returns the vector of LP column IDs.

Definition at line 254 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
Compare paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_compare ( )
inline

Returns the double comparison object.

Definition at line 225 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
const Cost& paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_cost ( ) const
inline

Returns the cost function (function from (job, machine) pairs into the cost of executing the job on the machine).

Definition at line 279 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
std::size_t paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_j_idx ( std::size_t  idx)
inline

Returns the index of a job given the index of the edge between the job and a machine.

Definition at line 209 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
JobsToMachinesOutputIterator paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_job_to_machines ( )
inline

Returns the result output iterator.

Definition at line 259 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
boost::iterator_range<JobIter> paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_jobs ( )
inline

Returns the jobs iterator range.

Definition at line 247 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
std::size_t paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_jobs_cnt ( ) const
inline

Returns the number of jobs in the problem.

Definition at line 235 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
std::size_t paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_m_idx ( std::size_t  idx)
inline

Returns the index of a machine given the index of the edge between a job and the machine.

Definition at line 215 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
const MachineAvailableTime& paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_machine_available_time ( )
inline

Returns the machine available time function (function returning the time available on a given machine).

Definition at line 273 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
MachineRows& paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_machine_rows ( )
inline

Returns the LP rows corresponding to the machines.

Definition at line 220 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
boost::iterator_range<MachineIter> paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_machines ( )
inline

Returns the machines iterator range.

Definition at line 240 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
std::size_t paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_machines_cnt ( ) const
inline

Returns the number of machines in the problem.

Definition at line 230 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
const ProceedingTime& paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::get_proceeding_time ( )
inline

Returns the proceeding time function (function from (job, machine) pairs into the proceeding time of the job on the machine).

Definition at line 267 of file generalised_assignment.hpp.

template<typename MachineIter , typename JobIter , typename Cost , typename ProceedingTime , typename MachineAvailableTime , typename JobsToMachinesOutputIterator >
std::size_t paal::ir::generalised_assignment< MachineIter, JobIter, Cost, ProceedingTime, MachineAvailableTime, JobsToMachinesOutputIterator >::idx ( std::size_t  j_idx,
std::size_t  m_idx 
)
inline

Returns the index of the edge between a given job and a given machine.

Definition at line 203 of file generalised_assignment.hpp.


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