2.3. Teor´ıa de los Funcionales de la Densidad
2.3.2. Aproximaci´on de Kohn-Sham
The Duplex algorithm is derived from the RRT algorithm. We briefly de- scribe the RRT algorithm presented in [43]. The RRT algorithm was devel- oped as a motion planning algorithm for robots. The objective of the RRT algorithm is to find a viable motion (path) from the robot’s initial configu- ration of the robot to its destination. So the robot can move and get to its destination by executing the motion.
The RRT is a tree data structure. The tree is initialized through fixing of its root at a specified state1 in the state space S. The tree is then grown
incrementally through the addition of edges between existing nodes and the new state selected from the state space. The selection of the new states determines the manner in which the tree grows in the state space. Typically, the new states are selected at random through uniform sampling of the state space.
LetG be the RRT data structure. Each node of G corresponds to a state in S, i.e., a unique set of values assigned to the state variables x. Each edge represents a solution of the system from initial condition x for a given assignment of values to the input variables u.
Algorithm 1 describes the growth of the tree G in the classic RRT algo- rithm [43]. At every iteration, the RRT algorithm generates a random state
1Throughout this thesis, point denotes a vector in Rn. The state is a physical man-
ifestation of the point in the state space S ⊂ Rn (with corresponding scales and units).
The region is a connected subset of the state spaceS. Finally, a node is the state in the
tree data structure (augmented with input u(t), time annotation t, and possible pointers to other nodes).
Algorithm 1 RRT algorithm using uniform sampling
1: G.init (x(0))
2: for i = 1→ MAX − IT ER do
3: qsample ← UniformSampling(S)
4: qnear ← FindNearestNodeInTree(S, qsample)
5: qnew ← FindOptimumTrajectory(qnear, qsample)
6: G.expand(qnew) 7: end for −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4
(a) The RRT after 1000 iterations.
−0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
(b) The RRT after 10000 iterations.
Figure 3.2: The classic RRT algorithm does not have any direction or bias and rapidly explores the entire reachable state space.
qsample uniformly distributed in the state space. For every new generated
state qsample, the RRT algorithm will find the nearest state, qnear, and will
determine which solution for any u ∈ U will bring node qnear closer to the
sampled state. The RRT determines the closest state by simulating different circuit trajectories and selecting the optimum one [42, 40] based on Euclidean distance. That process is called shooting. From the initial state qnear, the
algorithm will randomly sample the input space U and generate the corre- sponding trajectory by shooting for a short time (∆t). The algorithm will then select the optimal trajectory as the trajectory that would result in the final state closest (based on Euclidean distance) to the qsample. When the
path is determined, the tree will expand from qnear toward qnew through the
addition of the edge enew to the tree. The algorithm stores the state q, time
t, and trajectory u for each node in the tree, so later an input stimulus can be reproduced using that information. Figure 3.1 shows the growth of the RRT tree toward a given sample node. The RRT algorithm will terminate after a fixed number of iterations M AX − IT ER.
3.2.1
Properties of the RRT algorithm
The RRT grows rapidly and quickly visits unexplored regions of the state space [43]. The RRT algorithm is probabilistically complete; i.e., as the num- ber of samples approaches infinity, the RRT covers the entire state space [43]. The RRT algorithm has an implicit Voronoi bias and therefore rapidly explores the total reachable state space, as shown in Figure 3.2. The RRT algorithm does not exhibit any bias toward the destination. In optimization problems, the goal is to reach the minimum of the function, not to explore the state space. As a result, the RRT algorithm is very inefficient for solving directed search or optimization problems that arise in analog circuit valida- tion.
3.2.2
Comparison of the random tree algorithm and linear
search
Traditional optimization methods are based on non-branching linear search algorithms such as gradient descent, simulated annealing, random walk, and hill climbing algorithms. The linear search starts from a randomly selected state and walks in the state space without branching to reach the optimum state.
The linear search algorithms do not branch the simulation and do not maintain the history of the previously visited states. If they get stuck in local minima, they have to backtrack which results in poor performance. Many algorithms avoid backtracking; these algorithms can get stuck in local minima and do not converge to the optimum solution in non-convex problems. Furthermore, they only consider one path per run, and cannot produce the Pareto frontier without multiple reruns. Random tree algorithm can address both of these issues.