Commit 735c9b8c authored by Markus Klinik's avatar Markus Klinik

my final round of redaction

parent 71d44697
......@@ -25,12 +25,12 @@ This can be for example through direct commands, guidance, preferences, or sugge
We now look at our method with respect to these three characteristics.
Observability in our case means that the user can see what the machine knows about the ship's status, in other words the user should have access to the operational picture.
If the user defined quality functions make use for example of the weather conditions, the location of people on board, or the degradation status of equipment, this information should be accessible in a clear and user-friendly manner.
If the user-defined quality functions make use for example of the weather conditions, the location of people on board, or the degradation status of equipment, this information should be accessible in a clear and user-friendly manner.
Representation and display of the operational picture is out of the scope of this article, so this point is not applicable to the discussion.
Predictability in our case means that given similar situations, the algorithm should come up with similar solutions.
The probabilistic nature of evolutionary algorithms makes our method come off less well in this respect.
For some problem instances, where good solutions are isolated between many worse solutions, we observed that it can take a long time or lots of runs to find a good solution again that we have seen before.
For some problem instances, where good solutions are isolated between many bad solutions, we observed that it can take a long time or lots of runs to find a good solution again that we have seen before.
We believe that this problem can be mitigated by developing parameter sets that are appropriately dimensioned for typical problems.
Directability in our case means that the user can guide the search towards solutions that fulfil certain desired properties.
......
......@@ -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.
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.
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
\paragraph{Chromosomes}
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}
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
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.
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.
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
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.
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.
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.
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.
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.
......@@ -2,13 +2,13 @@
\label{sec:examples}
This section demonstrates our method using two examples.
The example in \cref{sec:example-conflicting-objectives} demonstrates the effect on weight on conflicting objectives, while the example in \cref{sec:example-crew-location} demonstrates how user-defined quality functions can take the location of crew members into account.
The example in \cref{sec:example-conflicting-objectives} demonstrates the effect of weights on conflicting objectives, while the example in \cref{sec:example-crew-location} demonstrates how user-defined quality functions can take the location of crew members into account.
\subsection{Conflicting Objectives}
\label{sec:example-conflicting-objectives}
\Cref{fig:conflict-quality-makespan} illustrate the effect of weights on conflicting objectives.
\Cref{fig:conflict-quality-makespan} illustrates the effect of weights on conflicting objectives.
This instance has six resources and 15 tasks.
There is only one capability requirement \emph{C} and all resources have this capability, which means all resources can execute all tasks.
In this example resource 1 has quality 1 for all tasks, resource 2 has quality 2 and so on, which means that resource 6 has the highest quality.
......
......@@ -21,7 +21,7 @@ It is always possible that the constraints are erroneous, for example that a res
In such a case, humans should not be restricted by the design of the software.
This is called \emph{human in the loop}.
Future work in this direction should first identify requirements in which ways humans should be able to change the outcome of the scheduler, and then implement it in a user-friendly and intuitive manner.
This could include visualization of the consequences to resources and running tasks of manual overrides.
This could include visualization of the consequences of manual overrides to resources and running tasks.
\paragraph{Influence schedule task ordering}
In the current implementation, the evolutionary algorithm calculates an assignment, from which a schedule is built in a greedy manner, where tasks first in the instance definition get scheduled first.
......
......@@ -20,11 +20,11 @@ A weight is a floating point number.
Resource frames specify resource affinity constraints.
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.
There are two tasks, Prepare and Deploy, which both require an Operator.
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}
......@@ -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.
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.
They have the domain $[Alice, Bob]$.
The third number stands for the transport, and has domain $[Heli, Boat]$.
They have the domain $\set{Alice, Bob}$.
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.
......@@ -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.
Individuals in a population are ranked as follows.
Invalid scores are always worse than valid scores.
Valid scores are ranked according to their weighted product, where more-is-better.
Invalid scores are ranked according to the number of duplicate assignments, where less-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.
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
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.
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.
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 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.
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.
......
......@@ -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.
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.
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 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}.
......@@ -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 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}.
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}.
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.
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}.
For example, Bob can have the capabilities Operator, Medic, and Commander.
The task Perform rescue can require a Transport and an Operator.
For example, Bob has the capabilities Operator, Medic, and Commander.
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.
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
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.
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.
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}.
......@@ -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.
\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.
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}.
\paragraph{Measurement theory}
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".
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.
......
......@@ -14,7 +14,7 @@ A \emph{scheduler} has the responsibility of finding a schedule given an instanc
\label{sec:planning-vs-scheduling}
In the literature on automated planning and scheduling, for example \citet{Ghallab2004}, planning and scheduling are treated as two distinct problems that can be solved in isolation.
Planning takes as input a start state, a set of state transforming actions, and a goal predicate.
Planning takes as input a start state, a set of state-transforming actions, and a goal predicate.
The purpose of planning is to choose actions and chain them together to transform the start state into a state that satisfies the goal predicate, via a series of intermediate states.
Such a chain of actions is called a \emph{plan}.
......@@ -212,7 +212,7 @@ When Bob has to be the operator for Perform rescue, the quality function can ret
These examples illustrate that the unit of the value that a quality function returns can differ depending on the combination of task and capability requirement.
It is therefore not useful to directly compare outcomes of quality functions of different tasks with each other, only the outcomes of the same capability requirement for different resources.
Combining all assessments so that schedules can be compared is the topic of \cref{sec:mcdm}.
Combining all objectives so that schedules can be compared is the topic of \cref{sec:mcdm}.
\paragraph{Objectives}
......@@ -220,7 +220,7 @@ We call the result of a quality function an \emph{objective}.
This is a general concept with which we try to handle quality assessments of different units.
Some objectives are better when they are maximized, some are better when they are minimized.
An objective is therefore a number together with a tag \emph{maximize} or \emph{minimize} which indicates how to compare two objectives of this type.
An objective is therefore a number together with a tag Maximize or Minimize which indicates how to compare two objectives of this type.
Quality functions are not the only source of objectives in a C2 scheduling problem.
Another objective is the makespan, which is the overall time from the start of the first task to the end of the last task.
The makespan should be minimized.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment