From 0592ec1eac02667cb0ba66cd790a55f6ee10f4b5 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Tue, 9 Apr 2024 00:00:51 +0000 Subject: [PATCH] Q3 proof-read, clarified, and re-organized. --- A4/main.pdf | Bin 199364 -> 191116 bytes A4/main.tex | 22 ++++++++++------------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/A4/main.pdf b/A4/main.pdf index 4b03aa5f9a77ac49f6b68b1f726c3c053a2afbde..e9603e211bc56cfb1e73c4cbd0a7f6ef2689fb12 100644 GIT binary patch delta 12661 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 delta 20846 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 oXeox@p${C$M*UysiI=yHr? diff --git a/A4/main.tex b/A4/main.tex index 7ae1dad..bd1f21b 100644 --- a/A4/main.tex +++ b/A4/main.tex @@ -84,41 +84,39 @@ Let ${\sf OPT}$ be the value of the optimal solution of the metric traveling sal \solution -\textbf{Variables and Assumptions}: To begin, we will define our variables and state our assumptions, let \(G = (E, V)\) be the complete graph where \(V\) represents the spatial nodes to be visited and \(E\) be a series of edges that connect all vertices with each other. Each edge is assigned a weight \(c_{ij}\) for the corresponding vertices \(i\) and \(j\). Furthermore, we will assume that the triangle inequality holds for all triangles formed by all edges. In other words, \(\forall i, j, k \in V, c_{ik} \leq c_{ij} + c_{jk}\) essentially stating that for any given vertices \(i\), \(j\), \(k\), the direct edge from \(i\) to \(k\) is never worse than the sequence of edges from \(i\) to \(j\), to \(k\). Let \verb|GRD| be the described greedy algorithm given in the question. We let function \(c(S)\) be the sum of all edge weights for traversing all vertices of a graph \(S\). Lastly, we will assume \verb|OPT| the cost of the a optimal solution to traveling salesman problem (TSP). Our objective is to show that, given \(S_g\) solution generated by \verb|GRD| \(S_g\) is at worst, \(c(S_g) \leq 2 \times \verb|OPT|\). +\textbf{Variables and Assumptions}: To begin, we will define our variables and state our assumptions, let \(G = (E, V)\) be the complete graph where \(V\) represents the spatial nodes to be visited and \(E\) be a series of edges that connect all vertices with each other. Each edge is assigned a weight \(c_{ij}\) for the corresponding vertices \(i\) and \(j\). Furthermore, we will assume that the triangle inequality holds for all triangles formed by all edges. In other words, \(\forall i, j, k \in V, c_{ik} \leq c_{ij} + c_{jk}\) essentially stating that for any given vertices \(i\), \(j\), \(k\), the direct edge from \(i\) to \(k\) is never worse than the sequence of edges from \(i\) to \(j\), to \(k\). Let \verb|GRD| be the given greedy algorithm and \(S_g = E_g, V_g\) be the graph representation of the sequence of vertices and edges to take as the solution (traversal graph) produced by such an algorithm. We let function \(c(S)\) be the sum of all edge weights for traversing all vertices of a graph \(S\). Lastly, we will assume \verb|OPT| is the cost of a optimal solution to traveling salesman problem (TSP) where such a traversal graph is \(S_o = (E_o, V_o)\). Our objective is to show that, \(S_g\) is at worst, \(c(S_g) \leq 2 \times \verb|OPT|\). \medskip -\textbf{Claim 1}: To begin, notice that the \(c(S_o)\) such that \(c(S_o) = \verb|OPT|\), is a cycle that traverses all vertices minimally and cyclically where each node is traversed exactly once with the exception of the starting node. Then, see that \(c(S_o)\) may be trivially converted into a tree graph by simply removing any edge in \(S_o\) and arbitrarily selecting a vertex to become the root of the tree. Furthermore, see that the traversal of such a tree costs will not cost more than the traversal of the original cycle \(S_o\). In other words, \(S_o = (E_o, V_o), \forall e \in E_o, c(S_o - \{e\}) \leq c(S_o)\). - -% TODO Double check if the definition of the w function makes sense. +\textbf{Prim's Minimum Spanning Tree Algorithm Review}: Very briefly, the Prim's minimum spanning tree (MST) algorithm begins by arbitrarily selecting a vertex from a graph, and iteratively selecting the next vertex with the lowest edge weight connecting to the current set of selected vertices. \medskip -\textbf{Prim's Minimum Spanning Tree Algorithm Review}: Very briefly,the Prim's minimum spanning tree (MST) algorithm begins by arbitrarily selecting a vertex from a graph, and iteratively selecting the next vertex with the lowest edge weight connecting to the current set of selected vertices. +\textbf{Claim 1}: To begin, notice that \(c(S_o)\) is a cycle that traverses all vertices minimally and cyclically where each node is traversed exactly once with the exception of the starting node. Then, see that \(c(S_o)\) may be trivially converted into a tree graph by simply removing any edge in \(S_o\) and arbitrarily selecting a vertex to become the root of the tree. Such a tree is spanning (all vertices connected). Furthermore, see that the traversal of such a tree costs will not cost more than the traversal of the original cycle \(S_o\). In other words, \(\forall e \in E_o, c(S_o - \{e\}) \leq c(S_o)\). \medskip -\textbf{Claim 2}: See that the cycle graph \(S_e = (E_e, V_e)\) generated by \verb|GRD| will always result in requiring half of the edges to traverse all nodes via connected edges when compared to traversing a MST. To see this, we assert that \verb|GRD| produces a traversal graph (vertices representing nodes and edges representing the edge taken to reach each vertex) \(S_g = (E_g, V_g)\) that is no different from a graph produced by Prim's MST algorithm \(S_p = (E_p, V_p)\) from \(G\), after running a depth first search (DFS) on \(S_p\), and removing the duplicates, connecting edges that traversed to the duplicate vertices directly to the subsequent vertex after the removed vertex. +\textbf{Claim 2}: See that the greedy traversal graph \(S_g\) will always result in requiring half of the number of edges to traverse all nodes via connected edges when compared to traversing a MST. To see this, we assert that \verb|GRD| produces a traversal graph \(S_g\) that is no different from a graph produced by Prim's MST algorithm \(S_p = (E_p, V_p)\) from \(G\), after running a depth first search (DFS) on \(S_p\), and removing the duplicates, connecting edges that traversed to the duplicate vertices directly to the subsequent vertex after the removed vertex. \smallskip -This is because \verb|GRD| is substantially different only in the step of adding the selected vertex to the current graph. Where in Prim's, the algorithm selects the vertex \(s \in G\) associated with the lowest weighted edge that connects to a vertex \(i\) in the partial solution \(S_{pp} = (E_{pp}, V_{pp})\) and proceeding to the next iteration, \verb|GRD| selects the next vertex and edge identically, however, instead of moving to the next iteration, \verb|GRD| connects \(s \in G\) to the next node \(i\) is linked to \(k \in S_{pp}\). In other words, where Prim's may resolve to connect \(i \rightleftarrows s\) such that \( E_{pp} = \{\ldots, \{i, k\}, \{i, s\}, \ldots\} \), and a traversal by DFS results in a sequence \(\ldots \rightarrow i \rightarrow k \rightarrow i \rightarrow s \rightarrow \ldots \). \verb|GRD| resolves the newly selected vertex such that \( E_{pp} = \{\ldots, \{i, s\}, \{s, k\}, \ldots\} \), effectively changing \(i \rightleftarrows k\) to \(i \rightleftarrows s \rightleftarrows k \) where the traversal is trivially \( \ldots \rightarrow i \rightarrow s \rightarrow k \rightarrow \ldots \) thus maintaining the chain form of the graph. From this breakdown, we can see that the Prim's approach requires double the edges for the full traversal in contrast against the \verb|GRD| algorithm. +This is because \verb|GRD| is substantially different only in the step of adding the selected vertex to the current graph. Where in Prim's, the algorithm selects the vertex \(s \in G\) associated with the lowest weighted edge that connects to a vertex \(i\) in the partial solution \(S_{pp} = (E_{pp}, V_{pp})\) and proceeding to the next iteration, \verb|GRD| selects the next vertex and edge in the same fashion, however, instead of moving to the next iteration, \verb|GRD| connects the selected node, \(s \in G\), to the next node \(i\) was linked to \(k \in S_{pp}\). In other words, where Prim's may resolve to connect \(i \rightarrow s\) such that \( E_{pp} = \{\ldots, \{i, k\}, \{i, s\}, \ldots\} \), and a traversal by DFS results in a sequence \(\ldots \rightarrow i \rightarrow k \rightarrow i \rightarrow s \rightarrow \ldots \). \verb|GRD| resolves the newly selected vertex such that the partial traversal graph for \verb|GRD| is \(S_{gp} = (E_{gp}, V_{gp}) \) where \( E_{gp} = \{\ldots, \{i, s\}, \{s, k\}, \ldots\} \), effectively changing \(i \rightarrow k\) to \(i \rightarrow s \rightarrow k \) thus maintaining the chain form of the graph. \smallskip -However, to see that the methods are analogous and thus, comparable, the DFS traversal \(\ldots \rightarrow i \rightarrow k \rightarrow i \rightarrow s\ \rightarrow \ldots \) can be simplified into \(i \rightarrow k \rightarrow s\) (removing the second appearance of \(i\) in the sequence) without worsening the total weight required for the traversal by the triangle inequality (TI) assumption. To prove this, we may focus on \(k \rightarrow i \rightarrow s\), and see that \(c_{ks} \leq c_{ki} + c_{is}\) (TI assumption). +We can then see that Prim + DFS does create double the edges than \verb|GRD|, since the DFS traversal \(\ldots \rightarrow i \rightarrow k \rightarrow i \rightarrow s\ \rightarrow \ldots \) can be simplified into \( \ldots \rightarrow i \rightarrow k \rightarrow s \rightarrow \ldots \) (removing the second appearance of \(i\) in the sequence) without worsening the total weight required for the traversal by the triangle inequality (TI) assumption. To prove this, we may focus on \(k \rightarrow i \rightarrow s\), and see that \(c_{ks} \leq c_{ki} + c_{is}\) (TI assumption). \smallskip -From this, we can see that Prim's algorithm is known to generate a MST, and to traverse such a tree in it's entirety is double the cost of the cyclical traversal path provided by \verb|GRD|. In other words, we have proven \(2 c(S_p) = (c(S_g))\) or \(c(S_p) = \frac{1}{2}(c(S_g))\). +From this, we can see that Prim's algorithm is known to generate a MST, and to traverse such a tree one vertex after another is double the cost of the cyclical traversal path provided by \verb|GRD|. In other words, we have proven \(2 c(S_p) = (c(S_g))\) or \(c(S_p) = \frac{1}{2}(c(S_g))\). \medskip -\textbf{Proof of 2-Approximation}: +\textbf{Proof Algorithm is 2-Approximation}: \begin{align} - c(S_p) &\leq c(S_o - \{e\}) &(\text{Prim's Algorithm generates MST}) \\ - \frac{1}{2} c(S_g) &\leq c(S_o - \{e\}) &(\text{Claim 2}) \\ + c(S_p) &\leq c(S_o - \{e\}) &(\text{Prim's is MST therefore, costs \(\leq\) other spanning trees.}) \\ + \frac{1}{2} c(S_g) &\leq c(S_o - \{e\}) &(\text{Claim 2 substitution}) \\ \frac{1}{2} c(S_g) &\leq c(S_o - \{e\}) \leq c(S_o) &(\text{Claim 1}) \\ c(S_g) &\leq 2c(S_o) \end{align}