Professional Documents
Culture Documents
A Cooperative Evolutionary Computation Algorithm For Dynamic Multiobjective Multi-AUV Path Planning
A Cooperative Evolutionary Computation Algorithm For Dynamic Multiobjective Multi-AUV Path Planning
This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
2 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. XX, NO. XX, XXXX
but may not find the optimal solutions since they use local v1 S v2S v3 S v5 S
information only. Evolutionary computation models the mis- v1 S v2S v3 S v5 S
imate the optimal solutions, such as genetic algorithm. These v1 T v2T v3T
methods have shown good performance especially on large-
scale instances. Learning-based methods use machine learning (a) G (b) G0
techniques to assign missions, such as Q-learning [12] and Fig. 1. An example of environment modeling: (a) the search graph G,
self-organizing map [13]. The performance of these algorithms (b) the cost map G0 , where VS = {v1S , v2S , v3S , v5S } is the set of can-
depends greatly on the training data and the learning strategy. didate points for AUV launch and recovery, and VT = {v1T , v2T , v3T }
is the set of target vertices.
Given the assigned missions, the paths of multiple AUVs are
planned using a multidimensional random tree star algorithm
[14]. However, the method is task-related. A genetic algorithm
location and path planning. Multiple populations are adopted
is employed to plan paths of AUVs for sensor placement [15].
to find the optimal solutions for maintaining population di-
Differential evolution is adopted to plan the path of each AUV
versity since the multiple populations for multiple objectives
according to the estimated environmental scalar field [16],
(MPMO) framework has shown good performance on multiob-
[17]. These methods are designed for small-scale missions.
jective optimization [22]. The MPMO framework creates one
In addition, the Q-learning method is applied to AUV path
population for every objective and the multiple populations
planning for reducing the energy consumption and travel
coevolve towards the Pareto fronts [23]. Particularly, solutions
distance of AUVs [11]. An on-policy reinforcement learning
are represented using a bi-level encode scheme, which includes
approach plans paths to target missions without any collisions
the surface location points in the first layer and the voyages
by gaining information and rewards from the environment
of AUVs in the second layer. In addition, a recombination-
[18]. However, the trained network may not work well in new
based sampling strategy is developed to fuse information from
environments that are quite different from the trained ones.
multiple populations for improving algorithm convergence.
There are also some works deal with the mission assignment
Once a change occurs, an incremental response strategy is
and path planning simultaneously. For example, a clustering
adopted to update the outdated populations using historical
method is adopted for task assignment and ant colony opti-
information. Experiments are performed on six complex sce-
mization is used to construct paths of multiple AUVs [19]. A
narios, which are constructed with irregular obstacles and
biologically inspired neural network is adopted to select one
risky areas based on the dataset of New Zealand bathymetry.
AUV and plan the path to each target mission according to
The experimental results show the advantage of the proposed
the active values in the grid maps of underwater environments
method over existing methods in terms of solution diversity
[20]. However, the method is only applied to a simple un-
and optimality.
derwater scenario with a size of 10m×10m×10m. The risky
The contributions of the work are summarized as follows:
areas and other features of complex underwater environments
• A new dynamic multiobjective optimization model is
are not concerned. In addition, reinforcement learning provides
rewards of allocation strategies and waypoints to guide particle developed for multi-AUV path planning.
• A new cooperative evolutionary computation algorithm is
swarm optimization to find the optimal strategy and paths in
a real-time rescue system [21]. However, the training samples proposed to plan the paths of multiple AUVs, which visit
of reinforcement learning are rare and only small-scale target a large number of changing target missions in a complex
missions are concerned. environment.
To our best knowledge, most of existing works consider The paper is organized as follows. Section II gives the
one optimization objective only, such as energy consumption, background. Section III presents the details of the proposed
load balance, and mission running time. However, multiple method. Experiments are performed in Section IV and sum-
optimization objectives are usually expected by decision mak- maries are concluded in Section V.
ers. For example, energy consumption and load balance are
usually concerned in complex scenarios for efficiently utilizing II. B ACKGROUND
the AUVs. In addition, these works often assume that the
target missions are invariant. Indeed, new target missions A. Problem Formulation
can be discovered constantly, such as in rescue scenarios, Given multiple target traveling missions M =
and they may also change due to environmental factors. {m1 , ..., mN } distributed in a large and complex underwater
Thus, this paper studies the multi-AUV path planning with environment, a multi-AUV system determines the location of
multiple optimization objectives and changing target missions movable surface vehicles and launches AUVs from them to
in complex underwater environments. complete missions in parallel. Every AUV can be released
This paper models the multi-AUV path planning as a into water multiple times and recovered before the energy is
dynamic multiobjective optimization problem and proposes a exhausted, resulting in multiple voyages. Among all voyages,
cooperative evolutionary computation algorithm, named CEA, each target mission is required to be visited by one voyage
to solve it. In the proposed method, the underwater envi- exactly once. The total payload of a voyage is the sum of
ronment is converted into a search graph for surface point the payload requirement li of each visiting target mission mi
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
AUTHOR et al.: TITLE 3
and should not be higher than the payload capacity Lmax of successive waypoints wji,k and wji,k+1 as
an AUV. To obtain the optimal voyages in terms of resource n−1
X m−1
utilization, this paper considers two common objectives, i.e.,
X
ht(pj ) = height(wji,k , wji,k+1 ) (4)
minimize the total cost f1 of all voyages and minimize the i=0 k=0
maximum ending time f2 of all voyages. Particularly, f1 is
The turning cost of pj is the sum of the turning cost
related to the energy consumption and fixed costs of AUVs
and f2 is about the load balance among voyages. Since turn(wji,k ) of all waypoints wji,k
the target missions may be changed due to ocean flows or si,k−1 si,k
j j
other environmental factors, the multi-AUV path planning is turn(wji,k ) = 1 − cos(θji,k ) = 1 − (5)
formulated as a dynamic multiobjective problem |si,k−1
j ||si,k
j |
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
4 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. XX, NO. XX, XXXX
For example, an interaction-based prediction method is pro- be calculated using the shortest path faster algorithm [19],
posed to predict task scheduling for multiple robots in a coop- which is adopted due to its popularity and low computational
erative multirobot system [40]. Prediction methods may fail if complexity on spare graphs.
the changes do not follow a stable pattern. In contrast, transfer Since the voyage planning involves the surface location
learning shifts historical data to adapt to new environments. points and target missions only, we induce a subgraph G0 =
For example, historical data is shifted to new environments (VS ∪ VT , E 0 ) of G by a subset VS ∪ VT of the vertex set V ,
for training a surrogate using transfer learning techniques [41]. where E 0 contains an edge in E if and only if both endpoints
Reinforcement learning trains a policy network to give actions of this edge are in VT or one endpoint in VS and one endpoint
when interacting with environments [42]. It requires a large in VT . We also add an edge e between vertices from VS ∪ VT
training set to get good performance. to G0 if there is a shortest path between them in G. Note that
edges between vertices from VS are not added to G0 since they
III. T HE P ROPOSED C OOPERATIVE E VOLUTIONARY are not used for voyage planning. The energy and time costs
C OMPUTATION A LGORITHM of the shortest path are assigned to the edges. The resulting
A. Underwater Environment Modeling G0 provides a cost map for voyage planning as illustrated in
Fig. 1(b).
The 3D underwater environment can be represented by a
graph. To set up this correspondence, the underwater envi-
ronment is evenly divided into multiple cubes, which are B. Cooperative Evolutionary Computation Algorithm
represented by vertices. Edges connect two vertices if the Based on the cost map G0 , CEA searches for the surface
cubes represented by these vertices are adjacent. The resultant location points and optimal voyages to travel all targets first.
graph G = (V, E) is called a search graph, where V is the set Then, between any two successive vertices in voyages, a
of cubes and E is the edge set. trajectory is planned based on G to form complete paths of
Denote the length, width, and height of the underwater AUVs.
environment as L, W , and H, and those of a cube as LC , 1) Solution Representation: Denote the number of surface
WC , and HC . Each cube is indexed by a triple-tuple (i, j, k) points to locate as K. A solution X is represented by a bi-level
and its center point is denoted as cijk = (x, y, z) encode scheme
x = (i + 0.5)LC , y = (j + 0.5)WC , z = (k + 0.5)HC . X = (S, P ),
(7) S = (s1 , ..., si , ..., sK ) = (a1 , ..., a2K ), (8)
where 1 ≤ i ≤ L/LC , 1 ≤ j ≤ W/WC , and 1 ≤ k ≤
P = (p1 , ..., pi , ..., pK ).
H/HC . Every line segment connecting the center points of two
adjacent cubes represents an edge. Since each cube is adjacent where S is the surface location points of movable surface
to 26 cubes surrounding it, |E| ≤ 13|V |. Specifically, a cube vehicles, si is i-th surface point selected from VS . A surface
is considered as infeasible if it intersects with an obstacle location point can be represented by a 2-tuple cube index,
or the bathymetry and is then removed from G to ensure i.e., (m, n), since the height is definite. Thus, S is a 2K-
the connectivity of vertices. A cube is risky if it intersects dimensional vector and ai is a number related to a special
with a risky area, and the risky value is defined according surface point. In addition, P is the optimal voyages to travel
to its distance to the risky area. The cubes interacting with all targets and includes K vertex sequences. Particularly, pi is
water surface make up a subset VS of V , which contains all a sequence, e.g., x0 = si , ..., xj , ..., xn−1 , xn = si (xj ∈ VT ,
candidate points for AUV launch and recovery. The cubes in ∀1 ≤ j ≤ n−1), of vertices for a voyage or the combination of
which targets locate are called target vertices and make up a multiple voyages starting from si . Two voyages are separated
subset VT of V . An example of G is illustrated in Fig. 1(a). by the surface point si . For example, if two voyages start
The problem of multi-AUV path planning is equivalent to from si , pi is a sequence, e.g., x0 = si , ..., xj , ..., xn =
the problem of selecting vertices from VS and finding the si , xn+1 , ..., xm+n = si (xj ∈ VT , ∀1 ≤ j ≤ n − 1, n + 1 ≤
“shortest” paths that visit every target vertex in VT exactly j ≤ m + n − 1), of vertices.
once. A problem involving energy cost and traveling time 2) Evolution of Multiple Populations: Two populations are
can be modeled by assigning energy costs and traveling time adopted to optimize different objective functions. One popu-
between vertices to the edges. The resultant graph that has a lation finds the optimal solution of f1 and another one for f2 .
number assigned to each edge is called a weighted graph G. In both populations, the surface location points of individuals
In G, two vertices u and v are connected by a path if there is are updated using differential evolution [43] and the voyages
a sequence of vertices starting with u and ending with v such are constructed using the ant colony system [44].
that the endpoints of each edge in the path are vertices which In i-th (1 ≤ i ≤ 2) population, NP individuals are initialized
are adjacent. Let the energy or time cost of a path between first. Since Sij of an individual Xij = (Sij , Pij ) is real
vertices be the sum of the weights of the edges of this path. A vectors, it is randomly generated in the search space or set
path is shortest if it takes the lowest energy consumption and as the surface points closest to the cluster centers of VT by
the shortest time. Specifically, if two paths are nondominated performing K-means [45]. For the voyage planning of Pij ,
on energy consumption and time cost, then the one with a a N × N pheromone matrix τi is used to record the search
lower energy cost is considered shorter since energy cost is a experience. Each τi (u, v) represents the preference of selecting
critical constraint. The shortest path between two vertices can v after u and is initialized as τi0 = 1/(N fi (X 0 )), where N
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
AUTHOR et al.: TITLE 5
where F is the scale factor, r1 and r2 are two distant random where pro(v) is the selection probability of v as
integers in the range of [1, NP]. Then the crossover operator
is performed to generate a trial vector τi (xt−1 , v)ηi (xt−1 , v)β
pro(v) = P β
,
( u∈T τi (xt−1 , u)ηi (xt−1 , u) (13)
0
0
Sijd , if r < CR or d = drand , 1
Sijd = (10) ηi (xt−1 , v) = .
Sijd , otherwise. ci (xt−1 , v)
r is a random number in the range of [0,1], and q0 is a
where 1 ≤ d ≤ 2K is the dimension index, r is a random
predefined parameter. If r ≤ q0 , the target vertex with the
number in the range of [0,1], CR is the crossover rate, and
highest probability is selected; otherwise, roulette selection is
drand is a random integer in the range of [1, 2K]. Specifically,
performed to choose v 0 based on the probability distribution. In
if some target missions are unreachable by all surface points in
0 0 addition, τi (xt−1 , v) is the pheromone value of v, ηi (xt−1 , v)
Sij , then Sij is readjusted as follows. The closest reachable
0 is the heuristic value of v, and ci (xt−1 , v) is the traveling
surface points to these targets and the surface points in Sij
cost between xt−1 and v according to fi . Specifically, if T is
are collected to perform K-means clustering. The surface
0 empty, then the voyage p is added to p0ijk and a new one is
points closest to the cluster centers are used to update Sij .
constructed until Ck is empty. After finishing the construction
Specifically, if some target missions are still unreachable after
of voyages of all Ck , the local update of the pheromone is
five tries, the fitness value of the solution is set as a very large
performed
value. (
Multi-AUV Voyage Planning: Based on Sij 0
, the targets are τi0 , if (u, v) ∈ Pij0 ,
assigned to the nearest surface location point according to the τi (u, v) = (1−ρ)τi (u, v)+ρ∆τ, ∆τ =
0, otherwise.
optimization objective, resulting in multiple subsets. Denote (14)
the set of the targets assigned to k-th surface point s0k as Ck = where ρ is the evaporation parameter.
{v1 , ..., v|Ck | }. Every Ck is used to construct voyages starting Then Xij0
is evaluated and used to update Xij and Xi,best
from s0k . To achieve this, targets are selected from Ck step by if it is better on fi . After the update of all individuals, the
step. In the first step, one target x1 is randomly selected from global update of the pheromone is performed
Ck and a voyage is initialized as p = (s0k , x1 ). The selected
target x1 is then removed from Ck . At t-th step, the set of τi (u, v) = (1 − α)τi (u, v) + α∆τ, (15)
available target vertices to select is where
(
T = {v | c0 (p) + c0 (xt−1 , v) + c0 (v, s0k ) ≤ Emax & 1/fi (Xi,best ), if (u, v) ∈ Pi,best ,
(11) ∆τ = (16)
l(p) + l(v) ≤ Lmax , ∀v ∈ Ck }. 0, otherwise.
where c0 (p) is the energy cost of the voyage to the last target α is the pheromone decay parameter, and fi (Xi,best ) is the
xt−1 in the voyage p, c0 (xt−1 , v) is the energy cost between fitness value of the best solution. After both two populations
xt−1 and v, c0 (v, s0k ) is the energy cost between v and s0k , l(p) are updated, their individuals are collected together with the
is the total payload of the current voyage p before visiting v, archived solutions and the nondominated ones are stored in
and l(v) is the payload requirement of v. Then one target xt the archive.
is selected from T according to the state transfer rule 3) Recombination-based Sampling Strategy: Since each
population optimizes one objective only, they mainly gather
arg max pro(v), if r ≤ q0 , around the margins of the Pareto front. To reach the areas
xt = v∈T (12) missed by the populations, a recombination-based sampling
v 0 , otherwise. strategy is developed to generate new solutions by fusing
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
6 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. XX, NO. XX, XXXX
information of different populations. First, two solutions X1 = reconstructed using the ant colony system. Similarly, for the
(S1 , P1 ) and X2 = (S2 , P2 ) are randomly selected from the archived solutions, the surface location points keep the same
archive as parents. Then the first part S 0 of surface location and the voyages are reconstructed using the ant colony system
points of a new solution X 0 = (S 0 , P 0 ) is generated using based on the pheromone and heuristic information of a random
simulated binary crossover and polynomial mutation [47], population. The populations and the archived solutions are
and P 0 is constructed by recombining the vertices in parents evaluated and the nondominated ones are stored in the archive.
P1 = (p11 , ..., pK 1 K
1 ) and P2 = (p2 , ..., p2 ). The construction The populations then continue to evolve until meeting new
0
procedure of P is described as follows. To reduce the traveling changes or achieving termination conditions.
cost, each target vertex is assigned to the nearest surface 5) Trajectory Planning: The trajectory planning is performed
location point in S 0 , resulting in one cluster Ck for every at the end of each time step. After finishing the voyage
s0k (1 ≤ k ≤ K). For the vertices in Ck , two sequences a planning, the trajectory of AUV between tow adjacent vertices
and b are constructed according to their orders in P1 and P2 , (u, v) in the voyages is planned using A* search [49]. Indeed,
respectively. The two sequences represent the traveling pref- the trajectory between u and v can be recovered from the
erence of parents and can be used to generate new sequences shortest path searching in G during the environment modeling
using crossover. Two crossover points are randomly selected procedure, but it may require a large memory. Thus, if the
to split a into three segments, i.e., a1 , a2 , and a3 . Similarly, b shortest path is not stored, A* search is used for finding the
is split into b1 , b2 , and b3 . Then a new sequence is obtained by optimal path between u and v in G. To ensure the optimality of
combining a3 , a1 , and b2 in order. Notably, repeat targets are A* search, the heuristic value (the estimated cost) of a vertex
removed. Specially, the unvisited targets in Ck are appended x to the endpoint v should be not higher than the optimal
into the new sequence according to their orders in b. The new traveling cost between them [19]. We assume that there is a
sequence is then used to construct voyages using the splitting direct line segment between x and v in G and set its traveling
method [48], which splits the sequence into (near) optimal cost as the heuristic value of x.
voyages.
An example of the recombination-based sampling is illus-
C. Worst Computational Complexity of CEA in a Time
trated in Fig. 2. There are two surface points s1 and s2 .
Step
The parent P1 includes two voyages p1 = {s1 , 3, 2, 6, 5, s1 }
and p2 = {s2 , 4, 7, 1, 8, s2 }. The voyages in P2 are p1 = The computational complexity of CEA includes those of
{s1 , 5, 4, 8, 2, s1 } and p2 = {s2 , 3, 1, 6, 7, s2 }. Given a set four parts, i.e., cost map building, initialization, evolution of
of target missions C1 = {1, 3, 5, 6}, we rearrange the tar- populations, and incremental response strategy. Denote the size
get missions in C1 based on their order in p1 and p2 of of a population as NP, the number of target missions as N , the
P1 , resulting in a sequence a = {3, 6, 5, 1}. Similarly, a number of surface points as K, the number of optimization
sequence b is obtained from P2 , i.e., b = {5, 3, 1, 6}. Then objectives as M , the number of iterations as I, the number
two random points are adopted to cut a and b into three of vertices in the cost map G0 as |V 0 |, the average times of a
subsequences, i.e., a1 = {3}, a2 = {6, 5}, a3 = {1}, and cube entering the queue in the shortest path faster algorithm
b1 = {5}, b2 = {3, 1}, b3 = {6}. A new sequence is generated as k, and the number of vertices in the graph G as |V 0 |.
by concatenating a3 , a1 , and b2 , i.e., c = {1, 3}. The remaining First, the computational complexity of the cost map building
target missions, i.e., 5 and 6, are appended to c in their order is O(k × N × |V 0 |).
in b, resulting in c = {1, 3, 5, 6}. Finally, the vertex sequence Second, in the initialization, the setting of initial surface
c is split to generate multiple new voyages. points requires O(N Knc ) computations for an individual,
In each generation, |A|/2 solutions are generated using the where nc is the number of iterations for k-means clustering
recombination-based sampling, where |A| is the size of the and is usually a small value. The initialization of voyages
archive. The newly generated solutions are used to update the requires O((nd nR nU nL N + N + N 2 )nP ) computations using
archive and only nondominated ones are preserved. Through the record-to-record travel algorithm, where nd = 30 is the
the evolution of multiple generations, the algorithm converge number of loops in the diversification phase, nR = 30 is the
towards the Pareto front. The archive provides multiple high- size of the neighbor list, nU = 3 is the number of heuristic
quality solutions to decision makers. used, nL = 5 is the number of local minima to reach, nP is
4) Incremental Response Strategy to Changes: Due to the the number of perturbations. Thus, the initialization of M ×NP
ocean flows or other factors, the target missions may change individuals requires O(M × N × K × NP + M × N 2 × NP)
with time. For example, some target missions are canceled computations.
and some are changed to other locations due to the risk; new Third, in every iteration, the update of surface points in
target missions arrive in search and rescue. In response to an individual requires O(K) computations. The clustering
such changes, the paths of AUVs should be replanned based of target missions based on surface points requires O(N K)
on a newly constructed cost map G0 . Since targets are still computations. Voyage planning requires O(N 2 ) computations.
distributed in a large underwater environment, the surface The local update of a pheromone matrix requires O(N 2 )
location points and voyages found before may be useful for the computations. The global pheromone update of the pheromone
planning of new target missions. Thus, to utilize the historical matrix requires O(N 2 ) computations. Thus, the update of M
search experience, the surface location points of all individuals populations requires O(((K + N K + N 2 + N 2 ) × NP +
in the populations remain the same and their voyages are N 2 ) × M ) = O(N × M × K × NP + N 2 × M × NP)
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
AUTHOR et al.: TITLE 7
© 2023 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.See https://www.ieee.org/publications/rights/index.html for more information.
Authorized licensed use limited to: SSEN. Downloaded on May 06,2023 at 09:13:06 UTC from IEEE Xplore. Restrictions apply.
This article has been accepted for publication in IEEE Transactions on Industrial Informatics. This is the author's version which has not been fully edited and
content may change prior to final publication. Citation information: DOI 10.1109/TII.2023.3268760
8 IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS, VOL. XX, NO. XX, XXXX