2. Problem Definitions

2.1. Details of the Logistics Challenge Problem

The logistics challenge problem involved the coordinated scheduling of flight operations and aircraft maintenance. The Marines Air Group 13 (MAG13) in Yuma Arizona provided the context for this challenge problem. They provided the requirements, the data and military personnel committed to evaluate and use incremental releases of the software. The logistics challenge problem is a practical problem that the Marines solve on a daily basis to schedule their flight operations and maintenance.

2.1.1. Context

2.1.1.1. The Users

The users involved in producing the flight and maintenance schedules fall into three groups:

Commanding officers
The commanding officers define the overall goals of the schedule for a given planning horizon. For example, participate in a specific training exercise, have Smith and Jones obtain their night systems qualification, fly 20 sorties per day and maintain flight equity (every pilot flies roughly the same number of hours per month).
Operations officers and staff
The operations people are in charge of figuring out how to carry out the commander's intent. They must figure out who flies what type of mission when and where.
Maintenance officers and staff
The maintenance people must figure out what type of maintenance to do on each aircraft so that they can support the flights that the operations people want to fly. They must also deal with unscheduled maintenance requirements that arise when aircraft break down

The commanding officers generate yearly and monthly guidance. The operations people must produce weekly schedules to meet the guidance, and refine those schedules every day to produce the schedules that get executed every day. The operations and maintenance people must communicate frequently to coordinate their schedules: in order for operations to produce a schedule they need to know how many aircraft of each type are available. In order to answer that question maintenance needs to know the flight schedule in order to figure out whether they have time to carry out all the usage-based and calendar based maintenance that must be done on the aircraft. The cycle is broken by starting with estimates and refining those estimates though iterative refinement of the schedules.

2.1.1.2. The Current Way of Doing It

The users have databases that record all the information relevant for producing the schedules. Operations has databases that record the flight logs of each pilot, their qualifications, etc. Maintenance has databases that record all the maintenance work items that must be performed or are being performed on each aircraft.

These databases have viewers and editors that allow users to see what is going on, and to edit the information. Operations has a sophisticated schedule editor application that enables users to enter and validate flight schedules, but they do not have a scheduling application that computes as schedule. The users determine the schedules manually, typically on a white board, and then enter it in the computer to validate it and to print the official schedules that get signed signed by the commanding officers. The maintenance schedules are kept on white board and paper and never entered in a computer.

2.1.1.3. The Logistics Challenge Goal

The goal of the logistics challenge is to automate the production of the operations and maintenance schedules. The payoff is large because developing the schedules by hand is labor intensive and time consuming (typically 6 hours for a weekly operations schedule), and little time is left to explore alternatives and to deal with often changing requirements. In addition, producing schedules that extend beyond a week is infeasible, resulting in commanders having limited ability to forecast the consequences of taking on new commitments (e.g., can you participate in a week-long exercise at the beginning of next month and still make your deployment commitments 6 months from now?)

2.1.2 Problem Statement

2.1.2.1. Operations Problem Statement

We describe the operations side of the logistics challenge in terms of the goals that commanders can specify, in terms of the objective functions that define the score of a schedule, the resources and tasks, and constraints that define the scheduling problem.

2.1.2.1.1. Goals

The following list of goals is not a complete list of all the goals that commanders would like to state. The list contains the goals that the challenge problem focused on.

Acquire qualification
A goal for a pilot to acquire a specific skill such as night systems, or carrier operation. Each skill requires the pilot to fly a specific sequence of mission codes with an instructor pilot who is qualified to evaluate performance, e.g., Jones gain night systems qualification.
Achieve and maintain core competency
Pilots achieve core competencies such as air-to-air or air-to-ground by flying a specific sequence of mission codes. Because competency degrades with time, pilots must periodically fly specific subsets of the code competency codes to maintain their competency. Commanders can specify goals for certain pilots to achieve certain core competencies during a period, e.g., Jones achieve air-to-air competency.
Fulfill specific sorties
This goal specifies that the squadron must send a specified number of aircraft with pilots capable of flying specific missions to specified locations and at specified times. War sorties are examples of this goal. E.g., 2 close air support aircraft at 10:32am at 29 Palms.
Schedule a given number of sorties
Commanders can specify that a certain number of sorties be flown during a period, e.g., fly 100 sorties next week.
Schedule a given number of sorties per pilot per period
Specifies the desired number of sorties that specific pilots should fly during specific periods, e.g., Smith to fly 5 sorties per week. Typically flying less is bad, and flying more is wasteful.
Minimally modify an existing schedule to repair a schedule with respect to changes in resources or requirements
Specifies that a new schedule should be as similar as possible to a given schedule.
2.1.2.1.2. Objective Function

The objective function is a linear combination of metrics that specify how well each goal is achieved. Each goal is scored using a piece-wise linear function that specifies how good it is to obtain a certain quantity of something. For example, an objective function for the number of sorties goal could be specified as follows: flying 0 sorties gives a score of 0, flying 90% of the sorties gives a score of 0.5, and flying 100% gives a score of 1.

The score of a schedule is specified as a linear combination of the score for each goal. Note: in the implemented system, the user interface did not allow users to give numeric weights. Instead we offered the values "require", "prefer" and "don't care", which were defined in such a way that all the "prefers" weighed less than a single "require".

One of the lessons learned in the logistics challenge problem is that it is very difficult for users to specify an objective function that captures all the issues they care about. We found that it was only after seeing a solution that users would think about trade-offs that would be impractical to specify in advance (e.g., I'll accept having Jones fly 8 rather than 5 sorties if that is the only way I can get Smith's night systems qualification done).

2.1.2.1.3. Resources

The following is a list of the resources involved in producing operations flight schedules.

Pilots
A pilot's ability to participate in a task depends on the qualifications that the pilot has acquired. The set of qualifications that pilots have changes dynamically: as they participate in tasks they acquire new qualifications and as time goes on they may lose qualifications if they don't participate in tasks that refresh them. A typical squadron has 24 pilots.
Aircraft
There are two types of aircraft, radar and night, and they can be used only for specific mission codes. A typical squadron has 24 aircraft.
Ranges
Ranges are the places where missions are performed (e.g., dropping bombs, participating in air-to-air combat training). Different ranges are suitable only for specific mission codes. Suitability is defined using a preference ranking (e.g., large ranges are better for air-to-air combat). There are about 30 different ranges available to a squadron, but availability is very limited.
Sun light and moon light
Some mission codes can be performed at any time of the day, some can be performed only during the day and some during the night. In addition, some of the night codes require a certain amount of moon light and others require very low levels of light. Light level imposes interesting constraints because missing a moon cycle for performing a certain mission code may mean that the mission can only be performed several weeks later.
Sortie cycles
Sortie cycles are conceptual resources that limit the number of flights to be performed during specific periods of a day. For example, 4 flights in the morning and 4 flights at night.
2.1.2.1.4. Tasks

The tasks specify the activities that appear in the schedule. There are 3 types of tasks: on-base activities, simulator training and flights. On-base activities such as serving as operations duty officer involves booking a pilot qualified for that activity for a specific period of time. Simulator training involves booking a simulator, the pilot serving as the trainee and an instructor pilot. Flights are the most complex tasks, because they have rich internal structure and involve all the resources.

The structure of a flight is defined in terms of the number of aircraft that participate in the flight, and in terms of a number of flight segments that specify at what points during the flight the different resources are needed.

Number of aircraft
Even though in general flights may consist of an arbitrary number of aircraft, the challenge problem focused on flights consisting of up to 4 aircraft. Most flights consists of two aircraft, and are called sections.
Segments
The segments of a flight specify what is happening during the flight. A flight consists of a briefing segment, a number of flight segments, an optional stop for refueling followed by more flight segments, and finally a debriefing segment. Flights typically consists of 3 flight segments, one to go to the range, one to perform a mission code at a range, and one to come back from the range. Segments have a specified duration.

Resources participate in flights as follows:

Pilots
Pilots are needed during all segments of a flight, starting with the briefing and ending with the debriefing. For each pilot, the segments are tagged with the mission code that the pilot will be performing during that segment. For example, the pilot in position 1 will be performing mission code 237 in the at range segment before the refueling stop, and participating in mission code 280 in the at range segment after the refueling. The pilot in position 2 may be performing different mission codes, and so on.


In order to assign a pilot to a given position, he or she must have the minimum qualifications to perform the mission codes defined in all segments for that position. In addition, if a pilot is only minimally qualified to perform the mission codes in a position, one of the pilots in the other position must posses additional qualifications. In addition, one or several of the pilots in the flight must also posses certain leadership qualifications (e.g., section leader). Light restrictions may impose further constraints on the qualifications because a pilot may be fully qualified to fly a mission in high light, but only minimally qualified to fly it in low light. This means that selection of pilots and selection of the time to fly a mission cannot be done independently.
Aircraft
Aircraft are needed for all segments except for the briefing and debriefing. The challenge problem focused on scheduling of Harrier jet operations (AV8B), which are single seat aircraft.
Ranges
Ranges are needed only for the segments where mission codes are being performed. The range must be suitable to perform all the mission codes listed in all positions during a given segment.
Sun light and moon light
The light requirements for all mission codes must be satisfied. This sometimes creates tricky situations where the mission codes before a refueling stop are daylight codes and the ones after are night-time codes. This means that flight can only be scheduled around the sunset of days when moon conditions are appropriate.
Sortie cycles
The sortie cycles are needed for all segments except for the briefing and debriefing.
2.1.1.2.5 Inter-Task Constraints

The previous section discussed the constraints that specify the required relationships between the resources that participate in a task. There are additional constraints that define relationships between tasks.

Pilot qualifications
As mentioned before, pilots can gain qualifications after participating in certain tasks, and can lose qualifications if they don't perform certain tasks within certain periods. This means that in order to select pilots for a task it is necessary to consider potential selections for other tasks. For example, if Smith has a goal to fly mission code 281, but he has not flown 280, then it is necessary to select Smith in a task that has mission code 280, and that task must be scheduled prior to Smith's 281 task.
Crew rest and crew day
There are many crew day and crew rest constraints. Pilots must fly less than a certain number of sorties and flight hours per day (the limits are different if they fly night missions). In addition, pilots must not be at base more than 10 hours every day, they must rest at least 8 hours between days, and the sleep pattern must not slide more than 2 hours per day (all the numbers are parameters that users can set). These constraints tie together the tasks in a very perverse way. For example, selecting Smith to fly early in the morning on Monday may result in him not being able to fly a night code on Wednesday, which may result in him not acquiring a qualification he needs on Thursday.
Location
Flights may end in a different location from where they started. This means that the pilots and aircraft that participate in the flight will be at a new location. The scheduler must ensure that critical resources are scheduled in new tasks that take them to other locations where they are needed at critical times.

2.1.2.2. Maintenance Problem Statement

We describe the maintenance side of the logistics challenge problems in terms of the expected outputs of the system, the goals the user - typically a maintenance control officer - can specify, resources and tasks, and the constraints that define the scheduling problems.

2.1.2.2.1. Expected outputs

The solution to the maintenance planning problem should yield two outputs:

Aircraft to mission assignment (a.k.a. the aircraft schedule)
It is the responsibility of the maintenance organization to supply aircrafts to fly specific missions. The aircraft assigned to missions must be able to support those mission, i.e. they cannot have an outstanding maintenance problem that would make it illegal to assign the aicraft to the mission.
Maintenance schedule
The detailed schedule of all calendar-based and usage-based inspections (a.k.a. maintenance tasks) for the planning period.
2.1.2.2.2. Goals

The list below gives a summary of the various goals the user can specify, that will influence the aircraft and maintenance schedules.

Special aircraft to mission assignment
For selected missions, that user can assign specific aircraft manually. These assignments must be honored by the system, unless they are illegal.
Aircraft utilization
The user can specify the minimum, maximum, and desired flight hours for each aircraft that the aicraft should accumulate over the planning period.
Desired spares policy
The user can select how many aircraft should be kept as spares when flying missions. These aircrafts are not assigned to missions, but must not be worked on either when the mission for which they are backup is active.
Prefer overlapping complex, high-risk maintenance tasks on the same airrcaft
This is a risk-reduction goal: it is more beneficial to schedule complex operations close to each other in time
Prefer non-overlapping complex, high-risk maintenance tasks on different aircrafts
This is another risk-reduction goal: it is more beneficial to avoid complex operations on multiple aicrafts at the same time
Desired maintenance margins
The user can set what percentage of manpower should be available for scheduled maintenance (as opposed to unscheduled maintenance).
2.1.2.2.3. Resources and Tasks

The following list shows the resources involved in aircraft and maintenance scheduling.

Aircraft
Aircrafts are resources that can be assigned to fly missions, if they are in a shape that allows them to fly the mission, and if they are not being worked on. Using an aircraft on a mission puts flight hours on the aircraft, which, when reach specific values, generate maintenance tasks that must be performed on the aircraft.
Maintainer
Maintainers are needed to perform the maintenance tasks. Each maintainer has a qualification that determines what kind of maintenance task it can be assigned to. The number of maintainers is limited, and it is illegal to schedule maintenance tasks that would require more maintainers than what is available at the time of the task.
Tool
Tools are similar to maintainers, and specific maintenance tasks require specific tools. Similar limitations apply to tools as to maintainers.

The following list shows the tasks involved in aircraft and maintenance scheduling.

Mission
A mission is a task that needs an aircraft resource. The mission is precisely scheduled by the operations scheduler.
Calendar-based maintenance task
A calendar-based maintenance task must be scheduled with a specific periodicity (e.g. every 7 days, 14 days, 56 days), within a specific time window (usually +/- 3 days). The period and the window are determined by the maintenance rules of the aicraft. The task can be scheduled anywhere in its window, but the total resource usage of all schedule tasks should not exceed the resourec limits.
Usage-based maintenance task
A usage-based maintenance task must be scheduled whenever the usage on the aircraft reaches specific value (e.g. evry 10 hours, every 1000 hours, etc.) The specific value is determined by the maintenance rules of the aicraft.
2.1.2.2.4. Constraints

The following list shows specifies the major constraints that define the aircraft and maintenance scheduling problems.

Aircraft status
An aircraft can only be assigned to a mission if it is fully mission capable, or partially mission capable but it does not miss a capability which is required for the mission, or if maintenance can be scheduled on it such that by the time of the mission it is either fully mission capable or it has the misison-required capability.Aircraft cannot fly a mission while it is being maintained (i.e. there is a scheduled maintenance task for it).
Aircraft utilization
Aircraft should be assigned to mission such that the accumulated usage hours on the aircraft are more than the minimum required hours, less than the maximum allowed hours, and are as close as feasible to the desired number of hours.
Aircraft utilization
Aircraft should be assigned to mission such that the accumulated usage hours on the aircraft are more than the minimum required hours, less than the maximum allowed hours, and are as close as feasible to the desired number of hours.
Maintenance task start times, end times, and resource usage
Calendar-based maintenance tasks must not start before their due-window, and must finish by the end of their due-window. Usage-based maintenance tasks must start at least by the time the usage hour that triggers the task is reached (but they can start earlier). Once the usage hour on the aircraft is reached, the aicraft cannot be assigned to a mission, until the maintenance tasks is done. Sequencing constraints across maintenance tasks must be observed (as prescribed by the maintenance manual). Maintenance tasks scheduled together must not exceed the total capacity of all available resources (maintainers, tools, etc.)

2.1.2.3. Operations/Maintenance Coordination Problem Statement

The operations/maintenance coordination problem is to compute a flight schedule and an aircraft availability forecast such that it supports the flight schedule. This comes about in the following way:

  1. Operations uses an estimate of the available aircraft to produce a flight schedule.
  2. Maintenance produces an aircraft availability forcast based on the flight schedule.
  3. Operations verifies that the aircraft availability file supports the flight schedule, i.e., no changes to take-off times are needed.
  4. If the aircraft availability forecast forces changes to the flight schedule then repeat the cycle, i.e., go to step 1 and use the new availability forecast as a revised estimate.

If operations makes any changes to the flight schedule, then the cycle must be repeated until it is verified that maintenance can support the flight schedule. If maintenance needs to change the forecast, the cycle must also be repeated to verify the new forecast supports the flight schedule.

As mentioned in section 2.1.1., in the end the squadron is better off when operations produces more maintainable schedules. This means that the the scheduling of flights is made sensitive to maintenance requirements. This defines a spectrum of possibilities: in one end of the spectrum (full sensitivity), the operations and maintenance problems are solved as a single larger problem; at the other end of the spectrum (no sensitivity), the problems are solved independently and only the results are exchanged between the parties. In the full sensitivity mode steps 1 through 4 wash out into a collection of constraints that tie the requirements together. In the no sensitivity mode the steps 1 through 4 are done with the results of the schedulers and repeated until convergence is reached. In the middile points of the spectrum operations and maintenance echange additional information than just point solutions (e.g., ranges of take-off times) and repeat the cycles incrementally (e.g., for single aircraft rather than for all aircraft at a time).

During this project only the no-sensitivity mode was explored. The operations scheduler produce a fully detailed flight schedule. The maintenance scheduler user the fully detailed flight schedule to produce a single aircraft availability forecast (i.e., with no what-ifs), and steps 1 through 4 were repeated until convergence was reached. Even though this was a very simple solution, the outcome was much better than the pre-existing way of doing business, which involved coordinating the schedules by talking on the phone.

2.1.3. Technical Challenges

The logistics challenge problem gave rise to a number of difficult technical challenges.

2.1.3.1. The "Create Tasks" Problem

The operations scheduling problem is a planning and scheduling problem. The goal statements (e.g., achieve night systems qualification for Smith) specify what needs to be done, whereas the tasks specify how it will be done. The challenge problem requires creating the tasks and scheduling them. For example, to achieve the night systems qualification for Smith, he must fly mission codes 280 and 281. This could be done with one task with a refueling stop such that 280 is done before the refueling and 281 done after. It could be done with two tasks without a refueling stop, and in fact, could be done in other kinds of tasks.

One simple approach to solve this problem is to have a "create tasks" phase that creates tasks to meet the goals, followed by a scheduling phase that schedules the tasks. Of course, the difficulty is that the scheduling problem could be made much easier if a different set of tasks had been generated. However, without the information gathered during scheduling it is not possible to determine which tasks make the scheduling problem easier.

Alternative approaches are to interleave task creation and scheduling, or to do both things at the same time. The difficulty here is that the search space becomes much larger because it converts a scheduling problem into a planning and scheduling problem.

The solution to the challenge problem used the first approach even though it sometimes led to unscheduled tasks and obviously sub-optimal solutions. However, the system gave users the ability to overcome the problem by allowing them to edit the tasks to re-structure them to be more amenable to the scheduler. In typical schedules users only had to do this a few times.

The maintenance scheduling part faced a similar problem. Given a flight schedule, the maintenance tool would assign aircraft to flights, making assignments to maximize the number of flights that could be supported. Once aircraft are assigned to flights, the tools can forecast the flight hours for each aircraft and create the tasks to perform maintenance on the aircraft. Again, the aircraft assignments were done without consideration of how it affects scheduling of maintenance on the aircraft. This sometimes resulted in unscheduled tasks or sub-optimal solutions. The solution here was also to let the user edit the aircraft assignments to make the maintenance scheduling easier.

2.1.3.2. The Enablement Problem

The enablement problem is similar to the "create tasks" problem in that it brings planning aspects into the scheduling problem. The enablement problem concerns qualifications that pilots gain by participating in tasks and qualifications they lose from not participating in certain tasks. We called it the enablement problem because participating in certain tasks enables pilots to participate in others. If participation in task T gives a pilot a qualification to participate in task S, then if the system wants to select that pilot for both S and T, then task S must be scheduled after task T. The difficulty is that the relationship between tasks S and T is dynamic in the sense that it depends on the assignment of pilots to the tasks: if a pilot is already qualified to participate in both S and T, then those two tasks can be scheduled in any order.

The enablement problem is significantly easier than the "create tasks" problem because it does not change the structure of the tasks. The problem was solved in two different ways.

The ISI/Cornell collaboration produced a solution based on a pseudo-Boolean encoding of the problem (XXX LINK TO ALEJANDRO/CARMEL HERE) where the system automatically figures out both pilot assignments and timing of tasks when it is optimizing the number of scheduled tasks.

The ISI team solved the problem in the greedy solver to provide a fast solution to the most common cases. The most common occurrences of the enablement problem are in the tasks generated to satisfy qualification build goal and in the tasks to achieve new core competencies. In those tasks, one of the pilots is always known, i.e., the pilot assignment is constrained to have a single value. This allows the greedy scheduler to sort the tasks in enablement order so that if tasks T enables task S, the scheduler first schedules task T and when it schedules task S, it can select the start time of S to be after the end time of T. This simple approach covers the most common cases although it can lead to sub-optimal solutions. For example, when scheduling task S the greedy scheduler does not consider task T, so it doesn't know not to delay task S (e.g., to optimize another objective such as range preference) in a way that task T is squeezed out of the schedule.

2.1.3.3. The Crew Day and Crew Rest Problem

The crew day and crew rest constraints were briefly discussed in section 2.1.1.2.5. These constraints were difficult to solve in both the greedy and pseudo-Boolean solvers for the logistics problem.

In the greedy solver 90% of the time was spent evaluating the crew day and crew rest constraints in order to compute the time intervals when these constraints allowed pilots to fly. The problem is that the solver invokes this computation each time it considers a time point for a pilot because for each proposed time it must figure out if there is a way to arrange the work and rest patterns of the pilot to make them consistent with all other activities the pilot has in the schedule. The ISI team is considering less sophisticated algorithms that would miss some of the more creative solutions, but would be significantly faster.

In the pseudo-Booelan solver the number of variables and constraints devoted to encoding these constraints are 3 times more than the variables and constraints used to encode the rest of the problem.

In both solvers, the parts of the solver that address these constraints were written several times and significant development time was spent just on this aspect of the system. Even though crew day and crew rest are just one of the constraints in the logistics problem, it was important to address them thoroughly because these constraints are critical to safety. A general, fast solution to this type of constraint remains an important unsolved problem.

2.1.3.4. Creating 1-Minute Resolution Schedules

The logistics challenge required producing schedules at 1 minute resolution. This was challenging for the discrete methods such as pseudo-Boolean, finite domain constraint and SAT solvers, because in these method time must be represented using discrete variables or finite sets. This means that time must be discretized into slots, and using slots of 1 minute duration results in an unreasonable number of variables or very large sets. For example, discretizing time to 4 minutes results in over 100,000 pseudo-Boolean variables to encode a problem with a 3 day planning horizon. The challenge problem called for solving problems with a 1-month planning horizon.

Two approaches were tried.

In the greedy solver approach the solver represents time at a resulting of milliseconds (by using long integers to time), and it computes all the possible time intervals when a task can be scheduled based on the times when all candidate resources are available. It then selects the time that maximizes the objective function.

In order to use a discrete method such as a pseudo-Boolean solver, the ISI team built a 2-phase solver. In the first phase it used a pseudo-Boolean solver working on an encoding of the problem with time discretized to specified amount (typically 1/2 hour). The solution produced by this solver was converted into soft constraints and added to the original problem. The second phase used the greedy solver working on the problem augmented with the soft constraints. The idea here was to advantage of the sophisticated pseudo-Boolean solvers available that could do a more thorough search for solutions, and then use that solution as guidance for the greedy solver. For example, if the pseudo-Boolean would determined that task T should be scheduled between 10:00 and 10:30 using Jones and Smith. The greedy solver would then narrow down the time a specific minute.

The difficulty with this technique is that the 2-phase solver is quite sensitive to the discretization size. If the size is too small, the problem encoding is enormous (over 500,000 variables) and if it is too small (e.g., 2 hours) then the encoding is too imprecise, and the second phase solver cannot refine the times within the soft-constraints. For example, the first phase solver will recommend scheduling a task between 10:00 and 10:30. However, because some resources are available at odd times (e.g., range available from 9:45 to 10:15), it might not be possible to schedule the task in the recommended interval. For example, it might be necessary to schedule the task at 9:50. These errors add up, and may cause violations of other constraints such as lighting, crew day, etc.

There was not enough time in the project to thoroughly evaluate the 2-phase solver. Preliminary results showed that the idea is promising and pointed out some of the difficulties that will need to be overcome.

2.1.3.5. Short and Long Planning Horizons

The logistics challenge called for computing daily, weekly and monthly schedules, all with the same level of detail. The technical challenge was to produce scheduling algorithms that scale linearly with the size of the planning horizon. The greedy scheduler is almost linear with the size of the planning horizon because it schedules one task at a time and does not backtracking. The pseudo-Boolean solver is not linear with the size of the planning horizon because it's complexity is not linear with the number of tasks, and the number of tasks grows linearly with the size of the planning horizon. The greedy solver computed daily schedules in a few seconds, and monthly schedules in about 5 to 10 minutes.

Even though the 2-phase solver offers the opportunity to address long planning horizons by discretizing long planning horizons very coarsely (say to 6 hours), this was not tried because coarse discretizations should be conceptually different from fine-grained discretizations. For example, crew day and crew rest make no sense when discretized more coarsely than the amount of shift allowed between adjacent crew days (typically 2 hours). In that case, crew day and crew rest constraints should be replaced by capacity constraints, that for instance, limit pilots to fly twice a day. There was no time to implement such problem reformulations.

2.1.3.6 Understandability

Understandability refers to the users' ability to understand why tasks were scheduled the way they were, and most importantly, why an allocation they had in mind had not been done. In schedules with short planning horizons users would often edit the tasks to add specific constraints such as specifying both pilots. The additional constraints made the problem harder to solve, often resulting in tasks not being scheduled. In those cases, users wanted to know why their tasks had not been scheduled.

In general, such questions are very hard to answer succinctly because there are a large number of constraints that affect the allocation of a task, and the chains or reasoning can be long. The solution to this challenge takes advantage of the simplicity of the greedy solver, and the ability of the greedy solver to essentially hide from the user the sophistication of the pseudo-Boolean solver when using the 2-phase solver.

The why, and why not questions are answered using a feasibility display that shows all the possible times when the resources that can participate in a task are available. The display cleverly arranges the timeline for each resource and each constraint class so it is easy for the user to see which resource or which constraint prevents a task from getting scheduled during all times in the planning horizon. The users learned how to use this display, and were able to solve almost all scheduling questions using it.

The feasibility display relies on the sequential nature of the greedy solver in that the ability to schedule a task depends only on the tasks that have been scheduled so far. This means that the feasibility display does not work for solvers that do backtracking. The 2-phase solver enabled a compromise in that the feasibility display is built from the results of the greedy solver which runs after the more sophisticated pseudo-Boolean solver. The result is that the feasibility display shows only one of the reasons why something didn't happen (based on the reasoning abilities of the greedy solver), but that is enough to let users fix problems. Without the feasibility display users were unable to fix scheduling problems, and thus were unable to use the system to solve practical problems.

2.1.4. Outcome

The logistics challenge problem produced two tools: SNAP for scheduling flights and MAPLANT for scheduling maintenance and assigning aircraft to flights. The two tools work together to enable users to coordinate flight operations and maintenance to guide operations to produce flight schedules that can be supported by maintenance.

The SNAP and MAPLANT tools were developed with help from users from the MAG-13 squadrons and guidance from commanders and subject matter experts. The resulting tools were fielded at MAG-13 and on board amphibious attack ships engaged in operations in Afghanistan, and Iraq A formal military usability assessment was conducted and the tools were selected for transition to all US Marines aviation and the Joint Strike Fighter.

2.1.5. Contributions from Complexity and Dynamics

The contributions of the complexity and dynamics researchers to the logistics challenge problem are captured in two solvers that were integrated in the final demonstration.

A number of teams, including Cornell-Hebrew University, Washington University, CIRL, and ISI, explored the application of SAT solvers to the logistics challenge problem. This work reached its most mature form in CIRL's development of the OPARIS pseudo-Boolean solver, and its application to the operations scheduling problem by CIRL and ISI.

Altarum's work on pheromone learning and deadline-sensitive negotiation led to the development of the RAPSIDY solver, which can start with an existing solution and quickly repair it to meet changed mission constraints.

2.2. Details of EW Challenge Problem

The main objective of the ANTs program was to develop approaches to distributed resource management that are (1) real-time, (2) scalable, (3) robust, and (4) low-cost. The Electronic Warfare (EW) challenge problem was developed as a room-sized test-bed in which researchers could show how well their approaches performed with respect to each of these characteristics; at the same time, the challenge problem would present many of the problems that arise in practical applications (such as measurement noise and limitations on communication).

The main problem statement for the EW challenge problem is: track a set of moving targets using a network of short-range, radio-equipped radars, each coupled to a computer. Each radar is capable of producing only limited data about a target so several (ideally, three) radars need to collaborate to accurately pin down a target's position and velocity. Moreover, each radar is able to scan only one target at a time, so a radar with several targets within range needs to decide which target to scan - see Figure 2.2.1.

Good tracking example

Figure 2.2.1: Example of good coordination of radars in tracking multiple targets

The danger, if coordination is performed badly, is that one target may be tracked by wastefully many radars while other targets are neglecting - see Figure 2.2.2. Coordination of the collaboration and exchange of data to compute the target tracks can be performed using radio communication.

Poor tracking example

Figure 2.2.2: Example of poor coordination of radars in tracking multiple targets

Thus, the EW projects were to develop a coordination mechanism to ensure that, as far as possible, each target was scanned continually by three radars. In this context, the four characteristics listed above arise as follows:

  1. Real-time: at any time, targets may enter or leave the field of view of the sensor network, targets may change speed or direction, and sensors may fail. The coordination mechanism must quickly adapt the behavior of the sensor network to keep pace with such changes.
  2. Scalable: the coordination mechanism should be able to deal with arbitrarily many sensors and targets. (The number of targets that a given sensor network can track simultaneously is of course limited by the capabilities of the radars themselves - the point is that the coordination mechanism should not be the cause of failure.)
  3. Robust: the coordination mechanism should not catastrophically fail if sensors or communication begin to malfunction. Of course, some degradation in performance is inevitable, but, for example, the failure of a sensor in one corner of a large network should not cause the entire network to fail. In addition, the coordination mechanism should not be overly sensitive to noise in the sensor data.
  4. Low-cost: the main costs are energy and communication. Since a sensor network may be unattended for extended periods and be powered by batteries, it is desirable to reduce energy consumption as much as possible. Energy is consumed by the radars when they perform a scan and, to a lesser degree, by communication. Excessive communication is also considered undesirable because it may reveal the presence and location of the sensors to targets. So the number of scans and number of messages should be minimized to an extent compatible with accurately tracking the targets.

The following sections described the challenge problem hardware and infrastructure, how target tracking is performed based on radar measurements, and a monitoring and visualization system.

Details of the Hardware and other Infrastructure

Each node in the sensor network is comprised of a radar unit and a moderate-power computer. While the computer would be of interest in a practical deployment (being a significant cost and consumer of power), the radar units are the main focus for this challenge problem.

Physical radar unit

Figure 2.2.3: A radar unit

Figure 2.2.3 shows a radar unit. Each radar unit has the following components:

Radio communication is the only feasible technology for many practical applications, but for development, debugging and assessment purposes wired communication is often more convenient. To this end, communication emulators based on UDP and TCP over ethernet were also available. Both emulators used the same API as radio communication. The TCP emulator aimed for reasonable fidelity, mimicking message collision and (adjustable) bandwidth limitations.

Tracking

The challenge problem infrastructure includes several, interchangeable software modules for target tracking. Each module is designed to be instantiated for each target that is to be tracked, after which the instantiation, or tracker, is continually fed sets of more-or-less simultaneous radar measurements relating to that target. (Preferably, each set of measurements would contain data from at least three radar units and span no more than two seconds.) The tracking API provides functions for estimating a target's position and velocity at any time, based on a straight-line extrapolation of its track.

Details of the algorithms used for tracking are provided in the references. Here, a brief, high-level description is provided of how radar data is interpreted. Each radar measurement may provide an amplitude, representing the strength of the reflected signal, and a frequency, representing the Doppler shift caused by the target's motion towards or away from the radar.

In order to simplify signal processing, the challenge problem used standardized targets, consisting of a corner reflector made of copper disc of a standardized size. Because the targets are essentially interchangeable and corner reflectors provide a more-or-less uniform reflection regardless of the angle of incidence of the radar beam (at least in theory), the reflected signal strength depends only on the position of the target relative to the radar unit. Specifically:
reflected(R, phi) = K/R2 e-phi2/A2
where reflected is the strength of the signal received by the radar unit's detector from a target at a distance R from the unit and at an angle phi (in the range -180o to 180o) from the mid-line of the emitter's sector, and where K and A are constants for a given head describing, respectively, the power and beam width of the head's emitter.

For a given measured signal strength, this equation determines a contour of possible target positions, approximating an oval with one end located just behind the radar unit. For example, Figure 2.2.5 shows three contours, corresponding to signal strengths of 10, 100 and 1000, for a radar head positioned at the origin and looking along the positive horizontal axis. Note that the strongest signal corresponds to the smallest contour.

Contours for various signal strengths

Figure 2.2.5: Contours showing the possible positions of targets for various signal strengths

In order to reduce an estimate of a target's position to a single point, in general three such contours must be intersected - see Figure 2.2.6, in which the contours have been approximated using ovals. However, all physical sensors are subject to noise which typically results in the contours may not intersect in a single point, so generally a best-estimate of position must be determined. (For the particular hardware used for the challenge problem, measurement noise can arise from dark current in the detector, fluctuations in the emitter, interference from environmental electro-magnetic sources and deviations of the physical targets from the theoretical model of a corner reflector.)

Intersection of radar contours

Figure 2.2.6: Three intersecting contours fix a target's position

Moreover, to reduce the effects of noise, it is generally desirable to combine estimates derived from new measurements with estimates derived by extrapolating the target's track. Also, each frequency measurement gives an estimate of the target's radial speed (i.e., the component of the target's velocity along a vector from the radar unit to the target) which can also be combined into an overall position estimate.

Monitoring and Visualization

Determining cause-effect relationships in real-time, distributed systems is notoriously difficult due to incomplete or uncorrelated information and due to changes in timing caused by the insertion of monitoring or debugging code. To assist with development, debugging and assessment, a monitoring and visualization system was incorporated into the challenge problem infrastructure in such a way as to minimally perturb the other systems.

The monitoring system had three main parts: monitoring the physical targets; monitoring usage of radar units (including communication); monitoring data being provided to the trackers.

Monitoring physical targets
Determining how accurately target positions are being estimated requires reliably knowing where the targets really are. This was achieved by mounting the targets on model trains equipped with high-quality speed regulators, mapping out the trains tracks and positioning detectors at strategic points on the tracks (see Figure 2.2.7). The detectors provide accurate position-time events to the monitoring system. Because the targets move at a well-controlled speed between these events, their linear distance along the track can be interpolated for times between events; from the linear distance and the map of the track, the targets' 2-dimensional coordinates can be determined.
Monitoring usage of radar units
The radar units have well-defined interfaces for controlling the radar heads, taking samples and communicating. Consequently, it was straightforward to insert monitoring code to records significant events (e.g., the start or end of a measurement, the receipt of a message, the activation or deactivation of a radar head).
Monitoring data provided to the trackers
Because each of the tracking modules adhere to the same interface, it was again straightforward to insert monitoring code to record each measurement provided to the tracker and each estimate produced by the tracker.

train tracks used to control positions of targets

Figure 2.2.7: Radar units places around train tracks, along which targets are moved by model trains

The monitoring code was deployed on each radar unit and data collected fed back in real-time over an ethernet connection to a central visualization terminal, which could display true target positions, target estimates, statistics estimating performance (e.g., number of times a radar scans an empty sector even when a target is nearby, in a different sector), and statistics showing resource usage (power consumption by the radar emitters and amount of communication).

References

University of South Carolina:

Juan E. Vargas, Kiran Tvarlapati, Nagabushan Mahadevan, Murali Narumanchi, & Jonathan Wu, Computer Science & Engineering, University of South Carolina, Columbia, SC 29208. PDF
The Center for Information Technology (CIT) of the University of South Carolina (USC) participated in the Autonomous Negotiating Teams (ANTS) program funded by DARPA since its inception. The USC team was involved in two efforts. The first was to develop a resource allocation architecture called TargetShare, in which agents used utility to negotiate and allocate resources That effort was led by Dr. Jose Vidal. The second effort, led by Dr. Juan E. Vargas, was focused on providing a multi-target tracking system, called the SCTracker, compatible with the program's challenge problem infrastructure. This report describes the two efforts.

Washington University at St. Louis:

A Multiple Hypothesis Markov Localization Approach to Tracking Moving Targets with Distributed Sensors, Weihong Zhang and Weixiong Zhang, Technical Report #WUCS-2002-37, Department of Computer Science, Washington University, Saint Loius, MO. PDF
Tracking or localizing a moving target is a difficult task in a distributed sensor network, due to the lack of knowledge of the target's motion and signal noises. Most existing approaches to the problem use only sensory information and may require accurate target's motion models. In this paper, we present a Markovian approach that combines dynamically estimated target's motion models with received sensor information. ...