Commit 735c9b8c by Markus Klinik

### my final round of redaction

parent 71d44697
 ... @@ -16,7 +16,7 @@ For example, when searching for the shortest path on a map, the $A^*$ search alg ... @@ -16,7 +16,7 @@ For example, when searching for the shortest path on a map, the $A^*$ search alg The straight-line distance is a problem-specific heuristic that can only be used in Euclidean spaces, but it works well for that purpose. The straight-line distance is a problem-specific heuristic that can only be used in Euclidean spaces, but it works well for that purpose. This is what is meant by a heuristic using knowledge about the problem. This is what is meant by a heuristic using knowledge about the problem. Evolutionary algorithms fit our problem well, for two reasons. Evolutionary algorithms fit our problem nicely, for two reasons. First we are interested in alternative solutions, not just one solution. First we are interested in alternative solutions, not just one solution. Our algorithm calculates a final population, which is the set of the best solutions it has discovered, ranked by the quality function. Our algorithm calculates a final population, which is the set of the best solutions it has discovered, ranked by the quality function. ... @@ -34,7 +34,7 @@ There are many variants of evolutionary algorithms, but they all need the follow ... @@ -34,7 +34,7 @@ There are many variants of evolutionary algorithms, but they all need the follow \paragraph{Chromosomes} \paragraph{Chromosomes} A chromosome is a list of bits, or a list of numbers in our case, that encodes a solution. A chromosome is a list of bits, or a list of numbers in our case, that encodes a solution. A population is a set of chromosomes, and an evolutionary algorithm tries to construct chromosomes that encode good solutions without knowing the encoding method. A population is a set of chromosomes, and an evolutionary algorithm tries to construct chromosomes that encode good solutions. \paragraph{Decoder} \paragraph{Decoder} A decoder is a function that takes a chromosome and calculates a solution from it, in our case a schedule. A decoder is a function that takes a chromosome and calculates a solution from it, in our case a schedule. ... @@ -48,7 +48,6 @@ The evolutionary algorithm uses the evaluator to rank the chromosomes of a popul ... @@ -48,7 +48,6 @@ The evolutionary algorithm uses the evaluator to rank the chromosomes of a popul Crossover and mutation are two functions that directly manipulate chromosomes. Crossover and mutation are two functions that directly manipulate chromosomes. Many standard variants are possible, but they can also be provided on a problem-specific basis. Many standard variants are possible, but they can also be provided on a problem-specific basis. Crossover gets two parent chromosomes as input and produces one or more child chromosomes, with the hope that the children have some good properties from both parents. Crossover gets two parent chromosomes as input and produces one or more child chromosomes, with the hope that the children have some good properties from both parents. A simple crossover function, called \emph{one-point crossover}, randomly determines a cut point in the chromosome and produces two children: one with the part before the cut point from the first parent and the rest from the second parent, and the other child the other way around. Mutation randomly changes one entry of a chromosome. Mutation randomly changes one entry of a chromosome. In some encoding schemes, not all possible chromosomes encode valid solutions. In some encoding schemes, not all possible chromosomes encode valid solutions. ... @@ -79,11 +78,11 @@ Another one is convergence, which stops when the best solution has not changed f ... @@ -79,11 +78,11 @@ Another one is convergence, which stops when the best solution has not changed f By their nature, probabilistic algorithms can never guarantee convergence to the best solution, if it exists. By their nature, probabilistic algorithms can never guarantee convergence to the best solution, if it exists. Articles about evolutionary algorithms usually use a number of computer experiments to obtain performance data which is then compared to estimated best solutions. Articles about evolutionary algorithms usually use a number of computer experiments to obtain performance data which is then compared to estimated best solutions. In the literature on algorithms, it is customary to provide correctness proofs for algorithms. In the literature on classical algorithms, it is customary to provide correctness proofs for algorithms. No such proof can be given for probabilistic algorithms. No such proof can be given for probabilistic algorithms. The best we can do is guarantee that populations do not get worse over time, by always keeping the best solution found so far. The best we can do is guarantee that populations do not get worse over time, by always keeping the best solution found so far. Another problem with evolutionary algorithms is that their effectiveness depends on the input parameters, like chosen selection strategy, population size and mutation probability. Another problem with evolutionary algorithms is that their effectiveness depends on the input parameters, like chosen selection strategy, population size and mutation probability. Which parameters work well can change with the problem instance, and may require some adjustments until satisfying results can be reliably produced. Which parameters work well can change with the problem instance, and may require some adjustments until satisfying results can be reliably produced. End users, who are only interested in the results and not the inner workings of the algorithm should not be bothered with such technicalities. End users, who are only interested in the results and not the inner workings of the algorithm should not be bothered with such technicalities. We need further research and computer with realistic scenarios to develop a parameter set that performs reasonably reliable in practice for our problem. We need further research and experiments with realistic scenarios to develop a parameter set that performs reasonably reliable in practice for our problem.
 ... @@ -20,11 +20,11 @@ A weight is a floating point number. ... @@ -20,11 +20,11 @@ A weight is a floating point number. Resource frames specify resource affinity constraints. Resource frames specify resource affinity constraints. A resource frame has a list of tasks and a list of resource requirements. A resource frame has a list of tasks and a list of resource requirements. Every resource requirement of a resource frame is by definition a resource requirement of all tasks inside the frame, and assigning a resource to a frame requirement automatically assigns it to all tasks in the frame. Every resource requirement of a resource frame is by definition a resource requirement of all tasks inside the frame, and assigning a resource to a frame automatically assigns it to all tasks in the frame. See \cref{fig:resource-frames} for an example. See \cref{fig:resource-frames} for an example. There are two tasks, Prepare and Deploy, which both require an Operator. There are two tasks, Prepare and Deploy, which both require an Operator. The tasks are inside a resource frame that requires a Transport. The tasks are inside a resource frame that requires a Transport. This means that both tasks also require a Transport, and that the transport assigned to both tasks must be the same one. This means that both tasks require a Transport, and that the transport assigned to both tasks must be the same one. \begin{figure} \begin{figure} ... @@ -67,8 +67,8 @@ For example, the instance in \cref{fig:resource-frames} has three capability req ... @@ -67,8 +67,8 @@ For example, the instance in \cref{fig:resource-frames} has three capability req Let there be four resources: Alice and Bob, who are both Operators, and a Heli and a Boat which are both Transports. Let there be four resources: Alice and Bob, who are both Operators, and a Heli and a Boat which are both Transports. A chromosome for this instance is a list of three numbers $[o_p, o_d, t]$. A chromosome for this instance is a list of three numbers $[o_p, o_d, t]$. The first two numbers $o_p, o_d$ stand for the Operator of the Prepare and Deploy tasks, respectively. The first two numbers $o_p, o_d$ stand for the Operator of the Prepare and Deploy tasks, respectively. They have the domain $[Alice, Bob]$. They have the domain $\set{Alice, Bob}$. The third number stands for the transport, and has domain $[Heli, Boat]$. The third number stands for the transport, and has domain $\set{Heli, Boat}$. For example the chromosome $[0, 1, 1]$ encodes the assignment of Alice as the Operator of Prepare, Bob as the Operator of Deploy, and the Boat as the Transport of both tasks. For example the chromosome $[0, 1, 1]$ encodes the assignment of Alice as the Operator of Prepare, Bob as the Operator of Deploy, and the Boat as the Transport of both tasks. ... @@ -107,8 +107,8 @@ Our fitness function therefore returns either a valid score or an invalid score. ... @@ -107,8 +107,8 @@ Our fitness function therefore returns either a valid score or an invalid score. A valid score is the weighted product of all qualities, while an invalid score is the number of duplicate assignments. A valid score is the weighted product of all qualities, while an invalid score is the number of duplicate assignments. Individuals in a population are ranked as follows. Individuals in a population are ranked as follows. Invalid scores are always worse than valid scores. Invalid scores are always worse than valid scores. Valid scores are ranked according to their weighted product, where more-is-better. Valid scores are ranked according to their weighted product. Invalid scores are ranked according to the number of duplicate assignments, where less-is-better. Invalid scores are ranked according to the number of duplicate assignments, where less is better. In this way, the algorithm can explore invalid regions of the search space, while being incentivized to avoid them in favour of valid regions. In this way, the algorithm can explore invalid regions of the search space, while being incentivized to avoid them in favour of valid regions. ... @@ -169,11 +169,11 @@ Another advantage is that the schedules it builds are valid by construction, whe ... @@ -169,11 +169,11 @@ Another advantage is that the schedules it builds are valid by construction, whe Every valid assignment has at least one valid schedule, and the schedule builder will always find one. Every valid assignment has at least one valid schedule, and the schedule builder will always find one. In the worst case, all tasks have to be executed in sequence. In the worst case, all tasks have to be executed in sequence. A disadvantage is it does not always find the schedule with the shortest makespan, because it schedules the tasks in the order in which they occur in the instance definition. A disadvantage is that the schedule builder does not always find the schedule with the shortest makespan, because it schedules the tasks in the order in which they occur in the instance definition. It is sometimes possible to find shorter schedules by changing the order of tasks. It is sometimes possible to find shorter schedules by changing the order of tasks. Consider the scenario in \cref{fig:greedy-fails}. Consider the scenario in \cref{fig:greedy-fails}. There are two resources, resource A with one capability capA, and B with one capability capB. There are two resources, resource A with one capability capA, and B with one capability capB. There are the three Tasks 1, 2, and 3, where Task 1 requires capA and Tasks 2 and 3 require capB. There are the three tasks 1, 2, and 3, where Task 1 requires capA and Tasks 2 and 3 require capB. Furthermore, Task 1 is a predecessor of Task 2. Furthermore, Task 1 is a predecessor of Task 2. There exists exactly one valid assignment, namely the one used in \cref{fig:greedy-fails}. There exists exactly one valid assignment, namely the one used in \cref{fig:greedy-fails}. The greedy schedule builder processes tasks in the order in which they occur, so it fails to see that Task 3 can be scheduled at time 0. The greedy schedule builder processes tasks in the order in which they occur, so it fails to see that Task 3 can be scheduled at time 0. ... ...
 ... @@ -30,7 +30,7 @@ Decision making support provides tools for human-machine collaboration where eac ... @@ -30,7 +30,7 @@ Decision making support provides tools for human-machine collaboration where eac Carrying out missions involves a constant cycle of decision making and acting, on several levels of scale. Carrying out missions involves a constant cycle of decision making and acting, on several levels of scale. There is a large cycle between individual missions of planning, execution, and assessment. There is a large cycle between individual missions of planning, execution, and assessment. Inside of each mission, there is a much tighter, and constantly running, variant of the same process. Inside of each mission, there is a much tighter, and constantly running, variant of the same process. A common model for this cycle is the OODA loop \cite{Boyd1976}, which stands for observe-orient-decide-act. A common model for this cycle is the OODA loop \cite{Boyd1976}, which stands for Observe-Orient-Decide-Act. The \emph{decide} part can be further subdivided into two halves. The \emph{decide} part can be further subdivided into two halves. The first half is about deciding which actions should be taken in a given situation, while the latter half is about who carries out the actions and when. The first half is about deciding which actions should be taken in a given situation, while the latter half is about who carries out the actions and when. This division is advocated by \citet{Bolderheij2007}. This division is advocated by \citet{Bolderheij2007}. ... @@ -60,11 +60,11 @@ In order to execute a task, all required resources must be assigned to it. ... @@ -60,11 +60,11 @@ In order to execute a task, all required resources must be assigned to it. We use the word assigned'' symmetrically: We use the word assigned'' symmetrically: We say a resource is assigned to a task, but also that the task is assigned to the resource. We say a resource is assigned to a task, but also that the task is assigned to the resource. Examples for resources are fire fighters and fire extinguishers for fire fighting, mechanics and tool boxes for repairing machines, or radars for tracking contacts. Examples for resources are fire fighters and fire extinguishers, mechanics and tool boxes, or radars and other sensors. The fire to be extinguished, the machine to be repaired and the contact to be tracked are not resources, but \emph{cases}. The fire to be extinguished, the machine to be repaired and the contact to be tracked are not resources, but \emph{cases}. Sometimes there is overlap between resources and cases. Sometimes there is overlap between resources and cases. This becomes a problem for our assumption that planning and scheduling can be clearly separated, as discussed in \cref{sec:planning-vs-scheduling}. This becomes a problem for our assumption that planning and scheduling can be clearly separated, as will be discussed in \cref{sec:planning-vs-scheduling}. Resources come in two varieties: \emph{consumable} and \emph{reusable}. Resources come in two varieties: \emph{consumable} and \emph{reusable}. Consumable resources are used up when executing their assigned task. Consumable resources are used up when executing their assigned task. ... @@ -78,8 +78,8 @@ For simplicity we focus entirely on reusable resources in this paper. ... @@ -78,8 +78,8 @@ For simplicity we focus entirely on reusable resources in this paper. The connection between tasks and resources are made with \emph{capabilities}. The connection between tasks and resources are made with \emph{capabilities}. Resources have one or more capabilities, and tasks have one or more \emph{capability requirements}. Resources have one or more capabilities, and tasks have one or more \emph{capability requirements}. For example, Bob can have the capabilities Operator, Medic, and Commander. For example, Bob has the capabilities Operator, Medic, and Commander. The task Perform rescue can require a Transport and an Operator. The task Perform rescue requires a Transport and an Operator. From a technical standpoint, capabilities are just labels that the scheduler uses to match resources and tasks. From a technical standpoint, capabilities are just labels that the scheduler uses to match resources and tasks. Because the scheduler does not care what capabilities actually stand for, they can be used in different ways. Because the scheduler does not care what capabilities actually stand for, they can be used in different ways. ... ...
 ... @@ -22,7 +22,7 @@ There is only one decision variable $x$, whose domain is the set of hotels we kn ... @@ -22,7 +22,7 @@ There is only one decision variable $x$, whose domain is the set of hotels we kn Every hotel has an objective vector with two elements $\tuple{q_1, q_2}$, the distance to the sea and the price, both of which should be minimized. Every hotel has an objective vector with two elements $\tuple{q_1, q_2}$, the distance to the sea and the price, both of which should be minimized. As we discover new hotels, we want to compare them to the ones we already know of. As we discover new hotels, we want to compare them to the ones we already know of. If a hotel is both cheaper and closer to the sea, it is definitely better, according to our criteria. If a hotel is both cheaper and closer to the sea, it is definitely better according to our criteria. If a hotel is both more expensive and further from the sea, it is definitely worse. If a hotel is both more expensive and further from the sea, it is definitely worse. But what if we find a hotel that is closer to the sea but more expensive, or the other way around? But what if we find a hotel that is closer to the sea but more expensive, or the other way around? This is the central problem of MCDM: \emph{It is not possible to compare objective vectors that are better in some and worse in other components}. This is the central problem of MCDM: \emph{It is not possible to compare objective vectors that are better in some and worse in other components}. ... @@ -144,7 +144,7 @@ Programmers of quality functions need to take both into account. ... @@ -144,7 +144,7 @@ Programmers of quality functions need to take both into account. Some of the properties of the weighted-product method relevant for c2 scheduling are as follows. Some of the properties of the weighted-product method relevant for c2 scheduling are as follows. \paragraph{Mixed units of measurement} \paragraph{Mixed units of measurement} The main reason for choosing the weighted-product method is that the units and magnitudes of the individual objectives does not matter. Our main reason for choosing the weighted-product method is that the units and magnitudes of the individual objectives does not matter. No conversion or normalization is required, the numbers can be multiplied as-is. No conversion or normalization is required, the numbers can be multiplied as-is. One objective can be a distance in meters, another one a cost in euros, yet another one a time in seconds. One objective can be a distance in meters, another one a cost in euros, yet another one a time in seconds. ... @@ -163,7 +163,8 @@ For a derivation of this estimation, see \citet{Tofallis2014}. ... @@ -163,7 +163,8 @@ For a derivation of this estimation, see \citet{Tofallis2014}. \paragraph{Measurement theory} \paragraph{Measurement theory} In order to utilize the weighted-product method, all objectives must be units of ratio scale. In order to utilize the weighted-product method, all objectives must be units of ratio scale. For a unit of measurement to be of ratio scale, it must have a meaningful zero value that represents absence of the measured quantity, and must allow multiplication by positive constants. For a unit of measurement to be of ratio scale, it must have a meaningful zero value that represents absence of the measured quantity. Furthermore it must allow multiplication by positive constants. This allows comparisons based on ratios of measurements, like "this is twice as long as that". This allows comparisons based on ratios of measurements, like "this is twice as long as that". Examples are mass, length, time, angle, money, percentage, and temperature in Kelvin. Examples are mass, length, time, angle, money, percentage, and temperature in Kelvin. Temperature in degrees Celsius is not of ratio scale, because it does not have a meaningful zero value. Temperature in degrees Celsius is not of ratio scale, because it does not have a meaningful zero value. ... ...