A set of positive examples consisting of short-term schedules for testing the acquisition of MiniZinc scheduling models
收藏资源简介:
To test the robustness of schedule model acquisition in a variety of situations, we generated 48,000 instances of schedules with variations in the following five dimensions: 1. task description, 2. temporal constraints, 3. resource constraints, 4. the introduction or absence of noisy columns, and 5. the number of tasks and resources in a schedule. The file 'schedule_robustness_dimensions.pl' contains the list of constraints used to generate each table which, thus, need to be acquired. The dimensions are: 1. Different ways to describe a task:<br> a. only the start time and duration columns are part of the table, the task duration is a pre-assigned input parameter,<br> b. only the start time and end time columns are part of the table, the task duration is a pre-assigned input parameter,<br> c. only the duration and end time columns are part of the table, the task duration is a pre-assigned input parameter,<br> d. all three columns are present in the table, the task duration is a pre-assigned input parameter,<br> e. the start time, duration and end time columns are all part of the table, and the task duration is calculated using a formula,<br> f. only the start time and end time columns are part of the table, and the task duration is calculated using a formula,<br> g. only the duration and end time columns are part of the table, and the task duration is calculated using a formula,<br> h. all three columns are present in the table, and the task duration is calculated using a formula. 2. Different ways of expressing temporal constraints between task $i$ and its successor $j$<br> a. no temporal constraints at all,<br> b. $\textit{start}_i + \textit{cst} \leq \textit{start}_j$,<br> c. $\textit{start}_i + \textit{cst} \geq \textit{start}_j$,<br> d. $\textit{start}_i + \textit{cst}_1 \leq \textit{start}_j$, $\textit{start}_i + \textit{cst}_2 \geq \textit{start}_j$ ($\textit{cst}_2 \neq \textit{cst}_1$),<br> e. $\textit{start}_i + \textit{cst} = \textit{start}_j$,<br> f. $\textit{start}_i + \textit{cst} \leq \textit{end\_time}_j$,<br> g. $\textit{start}_i + \textit{cst} \geq \textit{end\_time}_j$,<br> h. $\textit{start}_i + \textit{cst}_1 \leq \textit{end\_time}_j$, $\textit{start}_i + \textit{cst}_2 \geq \textit{end\_time}_j$ ($\textit{cst}_2 \neq \textit{cst}_1$),<br> i. $\textit{start}_i + \textit{cst} = \textit{end\_time}_j$,<br> j. $\textit{end\_time}_i + \textit{cst} \leq \textit{start}_j$,<br> k. $\textit{end\_time}_i + \textit{cst} \geq \textit{start}_j$,<br> l. $\textit{end\_time}_i + \textit{cst}_1 \leq \textit{start}_j$, $\textit{end\_time}_i + \textit{cst}_2 \geq \textit{start}_j$ ($\textit{cst}_2 \neq \textit{cst}_1$),<br> m. $\textit{end\_time}_i + \textit{cst} = \textit{start}_j$,<br> n. $\textit{end\_time}_i + \textit{cst} \leq \textit{end\_time}_j$,<br> o. $\textit{end\_time}_i + \textit{cst} \geq \textit{end\_time}_j$,<br> p. $\textit{end\_time}_i + \textit{cst}_1 \leq \textit{end\_time}_j$, $\textit{end\_time}_i+\textit{cst}_2\geq\textit{end\_time}_j$ ($\textit{cst}_2\neq\textit{cst}_1$),<br> q. $\textit{end\_time}_i + \textit{cst} = \textit{end\_time}_j$.<br> Note that we only generate temporal constraints that mention the start time, i.e. 2b–2m, if the start time attribute is part of the table, i.e. not in the cases 1c or 1g. 3. Different ways of expressing resource scheduling constraints:<br> a. no scheduling constraints at all,<br> b. a DISJUNCTIVE constraint for each subset of tasks using the same resource,<br> c. a DIFFN constraint on all tasks, so that there is no overlap between tasks that will be assigned to the same resource,<br> d. a SHIFT constraint that forces the start and end times of each task to be within the same availability period, with no gap between two consecutive availability periods,<br> e. a CALENDAR constraint that forces the start and end time of each task assigned to a given resource $r$ to fall within the same period of availability of the resource $r$,<br> f. a set of DISJUNCTIVE constraints and a SHIFT constraint,<br> g. a DIFFN and a SHIFT constraint,<br> h. a set of DISJUNCTIVE constraints and a CALENDAR constraint,<br> i. a DIFFN and a CALENDAR constraint.<br> The combination of certain temporal and resource constraints may lead to infeasibility. For instance, in a temporal constraint of type 2c, the two corresponding tasks may overlap, which is incompatible with a DISJUNCTIVE constraint between these tasks, i.e. a constraint of type 3b. Therefore, we do not generate scheduling instances that mix the dimensions 2c, 2d, 2e, 2g, 2h, 2i, 2o, 2p, and 2q, with the dimensions 3b, 3c, 3f, 3g, 3h, and 3i. Note that the number of resources generated varies according to the number of tasks, as explained in Item 5. 4. Creating noisy columns or not:<br> a. no additional noisy columns,<br> b. three extra columns with random values standing for noise. 5. Number of tasks and resources referenced by the schedule:<br> a. 10 tasks and 2 resources,<br> b. 100 tasks and 10 resources,<br> c. 1,000 tasks and 20 resources,<br> d. 10,000 tasks and 100 resources. <br> For each valid combination of dimensions, we generated 10 instances of schedules.
为测试调度模型在多种场景下的鲁棒性,我们生成了48000个调度实例,其在以下五个维度存在差异化设置:1. 任务描述方式;2. 任务间时序约束;3. 资源调度约束;4. 是否引入噪声列;5. 调度内任务与资源的数量。文件`schedule_robustness_dimensions.pl`包含了用于生成每个待获取调度表的约束列表。各维度详情如下: 1. 任务描述的不同方式: a. 表中仅包含开始时间与时长列,任务时长为预分配输入参数; b. 表中仅包含开始时间与结束时间列,任务时长为预分配输入参数; c. 表中仅包含时长与结束时间列,任务时长为预分配输入参数; d. 表中同时包含上述三列,任务时长为预分配输入参数; e. 表中同时包含开始时间、时长与结束时间列,任务时长通过公式计算得到; f. 表中仅包含开始时间与结束时间列,任务时长通过公式计算得到; g. 表中仅包含时长与结束时间列,任务时长通过公式计算得到; h. 表中同时包含上述三列,任务时长通过公式计算得到。 2. 任务$i$与其后继任务$j$之间时序约束的不同表达形式: a. 无任何时序约束; b. $ ext{start}_i + ext{cst} leq ext{start}_j$; c. $ ext{start}_i + ext{cst} geq ext{start}_j$; d. $ ext{start}_i + ext{cst}_1 leq ext{start}_j$,$ ext{start}_i + ext{cst}_2 geq ext{start}_j$($ ext{cst}_2 eq ext{cst}_1$); e. $ ext{start}_i + ext{cst} = ext{start}_j$; f. $ ext{start}_i + ext{cst} leq ext{end\_time}_j$; g. $ ext{start}_i + ext{cst} geq ext{end\_time}_j$; h. $ ext{start}_i + ext{cst}_1 leq ext{end\_time}_j$,$ ext{start}_i + ext{cst}_2 geq ext{end\_time}_j$($ ext{cst}_2 eq ext{cst}_1$); i. $ ext{start}_i + ext{cst} = ext{end\_time}_j$; j. $ ext{end\_time}_i + ext{cst} leq ext{start}_j$; k. $ ext{end\_time}_i + ext{cst} geq ext{start}_j$; l. $ ext{end\_time}_i + ext{cst}_1 leq ext{start}_j$,$ ext{end\_time}_i + ext{cst}_2 geq ext{start}_j$($ ext{cst}_2 eq ext{cst}_1$); m. $ ext{end\_time}_i + ext{cst} = ext{start}_j$; n. $ ext{end\_time}_i + ext{cst} leq ext{end\_time}_j$; o. $ ext{end\_time}_i + ext{cst} geq ext{end\_time}_j$; p. $ ext{end\_time}_i + ext{cst}_1 leq ext{end\_time}_j$,$ ext{end\_time}_i + ext{cst}_2 geq ext{end\_time}_j$($ ext{cst}_2 eq ext{cst}_1$); q. $ ext{end\_time}_i + ext{cst} = ext{end\_time}_j$。 请注意,仅当任务表包含开始时间属性(即不属于1c或1g的情况)时,我们才会生成提及开始时间的时序约束(即2b至2m类约束)。 3. 资源调度约束的不同表达形式: a. 无任何调度约束; b. 对所有使用同一资源的任务子集施加互斥约束(DISJUNCTIVE Constraint); c. 对所有任务施加无重叠约束(DIFFN Constraint),确保分配至同一资源的任务之间不存在时间重叠; d. 施加移位约束(SHIFT Constraint),强制每个任务的开始与结束时间处于同一可用时段内,且连续可用时段之间无间隔; e. 施加日历约束(CALENDAR Constraint),强制分配至指定资源$r$的所有任务的开始与结束时间,均落在该资源$r$的同一可用时段内; f. 同时施加一组互斥约束与移位约束; g. 同时施加无重叠约束与移位约束; h. 同时施加一组互斥约束与日历约束; i. 同时施加无重叠约束与日历约束。 部分时序约束与资源约束的组合可能导致调度不可行。例如,在2c类时序约束下,对应两项任务可能存在时间重叠,这与这两项任务间的互斥约束(即3b类约束)相互矛盾。因此,我们不会生成同时包含以下维度组合的调度实例:2c、2d、2e、2g、2h、2i、2o、2p、2q 与 3b、3c、3f、3g、3h、3i。另外,如第5项所述,生成的资源数量会随任务数量的变化而调整。 4. 是否创建噪声列: a. 无额外噪声列; b. 添加三列带有随机值的噪声列。 5. 调度涉及的任务与资源数量: a. 10项任务与2个资源; b. 100项任务与10个资源; c. 1000项任务与20个资源; d. 10000项任务与100个资源。 针对每个有效的维度组合,我们生成了10个调度实例。



