Q - The type of SimQueues supported.public abstract class AbstractSimQueuePredictor<Q extends SimQueue> extends Object implements SimQueuePredictor<Q>
SimQueuePredictor.Copyright (C) 2005-2017 Jan de Jongh, TNO
This file is covered by the LICENSE file in the root of this project.
| Constructor and Description |
|---|
AbstractSimQueuePredictor() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitmatchVisitLogs_SQ_SVcreateQueueState, createWorkloadSchedule_SQ_SV_ROEL_U, createWorkloadSchedule_SQ_SV, doQueueEvents_SQ_SV_ROEL_U, doWorkloadEvents_SQ_SV_ROEL_U, doWorkloadEvents_SQ_SV, getNextQueueEventTimeBeyond, updateToTimehasServerAccessCredits, isQueueAccessVacation, isStartArmedpublic SimQueuePrediction_SQ_SV<Q> predict_SQ_SV_ROEL_U(Q queue, Set<SimJQEvent> workloadEvents) throws SimQueuePredictionException
SimQueuePredictor.predict_SQ_SV_ROEL_U(Q, java.util.Set<org.javades.jqueues.r5.entity.jq.SimJQEvent>).
The implementation uses a SimQueueState and a WorkloadSchedule_SQ_SV_ROEL_U as representations for
the queue state and the workload state, respectively, and relies on abstract (or default) methods for
the behavior of the specific queue type:
SimQueueEventPredictor.createWorkloadSchedule_SQ_SV_ROEL_U(Q, java.util.Set<org.javades.jqueues.r5.entity.jq.SimJQEvent>) for the creation of a, possibly queue-type specific,
WorkloadSchedule_SQ_SV_ROEL_U from the workload events,
SimQueueEventPredictor.createQueueState(Q, boolean) for the creation of a, possibly queue-type specific, SimQueueState,
is_ROEL_U_UnderWorkloadQueueEventClashes(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, org.javades.jqueues.r5.util.predictor.workload.WorkloadSchedule_SQ_SV_ROEL_U, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>),
SimQueueEventPredictor.getNextQueueEventTimeBeyond(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>) for determining the scheduled time and type(s) of the next queue-state event(s),
SimQueueEventPredictor.updateToTime(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState, double) for progressing time on the queue state without processing events,
SimQueueEventPredictor.doWorkloadEvents_SQ_SV_ROEL_U(Q, org.javades.jqueues.r5.util.predictor.workload.WorkloadSchedule_SQ_SV_ROEL_U, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>, java.util.Set<org.javades.jqueues.r5.entity.jq.job.visitslogging.JobQueueVisitLog<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>>) for the processing of the next workload events (like scheduled arrivals),
SimQueueEventPredictor.doQueueEvents_SQ_SV_ROEL_U(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>, java.util.Set<org.javades.jqueues.r5.entity.jq.job.visitslogging.JobQueueVisitLog<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>>) for the processing of the next queue events (like scheduled departures).
Note that the implementation actually updates the SimQueueState object,
but leaves the WorkloadSchedule_SQ_SV_ROEL_U object untouched.
predict_SQ_SV_ROEL_U in interface SimQueuePredictor<Q extends SimQueue>queue - The queue, non-null.workloadEvents - The workload events; events related to other queues are allowed and are to be ignored.SimQueuePredictionException - If a prediction is (e.g.) too complex to generate
(SimQueuePredictionComplexityException),
if invalid input has been supplied to the predictor
(SimQueuePredictionInvalidInputException),
or if a unique prediction cannot be generated
(SimQueuePredictionAmbiguityException).WorkloadSchedule.getNextEventTimeBeyond(org.javades.jqueues.r5.entity.jq.queue.SimQueue, double, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>)public SimQueuePrediction_SQ_SV<Q> predict_SQ_SV_IOEL_U(Q queue, NavigableMap<Double,Set<SimJQEvent>> workloadEventsMap, NavigableMap<Double,Set<SimJQEvent>> processedEventsMap) throws SimQueuePredictionException
SimQueuePredictor.predict_SQ_SV_IOEL_U(Q, java.util.NavigableMap<java.lang.Double, java.util.Set<org.javades.jqueues.r5.entity.jq.SimJQEvent>>, java.util.NavigableMap<java.lang.Double, java.util.Set<org.javades.jqueues.r5.entity.jq.SimJQEvent>>).
The implementation uses a SimQueueState and a WorkloadSchedule_SQ_SV_ROEL_U as representations for
the queue state and the workload state, respectively, and relies on abstract (or default) methods for
the behavior of the specific queue type:
SimQueueEventPredictor.createWorkloadSchedule_SQ_SV(Q, java.util.Map<java.lang.Double, java.util.Set<org.javades.jqueues.r5.entity.jq.SimJQEvent>>) for the creation of a, possibly queue-type specific,
WorkloadSchedule_SQ_SV from the workload events,
SimQueueEventPredictor.createQueueState(Q, boolean) for the creation of a, possibly queue-type specific, SimQueueState,
is_U_UnderWorkloadQueueEventClashes(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, org.javades.jqueues.r5.util.predictor.workload.WorkloadSchedule_SQ_SV, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>),
SimQueueEventPredictor.getNextQueueEventTimeBeyond(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>) for determining the scheduled time and type(s) of the next queue-state event(s),
SimQueueEventPredictor.updateToTime(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState, double) for progressing time on the queue state without processing events,
SimQueueEventPredictor.doWorkloadEvents_SQ_SV(Q, org.javades.jqueues.r5.util.predictor.workload.WorkloadSchedule_SQ_SV, org.javades.jqueues.r5.util.predictor.state.SimQueueState, java.util.Set<org.javades.jqueues.r5.entity.jq.job.visitslogging.JobQueueVisitLog<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>>) for the processing of the next workload events (like scheduled arrivals),
SimQueueEventPredictor.doQueueEvents_SQ_SV_ROEL_U(Q, org.javades.jqueues.r5.util.predictor.state.SimQueueState<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>, java.util.Set<org.javades.jqueues.r5.entity.jq.job.visitslogging.JobQueueVisitLog<org.javades.jqueues.r5.entity.jq.job.SimJob, Q>>) for the processing of the next queue events (like scheduled departures).
Note that the implementation actually updates the SimQueueState object,
but leaves the WorkloadSchedule_SQ_SV object untouched.
predict_SQ_SV_IOEL_U in interface SimQueuePredictor<Q extends SimQueue>queue - The queue, non-null.workloadEventsMap - The workload events as a map from event time onto the
(ordered!) set of events occurring at that time;
events related to other queues are allowed and are to be ignored.processedEventsMap - An optional map in which all events processed at the queue (including workload events)
are stored unambiguously; the events in a value set are in processing ordered
(you can use this to resolve ambiguities in the visit logs like equal departure times).SimQueuePredictionException - If a prediction is (e.g.) too complex to generate
(SimQueuePredictionComplexityException),
if invalid input has been supplied to the predictor
(SimQueuePredictionInvalidInputException),
or if a unique prediction cannot be generated
(SimQueuePredictionAmbiguityException).WorkloadSchedule.getNextEventTimeBeyond(org.javades.jqueues.r5.entity.jq.queue.SimQueue, double, java.util.Set<org.javades.jqueues.r5.entity.SimEntitySimpleEventType.Member>)protected boolean is_ROEL_U_UnderWorkloadQueueEventClashes(Q queue, SimQueueState<SimJob,Q> queueState, WorkloadSchedule_SQ_SV_ROEL_U workloadSchedule, Set<SimEntitySimpleEventType.Member> workloadEventTypes, Set<SimEntitySimpleEventType.Member> queueEventTypes)
queue - The queue, non-null.queueState - The queue-state, non-null.workloadSchedule - The workload schedule, non-null.workloadEventTypes - The types of the workload event(s).queueEventTypes - The types of the workload event(s).IllegalArgumentException - If any of the input arguments is null or,
for the sets, empty or containing null,
or if the time on the queue state is invalid.protected boolean is_U_UnderWorkloadQueueEventClashes(Q queue, SimQueueState<SimJob,Q> queueState, WorkloadSchedule_SQ_SV workloadSchedule, Set<SimEntitySimpleEventType.Member> queueEventTypes)
queue - The queue, non-null.queueState - The queue-state, non-null.workloadSchedule - The workload schedule, non-null.queueEventTypes - The types of the workload event(s).IllegalArgumentException - If any of the input arguments is null or,
for the sets, empty or containing null,
or if the time on the queue state is invalid.Copyright © 2018. All rights reserved.