haifa.shopsim
Interface ShopData

All Known Implementing Classes:
GeneralShopDataArray

public interface ShopData

This is an interface for the datastrucute class that contains the data revlevant to a specific jobshop problem. The formulation of the problem is as following:

i=1,....,I machines
r=1,....,R routes
for each route r, there exist steps (1,r),....,(1,Kr). there is a machine for each of these steps.
there are also Nr jobs in each route. N = N1+....+NR is the total sum of jobs
The duration of each step for each job is Xr,o,j r = 1,....,R being the route, o = 1,...,Kr being the step on the route, j = 1,...,Nr being the specific job on the route.

Stated above is the most general problem, (there might be some room to add setup times in later versions).

Job types are numbered t=1,....,T. Each job type has an associated route. There may be several copies of jobs from a single type.

Jobs are identified using a unique string, the string is _ thus the strings "12_1","12_2",....,"12_100" uniqly identify the 100 jobs of type 12.

For each job type, the processing times are identical.


Method Summary
 java.util.List getCi(int i)
          Returns a List of all operations in machine i.
 int getI()
          Returns number of machines.
 java.lang.String[] getJobsOfRoute(int r)
          Returns all of of route r.
 java.lang.String[] getJobsOfType(int t)
          Returns all of the jobs of type t.
 int getK()
          Returns the total number of steps/classes/buffers (sum of Kr)
 int getKr(int r)
          Returns number of steps in route r
 int getMachine(Operation op)
          Returns the machine that performs the following operation.
 int getN()
          Returns number of jobs.
 int getNr(int r)
          Returns number of jobs in route r
 int getNt(int t)
          Returns the number of jobs of type t
 int getR()
          Returns number of routes.
 java.util.List getRoute(int r)
          Returns a List of all operations in route r
 int getRouteOfType(int t)
          Returns the route of type t.
 int getSizeCi(int i)
          Returns the number of operations in machine i.
 int getT()
          Returns the number of types of jobs.
 int getTr(int r)
          Returns the number of types of jobs that are on route r.
 int[] getTypesOfRoute(int r)
          Returns an array of type number of jobs that are on route r.
 double getXto(int t, int o)
          Returns the processing time of job of type t, on step o of it's route.
 boolean isIdenticalJobs()
          Ask if the shop has identical jobs.
 boolean isMostGeneralJobShop()
          Ask if the shop is most general, not proportional, not similar.
 boolean isProportinalJobs()
          Ask if the shop has proportional jobs. i.e N1,...,Nr are proportional to some N (there exists p1,...,pr such that Ni=piN).
 boolean isSingleRoute()
          Ask is shop is a jobshop with a single route same as getR()==1
 

Method Detail

getI

public int getI()
Returns number of machines.

getR

public int getR()
Returns number of routes.

getN

public int getN()
Returns number of jobs.

getT

public int getT()
Returns the number of types of jobs.

getK

public int getK()
Returns the total number of steps/classes/buffers (sum of Kr)

getKr

public int getKr(int r)
Returns number of steps in route r

getNr

public int getNr(int r)
Returns number of jobs in route r

getNt

public int getNt(int t)
Returns the number of jobs of type t

getTr

public int getTr(int r)
Returns the number of types of jobs that are on route r.

getTypesOfRoute

public int[] getTypesOfRoute(int r)
Returns an array of type number of jobs that are on route r.

getJobsOfType

public java.lang.String[] getJobsOfType(int t)
Returns all of the jobs of type t. The length of this array is getNt(t).

getJobsOfRoute

public java.lang.String[] getJobsOfRoute(int r)
Returns all of of route r. This includes all of the jobs of all types that are associated with route r

getMachine

public int getMachine(Operation op)
Returns the machine that performs the following operation.

getCi

public java.util.List getCi(int i)
Returns a List of all operations in machine i.

getSizeCi

public int getSizeCi(int i)
Returns the number of operations in machine i.

getXto

public double getXto(int t,
                     int o)
Returns the processing time of job of type t, on step o of it's route.

getRouteOfType

public int getRouteOfType(int t)
Returns the route of type t.

getRoute

public java.util.List getRoute(int r)
Returns a List of all operations in route r

isSingleRoute

public boolean isSingleRoute()
Ask is shop is a jobshop with a single route same as getR()==1

isIdenticalJobs

public boolean isIdenticalJobs()
Ask if the shop has identical jobs. If so, use getXr()

isProportinalJobs

public boolean isProportinalJobs()
Ask if the shop has proportional jobs. i.e N1,...,Nr are proportional to some N (there exists p1,...,pr such that Ni=piN).

isMostGeneralJobShop

public boolean isMostGeneralJobShop()
Ask if the shop is most general, not proportional, not similar.