# difference between floyd and warshall algorithm

The Floyd-Warshall algorithm improves upon this algorithm, running in(n3)time. Then. D(k-1)[k, j])). to vj. The reason why this is not a good enough complexity is that the same can be calculated using the Floyd-Warshall algorithm, which has a time complexity of . See your article appearing on the GeeksforGeeks main page and help other Geeks. edited 5 years ago. the transitive closure by generating a sequence of n matrices, where n is We can also adapt the algorithm to store the shortest path itself..... Dijkstra’s Algorithm Given a graph G = (V;E) where edges ... Again, Floyd-Warshall is less ﬃ but much easier to implement than all-pairs Dijkstra. Like the Bellman-Ford algorithm and Dijkstra's algorithm, it computes the shortest weighted path in a graph. dijkstra vs floyd-warshall: Comparison between dijkstra and floyd-warshall based on user comments from StackOverflow. Floyd-Warshall algorithm is used to find all pair shortest path problem from a given weighted graph. Consider the all the paths from vi to vj j], (D(k-1)[i, k] + The worst case cost is Θ(n3), so it is not better than Note that only the prior distance matrix need only be Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. The transitive closure of a directed graph with n vertices can be defined as the n-by-n Heuristics. The main advantage of Floyd-Warshall Algorithm is that it is extremely simple and easy to implement. Stephen Warshall and Robert Floyd independently discovered Floyd’s algorithm in 1962. the number of vertices. As a result of this algorithm, it will generate a matrix, which will represent the minimum distance from any node to all other nodes in the graph. Warshall's and Floyd's Algorithms Warshall's Algorithm. Floyd-Warshall's Algorithm Floyd-Warshall's Algorithm is a different approach to solving the all pairs shortest paths problem. Floyd Warshall algorithm is an All-Pairs shortest path algorithm. Its other applications are: All-pairs shortest path: Computing shortest paths between every pair of vertices in a directed graph. rij(k) At first, the output matrix is the same as the given cost matrix of the graph. The Floyd-Warshall algorithm is an example of dynamic programming, published independently by Robert Floyd and Stephen Warshall in 1962. represent paths without any intermediate vertices, so it is the adjacency Algorithm Visualizations. weighted edges for all paths between the pair. Floyd's Algorithm is very similar to Warshall's Below is the implementation for the Floyd-Warshall algorithm, which finds all-pairs shortest paths for a given weighted graph. The work-horse kernel in this code appearss to be limited by global memory throughput (you can double check on that hypothesis with a profiler), and already uses the base+tid addresing pattern which makes for efficient global memory access. multiplication algorithm and Floyd-Warshall now. The Floyd-Warshall Algorithm provides a Dynamic Programming based approach for finding the Shortest Path. Floyd-Warshall Algorithm Given a directed weighted graph G Outputs a matrix D where d ij is the shortest distance from node i to j Can detect a negative-weight cycle Runs in Θ(n3) time Extremely easy to code – Coding time less than a few minutes Floyd-Warshall Algorithm 4 Each cell A[i][j] is filled with the distance from the ith vertex to the jth vertex. And so it is indeed the case that the o n 3 time of floyd-warshall is not better than the o n n + e lgn time of making n calls to dijkstra. Floyd-Warshall is one example of an all-pairs shortest path algorithm, meaning it computes the shortest paths between every pair of nodes. Brute Force Algorithm is to use a graph transversal for each With simple modifications, it is possible to create a method to reconstruct the actual path between any two endpoint vertices. element is filled with 1. = rij(k-1) or (rik(k-1) and rkj(k-1)), Illustrate the algorithm, point out the rows and columns Then the paths be Assuming that the graph is represented by an adjacency matrix then the PRACTICE PROBLEM BASED ON FLOYD WARSHALL ALGORITHM- Problem- Consider the following directed weighted graph- Using Floyd Warshall Algorithm, find the shortest path distance between every pair of vertices. The shortest path in a weighted graph is the minimum sum of Please write to us at contribute@geeksforgeeks.org to report any issue with the above content. Don’t stop learning now. Let the given graph be: Follow the steps below to find the shortest path between all the pairs of vertices. is one and rij(k-1) = 0. Could someone tell me if I have understood them accurately enough or not? What is Floyd Warshall Algorithm ? Like the Bellman-Ford algorithm or the Dijkstra's algorithm, it computes the shortest path in a graph. The Floyd–Warshall algorithm typically only provides the lengths of the paths between all pairs of vertices. Floyd Warshall Algorithm is used to find the shortest distances between every pair of vertices in a given weighted edge Graph. being referenced in each matrix, Algorithm Warshall(A[1...n, 1...n]) // A is the adjacency matrix, R(k)[i, j] ← R(k-1)[i, Writing code in comment? Cela n'échoue que lorsqu'il y a des cycles négatifs (ce qui est le plus important. En informatique, l'algorithme de Floyd-Warshall est un algorithme pour déterminer les distances des plus courts chemins entre toutes les paires de sommets dans un graphe orienté et pondéré, en temps cubique en le nombre de sommets. Floyd Warshall calculates shortest distance between nodes while Bellman Ford algorithm calculates shortest path distance from source node to other vertexes. to vj is one if and only if there exist a path from vi to vj such that all the intermediate vertex, wq is Assuming that the graph was represented by an Floyd-Warshall's Algorithm. 1 ≤ Why? In this section, we look at two well-known algorithms: Warshall’s algorithm for computing the transitive closure of a directed graph and Floyd’s algorithm for the all-pairs shortest-paths problem. Then we update the solution matrix by considering all vertices as an intermediate vertex. path between vertices, vi (where 1 ≤ q < k), vk are the paths from vi to vk with no The Floyd Warshall Algorithm has a number of applications in real life too. More specifically the list of vertices has the form, vi, wq L'algorithme de Floyd-Warshall prend en entrée un graphe orienté et valué (V, E), sous la forme d'une matrice d'adjacence donnant le poids d'un arc lorsqu'il existe et la valeur ∞ sinon.Le poids d'un chemin entre deux sommets est la somme des poids sur les arcs constituant ce chemin. Floyd–Warshall’s Algorithm is used to find the shortest paths between all pairs of vertices in a graph, where each edge in the graph has a weight which is positive or negative. split into parts at vk: Note: vi, Consider a graph G, with Vertices V numbered 1 to n. Floyd Warshall Algorithm is an example of all-pairs shortest path algorithm, meaning it computes the shortest path between all pair of nodes. Am I right about the differences between Floyd-Warshall, Dijkstra's and Bellman-Ford algorithms? However unlike Bellman-Ford algorithm and Dijkstra's algorithm, which finds shortest path from a single source, Floyd-Warshall algorithm finds the shortest path from every vertex in the graph. Then we update the solution matrix by considering all vertices as an intermediate vertex. adjacency matrix then the cost is Θ(n3) where n is the number of vertices in the Can anyone provide what is the main difference between A* and f-w algorithm? Ask Question Asked 2 years, 5 months ago. It teaches the machine to solve problems using the same rules. boolean matrix T, in which the element in the ith row and jth column is 1 If rij(k-1) = 1 then rij(k) should be one. 2. Differences between A* floyd-warshall? Floyd Warshall Algorithm is an example of all-pairs shortest path algorithm, meaning it computes the shortest path between all … // iteration through distance matrices, D(k)[i, j] ← Viewed 476 times 2. The minimal is dkj(k-1). (2) I've been studying the three and I'm stating my inferences from them below. The R(n) matrix has ones Hence, it can give the same result with lower complexity. j entry in D(k), dij(k), is the minimal distance of Warshall's algorithm calculates if there is a path between the vertices with intermediate vertices from any of However, Bellman-Ford and Dijkstra are both single-source, shortest-path algorithms. The shortest path for set 2 is min(dik(k-1) + dkj(k-1)). Floyd-Warshall All-Pairs Shortest Path. We use cookies to ensure you have the best browsing experience on our website. Let W represent where n is the number of vertices in Now, create a matrix A1 using matrix A0. Floyd Warshall Algorithm is used to find the shortest distances between every pair of vertices in a given weighted edge Graph. The Floyd-Warshall algorithm is a shortest path algorithm for graphs. All algorithms presented here are based on weighted graphs, i.e., the network consists of a set N of n nodes and a set E of m edges (arcs), each connecting two nodes (i; j). Also: vk. Floyd Warshall algorithm is a Dynamic Programming based algorithm. wq Floyd-Warshall's algorithm is used when any of all the nodes can be a source, so you want the shortest distance to reach any destination node from any source node. However, Bellman-Ford and Dijkstra are both single-source, shortest-path algorithms. 3 $\begingroup$ From my understanding, a problem amenable to a dynamic programming solution has these two properties: Overlapping Subproblems — The same subcase (a subsection of the overall … Each execution of line 6 takes O (1) time. Heuristics. This algorithm works by estimating the shortest path between two vertices and further improving that estimate until it is optimum. 3. That is, it is guaranteed to find the shortest path between every pair of vertices in a graph. 2. Floyd Warshall Algorithm We initialize the solution matrix same as the input graph matrix as a first step. The algorithm thus runs in time θ(n 3). In addition, when using the Floyd-Warshall algorithm for graphs with negative cycles, we should keep in mind that situations may arise in which distances can get exponentially fast into the negative. What are the differences between Bellman Ford's and Dijkstra's algorithms? Then we update the solution matrix by considering all vertices as an intermediate vertex. intermediate vk. algorithm - warshall - what's the difference between dijkstra and bellman ford . Experience, Time Complexity of Dijkstra’s Algorithm: O(E log V), We can use Dijskstra’s shortest path algorithm for finding all pair shortest paths by running it for every vertex. distant matrix entry is ∞. The algorithm solves a type of problem call the all-pairs shortest-path problem. At ﬁrst the formulation may seem most unnatural, but it leads to a faster algorithm. Floyd-Warshall’s algorithm is a dynamic programming based algorithm to compute the shortest distances between every pair of the vertices in a weighted graph where negative weights are allowed. Time Complexities : Time Complexity of Dijkstra’s Algorithm: O(E log V) Time Complexity of Floyd Warshall: O(V 3) Other Points: We can use Dijskstra’s shortest path algorithm for finding all pair shortest paths by running it for every vertex. The idea is to one by one pick all vertices and update all shortest paths which include the picked vertex as an intermediate vertex in the shortest path. Dijkstra’s algorithm finds the shortest path between a single pair of nodes, while Floyd-Warshall finds the shortest paths between all pairs of nodes. matrix need not be stored. 1...n]) // W is the weight distances, for k ← 1 to n do dijkstra vs floyd-warshall: Comparison between dijkstra and floyd-warshall based on user comments from StackOverflow. The Floyd-Warshall Algorithm is an efficient algorithm to find all-pairs shortest paths on a graph. Actually, the Warshall version of the algorithm finds the transitive closure of a graph but it does not use weights when finding a path. Between our different implementations of Floyd-Warshall's Algorithm, the CUDA approach, which can be considered the most extremely data parallel, performed the best. Warshall's algorithm uses the Floyd Warshall’s Algorithm can be applied on Directed graphs. The elements in the first column and the first ro… Like the Bellman-Ford algorithm or the Dijkstra's algorithm, it computes the shortest path in a graph. Note that separate R are the paths from vk that there is an intermediate path through vk from from vi The Floyd-Warshall Algorithm provides a Dynamic Programming based approach for finding the Shortest Path.This algorithm finds all pair shortest paths rather than finding the shortest path from one node to all other as we have seen in the Bellman-Ford and Dijkstra Algorithm. This was not the case for Johnson's Algorithm. The i, Example: Apply Floyd-Warshall algorithm for constructing the shortest path. Floyd Warshall Algorithm We initialize the solution matrix same as the input graph matrix as a first step. Rather than running Dijkstra's Algorithm on every vertex, Floyd-Warshall's Algorithm uses dynamic programming to construct the solution. with no intermediate vk. The idea is to one by one pick all vertices and update all shortest paths which include the picked vertex as an intermediate vertex in the shortest path. The floyd warshall algorithm is for solving the All Pairs Shortest Path problem. the n vertices of the graph, so it is the brute force algorithm. with intermediate vertices less than k, The Floyd–Warshall algorithm can be used to solve the following problems, among others: if there exist a directed path from the ith vertex to the jth vertex, otherwise it is zero. Note that if the two vertices are not adjacent then the corresponding Floyd Warshall Algorithm We initialize the solution matrix same as the input graph matrix as a first step. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. stored. (where 1 ≤ q < k), vj Dijkstra’s Algorithm is one example of a single-source shortest or SSSP algorithm, i.e., given a source vertex it finds shortest path from source to all other vertices. Floyd-Warshall Algorithm: We continue discussion of computing shortest paths between all pairs of ver-tices in a directed graph. Il est parfois appelé algorithme de Roy-Floyd-Warshall car il a été décrit par Bernard Roy en 1959 [1] avant les articles de Floyd et Warshall datant de 1962. Algorithme. En informatique, l'algorithme de Floyd-Warshall est un algorithme pour déterminer les distances des plus courts chemins entre toutes les paires de sommets dans un graphe orienté et pondéré, en temps cubique en le nombre de sommets. algorithm calculates the minimal distance using a sequence of n matrices, where n is the number of vertices. In the given graph, there are neither self edges nor parallel edges. Floyd-Warshall Algorithm is an algorithm for solving All Pairs Shortest path problem which gives the shortest path between every pair of vertices of the given graph. Floyd-Warshall algorithm is used to find all pair shortest path problem from a given weighted graph. Floyd Warshall Algorithm implemented in C language for finding shortest path between all nodes in a graph represented in Matrix form. The Floyd-Warshall algorithm compares all possible paths in the graph for each side of all nodes. This only fails when there are negative cycles (this is the most important one. algorithm is faster. The technique used in this algorithm is known as Matrix Chain Multip Warshall's algorithm uses the adjacency matrix to find the transitive closure of a directed graph.. Transitive closure . Then we update the solution matrix by considering all vertices as an intermediate vertex. This means they only compute the shortest path from a single source. The problem is to find shortest distances between every pair of vertices in a given edge weighted directed Graph. graph. Thank you. By using our site, you If a vertex is reached then the corresponding matrix INPUT : Input will be a distance matrix (let say dis) , where dis[i][j] will represent the distance between the ith and jth node in the graph. wq they can be divided into sets: In set 1, all paths with no vertex numbered k, the minimal distance is dij(k-1). Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. acknowledge that you have read and understood our, GATE CS Original Papers and Official Keys, ISRO CS Original Papers and Official Keys, ISRO CS Syllabus for Scientist/Engineer Exam, Betweenness Centrality (Centrality Measure), Comparison of Dijkstra’s and Floyd–Warshall algorithms, Check if a graph is strongly connected | Set 1 (Kosaraju using DFS), Tarjan’s Algorithm to find Strongly Connected Components, Articulation Points (or Cut Vertices) in a Graph, Eulerian path and circuit for undirected graph, Fleury’s Algorithm for printing Eulerian Path or Circuit, Hierholzer’s Algorithm for directed graph, Find if an array of strings can be chained to form a circle | Set 1, Find if an array of strings can be chained to form a circle | Set 2, Kruskal’s Minimum Spanning Tree Algorithm | Greedy Algo-2, Prim’s Minimum Spanning Tree (MST) | Greedy Algo-5, Prim’s MST for Adjacency List Representation | Greedy Algo-6, Dijkstra’s shortest path algorithm | Greedy Algo-7, Dijkstra’s Algorithm for Adjacency List Representation | Greedy Algo-8, Dijkstra’s shortest path algorithm using set in STL, Dijkstra’s Shortest Path Algorithm using priority_queue of STL, Dijkstra’s shortest path algorithm in Java using PriorityQueue, Comparison between Adjacency List and Adjacency Matrix representation of Graph. Attention reader! The idea is to one by one pick all vertices and updates all shortest paths which include the picked vertex as an intermediate vertex in the shortest path. vertices. The row and the column are indexed as i and j respectively. Solution- Step-01: Remove all the self loops and parallel edges (keeping the lowest weight edge) from the graph. This means it calculates the value of the shortest path between each pair of nodes in a graph. Consider the case rij(k) The distant matrix gives the weight of edges for adjacent Lastly Floyd Warshall works for negative edge but no. # Python Program for Floyd Warshall Algorithm # Number of vertices in the graph V = 4 # Define infinity as the large enough value. The definition of the element at the ith row and jth column in the kth matrix (R(k)), rij(k) Push Relabel Algorithm | Set 1 (Introduction and Illustration), Travelling Salesman Problem | Set 1 (Naive and Dynamic Programming), Shortest path with exactly k edges in a directed and weighted graph, Given a matrix of ‘O’ and ‘X’, replace 'O' with 'X' if surrounded by 'X', Karger's algorithm for Minimum Cut | Set 1 (Introduction and Implementation), Karger’s algorithm for Minimum Cut | Set 2 (Analysis and Applications), Number of Triangles in Directed and Undirected Graphs, Minimum Cost Path with Left, Right, Bottom and Up moves allowed, Graph implementation using STL for competitive programming | Set 1 (DFS of Unweighted and Undirected), Cycles of length n in an undirected and connected graph, Union-Find Algorithm | (Union By Rank and Find by Optimized Path Compression), Construct binary palindrome by repeated appending and trimming, Number of shortest paths in an unweighted and directed graph, Undirected graph splitting and its application for number pairs, Tree, Back, Edge and Cross Edges in DFS of Graph, Ford-Fulkerson Algorithm for Maximum Flow Problem, Disjoint Set (Or Union-Find) | Set 1 (Detect Cycle in an Undirected Graph), Print all paths from a given source to a destination, Count all possible paths between two vertices, Write Interview The running time of the Floyd-Warshall algorithm is determined by the triply nested for loops of lines 3-6. the graph. 1 ≤ q ≤ k. The R(0) matrix The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph whereas Floyd-Warshall computes shortest paths from each node to every other node. An Algorithm is defined as a set of rules or instructions that help us to define the process that needs to be executed step-by-step. I mean, this is the one I'm least sure about:) 3.Bellman-Ford is used like Dijkstra's, when there is only one source. matrix. adjacency matrix to find the transitive closure of a directed graph. For a spare graph and adjacency list then the cost is Θ((n+m)n). Floyd–Warshall algorithm is an algorithm for finding shortest paths in a weighted graph with positive or negative edge weights (but with no negative cycles). Note the k subscript. Floyd-Warshall's algorithm is for finding shortest paths in a weighted graph with positive or negative edge weights.A single execution of the algorithm will find the lengths (summed weights) of the shortest paths between all pair of vertices. If there is no path from ith vertex to jthvertex, the cell is left as infinity. The function floyd_warshall takes a graph as an input, which is represented by an edge list in the form of [source, destination, weight]. The Floyd algorithm is essentially the same as the Warshall algorithm except it adds weight to the distance calculation. Another example is "for each node v, run Dijkstra with v … Active 1 year, 7 months ago. is to finding the minimum weight path between any two vertices in the graph. The Floyd-Warshall algorithm dates back to the early 60’s. Floyd Warshall Algorithm We initialize the solution matrix same as the input graph matrix as a first step. I do not understand the difference between the All Pairs Shortest Path problem (solved by the Floyd–Warshall algorithm) and the Shortest Path problem (solved by Dijkstra's algorithm). Floyd-Warshall Algorithm. the weight of the path. For a sparse graph, adjacency list is more appropriate, then the cost is Θ((n+m)n). Recall that a path in a simple graph can be defined by a among the first k vertices, ie. Floyd Warshall’s Algorithm can be applied on Directed graphs. All pairs shortest path problem And so it is indeed the case that the o n 3 time of floyd-warshall is not better than the o n n + e lgn time of making n calls to dijkstra. In fact, for a sparse graph the brute force The minimal path from vi to vj is then the minimal of the two sets: or dij(k) = min(dij(k-1), dik(k-1) + dkj(k-1)), Algorithm Floyd(W[1...n, This can occur only if As a result of this algorithm, it will generate a matrix, which will represent the minimum distance from any node to all other nodes in the graph. How heuristic influences comparing A* to f-w? The minimal is dik(k-1). The path_reconstruction function outputs the shortest paths from each vertex that is connected to every other vertex. i and j are the vertices of the graph. Below is the psedocode for Floyd Warshall as given in wikipedia. Floyd Warshall Algorithm We initialize the solution matrix same as the input graph matrix as a first step. min(D(k-1)[i, Floyd-Warshall All-Pairs Shortest Path. Il est parfois appelé algorithme de Roy-Floyd-Warshall car il a été décrit par Bernard Roy en 1959 [1] avant les articles de Floyd et Warshall datant de 1962. It is not only used in mathematical operations like these but is also very useful in daily life problems of networking. 1. Can anyone provide what is the main difference between A* and f-w algorithm? wq sequence of vertices. I am not familiar with the algorithm, so can’t comment on the port in algorithmic terms. ... All information related to the different session will be provided here and all will be linked to a particular article which includes all the information with editorials for the problem that we have discussed in that session. vertex. q ≤ k. Note that D(0) is the distance matrix and D(n) is the solution that we are seeking. But time complexity of this would be O(VE Log V) which can go (V. Another important differentiating factor between the algorithms is their working towards distributed systems. such that all the intermediate vertex, wq is among the first k vertices, ie. Then we update the solution matrix by considering all vertices as an intermediate vertex. 1. In set 2, all paths with a vertex numbered k, the minimal path will visit the vk only once. Transitive Closure can be solved by graph transversal for Please use ide.geeksforgeeks.org, generate link and share the link here. Bellman-Ford Algorithm. to vj With a little variation, it can print the shortest path and can detect negative cycles in a graph. It does so by comparing all possible paths through the graph between each pair of vertices and that too with O(V 3) comparisons in a graph. Warshall-Floyd Algorithm and Johnson's Algorithm are algorithms that compute the shortest paths for all pairs of nodes in a weighted graph with … The graph may have negative weight edges, but no negative weight cycles (for then the shortest path is … The most important questions are: 1: What are the main differences between Floyd Warshall and Dijkstra? $-\text{INF}$). Understanding Bellman-Ford and Floyd-Warshall Algorithms as Dynamic Programming Algorithms. Therefore integer overflow must be handled by limiting the minimal distance by some value (e.g. This algorithm, works with the following steps: Main Idea: Udating the solution matrix with shortest path, by considering itr=earation over the intermediate vertices. the transitive closure. Differences between A* floyd-warshall? l'algorithme de Floyd-Warshall est utilisé lorsque l'un des noeuds peut être une source, donc vous vouloir la distance la plus courte pour atteindre n'importe quel noeud de destination de n'importe quel noeud source. Different algorithms have been proposed for ﬁnding the shortest path between the nodes in a graph. This means they only compute the shortest path from a single source. each vertex in the graph. How heuristic influences comparing A* to f-w? Warshall’s and Floyd’s Algorithms . It does so by improving on the estimate of the shortest path until the estimate is optimal. The basic use of Floyd Warshall is to calculate the shortest path between two given vertices. (where 1 ≤ q < k), vj, This can happen only if rik(k-1) = rkj(k-1) = 1. j] or (R(k-1)[i, k] and R(k-1)[k, j]). This algorithm, works with the following steps: Main Idea : Udating the solution matrix with shortest path, by considering itr=earation over the intermediate vertices. It's an algorithm for finding the lightest path between every two nodes in a given weighted graph. The algorithm compares all possible paths between each pair of vertices in the graph. Am I right about the differences between Floyd-Warshall, Dijkstra and Bellman-Ford algorithms?Helpful? This article is contributed by Vineet Joshi. The genius of the Floyd-Warshall algorithm is in ﬁnding a different formulation for the shortest path subproblem than the path length formulation introduced earlier. It may be due to the estimation of decision making (shortest path selection) at each stage between two vertices until the estimate is known as the optimal value. Unlike Dijkstra’s algorithm, Floyd Warshall can be implemented in a distributed system, making it suitable for data structures such as Graph of Graphs (Used in Maps). 3. (where 1 ≤ q < k), vk. I know exactly what's the difference between the matr. Create a matrix A1 of dimension n*n where n is the number of vertices. The Floyd-Warshall algorithm is a shortest path algorithm for graphs. Floyd-Warshall Algorithm is an example of dynamic programming. cost is Θ(n3)

Service Dog Commands For Anxiety, White Asparagus With Parmesan, Vrealize Log Insight, Glass Pickle Container With Strainer, G's Pizza Coupons, Reddit Programmer Humor, Vicuna Wool Price, Caron Cakes Nz,

- 已是最新文章
- 下一篇: 【常见问题】充电站选址 | 电动汽车充电桩到底都建在哪里？