Approximation Algorithms Last Updated : 09 May, 2022 Summarize Comments Improve Suggest changes Share Like Article Like Report Overview :An approximation algorithm is a way of dealing with NP-completeness for an optimization problem. This technique does not guarantee the best solution. The goal of the approximation algorithm is to come as close as possible to the optimal solution in polynomial time. Such algorithms are called approximation algorithms or heuristic algorithms. Features of Approximation Algorithm : Here, we will discuss the features of the Approximation Algorithm as follows. An approximation algorithm guarantees to run in polynomial time though it does not guarantee the most effective solution.An approximation algorithm guarantees to seek out high accuracy and top quality solution(say within 1% of optimum)Approximation algorithms are used to get an answer near the (optimal) solution of an optimization problem in polynomial timePerformance Ratios for approximation algorithms :Here, we will discuss the performance ratios of the Approximation Algorithm as follows. Scenario-1 : Suppose that we are working on an optimization problem in which each potential solution has a cost, and we wish to find a near-optimal solution. Depending on the problem, we may define an optimal solution as one with maximum possible cost or one with minimum possible cost,i.e, the problem can either be a maximization or minimization problem.We say that an algorithm for a problem has an appropriate ratio of P(n) if, for any input size n, the cost C of the solution produced by the algorithm is within a factor of P(n) of the cost C* of an optimal solution as follows.max(C/C*,C*/C)<=P(n)Scenario-2 :If an algorithm reaches an approximation ratio of P(n), then we call it a P(n)-approximation algorithm. For a maximization problem, 0< C < C*, and the ratio of C*/C gives the factor by which the cost of an optimal solution is larger than the cost of the approximate algorithm.For a minimization problem, 0< C* < C, and the ratio of C/C* gives the factor by which the cost of an approximate solution is larger than the cost of an optimal solution.Some examples of the Approximation algorithm :Here, we will discuss some examples of the Approximation Algorithm as follows. The Vertex Cover Problem - In the vertex cover problem, the optimization problem is to find the vertex cover with the fewest vertices, and the approximation problem is to find the vertex cover with few vertices. Travelling Salesman Problem -In the traveling salesperson problem, the optimization problem is to find the shortest cycle, and the approximation problem is to find a short cycle. The Set Covering Problem - This is an optimization problem that models many problems that require resources to be allocated. Here, a logarithmic approximation ratio is used. The Subset Sum Problem - In the Subset sum problem, the optimization problem is to find a subset of {x1,×2,×3...xn} whose sum is as large as possible but not larger than the target value t. Comment More infoAdvertise with us Next Article Introduction to Graph Coloring D disha55handa Follow Improve Article Tags : Algorithms GATE CS DSA Practice Tags : Algorithms Similar Reads Graph Theory Tutorial Graph Theory is a branch of mathematics that is concerned with the study of relationships between different objects. A graph is a collection of various vertexes also known as nodes, and these nodes are connected with each other via edges. In this tutorial, we have covered all the topics of Graph The 1 min read Basics of Graph TheoryGraph and its representationsA Graph is a non-linear data structure consisting of vertices and edges. The vertices are sometimes also referred to as nodes and the edges are lines or arcs that connect any two nodes in the graph. More formally a Graph is composed of a set of vertices( V ) and a set of edges( E ). The graph is den 12 min read Mathematics | Graph Theory Basics - Set 1A Graph is just a way to show connections between things. It is set of edges and vertices where each edge is associated with unordered pair of vertices. Graph is a data structure that is defined by two components :Node or Vertex: It is a point or joint between two lines like people, cities, or websi 5 min read Types of Graphs with ExamplesA graph is a mathematical structure that represents relationships between objects by connecting a set of points. It is used to establish a pairwise relationship between elements in a given set. graphs are widely used in discrete mathematics, computer science, and network theory to represent relation 9 min read Walks, Trails, Paths, Cycles and Circuits in GraphWalks, trails, paths, cycles, and circuits in a graph are sequences of vertices and edges with different properties. Some allow repetition of vertices and edges, while others do not. In this article, we will explore these concepts with examples.What is Walk?A walk in a graph is a sequence of vertice 6 min read Graph measurements: length, distance, diameter, eccentricity, radius, centerA graph is defined as a set of points known as 'Vertices' and a line joining these points is known as 'Edges'. It is a set consisting of where 'V' is vertices and 'E' is edge. Vertices: {A, B, C, D, E, F} Edges: {{A, B}, {A, D}, {A, E}, {B, C}, {C, E}, {C, F}, {D, E}, {E, F}} Graph Measurements: The 5 min read Articulation Points (or Cut Vertices) in a GraphGiven an undirected graph with V vertices and E edges (edges[][]), Your task is to return all the articulation points in the graph. If no such point exists, return {-1}.Note: An articulation point is a vertex whose removal, along with all its connected edges, increases the number of connected compon 15+ min read Bridges in a graphGiven an undirected Graph, The task is to find the Bridges in this Graph. An edge in an undirected connected graph is a bridge if removing it disconnects the graph. For a disconnected undirected graph, the definition is similar, a bridge is an edge removal that increases the number of disconnected 15+ min read Mathematics | Independent Sets, Covering and MatchingMathematics | Independent Sets, Covering and Matching1. Independent SetsA set of vertices I is called an independent set if no two vertices in set I are adjacent to each other in other words the set of non-adjacent vertices is called an independent set.It is also called a stable set.The parameter α0 5 min read Dijkstra's Algorithm to find Shortest Paths from a Source to allGiven a weighted undirected graph represented as an edge list and a source vertex src, find the shortest path distances from the source vertex to all other vertices in the graph. The graph contains V vertices, numbered from 0 to V - 1.Note: The given graph does not contain any negative edge. Example 12 min read Depth First Search or DFS for a GraphIn Depth First Search (or DFS) for a graph, we traverse all adjacent vertices one by one. When we traverse an adjacent vertex, we completely finish the traversal of all vertices reachable through that adjacent vertex. This is similar to a tree, where we first completely traverse the left subtree and 13 min read Breadth First Search or BFS for a GraphGiven a undirected graph represented by an adjacency list adj, where each adj[i] represents the list of vertices connected to vertex i. Perform a Breadth First Search (BFS) traversal starting from vertex 0, visiting vertices from left to right according to the adjacency list, and return a list conta 15+ min read TreeIntroduction to Tree Data StructureTree data structure is a hierarchical structure that is used to represent and organize data in the form of parent child relationship. The following are some real world situations which are naturally a tree.Folder structure in an operating system.Tag structure in an HTML (root tag the as html tag) or 15+ min read Primâs Algorithm for Minimum Spanning Tree (MST)Primâs algorithm is a Greedy algorithm like Kruskal's algorithm. This algorithm always starts with a single node and moves through several adjacent nodes, in order to explore all of the connected edges along the way.The algorithm starts with an empty spanning tree. The idea is to maintain two sets o 15+ min read Kruskalâs Minimum Spanning Tree (MST) AlgorithmA minimum spanning tree (MST) or minimum weight spanning tree for a weighted, connected, and undirected graph is a spanning tree (no cycles and connects all vertices) that has minimum weight. The weight of a spanning tree is the sum of all edges in the tree. In Kruskal's algorithm, we sort all edges 9 min read Huffman Coding | Greedy Algo-3Huffman coding is a lossless data compression algorithm. The idea is to assign variable-length codes to input characters, lengths of the assigned codes are based on the frequencies of corresponding characters. The variable-length codes assigned to input characters are Prefix Codes, means the codes ( 12 min read Tree Traversal TechniquesTree Traversal techniques include various ways to visit all the nodes of the tree. Unlike linear data structures (Array, Linked List, Queues, Stacks, etc) which have only one logical way to traverse them, trees can be traversed in different ways. In this article, we will discuss all the tree travers 7 min read Travelling Salesman Problem using Dynamic ProgrammingGiven a 2d matrix cost[][] of size n where cost[i][j] denotes the cost of moving from city i to city j. The task is to complete a tour from city 0 (0-based index) to all other cities such that we visit each city exactly once and then at the end come back to city 0 at minimum cost.Note the difference 15 min read Special GraphCheck whether a given graph is Bipartite or notGiven a graph with V vertices numbered from 0 to V-1 and a list of edges, determine whether the graph is bipartite or not.Note: A bipartite graph is a type of graph where the set of vertices can be divided into two disjoint sets, say U and V, such that every edge connects a vertex in U to a vertex i 8 min read Eulerian GraphsEulerian path and circuit for undirected graphGiven an undirected connected graph with v nodes, and e edges, with adjacency list adj. We need to write a function that returns 2 if the graph contains an eulerian circuit or cycle, else if the graph contains an eulerian path, returns 1, otherwise, returns 0.A graph is said to be Eulerian if it con 9 min read Fleury's Algorithm for printing Eulerian Path or CircuitGiven an undirected connected graph with v nodes, and e edges, with adjacency list adj. The task is to print an Eulerian trail or circuit using Fleury's AlgorithmA graph is said to be Eulerian if it contains an Eulerian Cycle, a cycle that visits every edge exactly once and starts and ends at the sa 12 min read Chinese Postman or Route Inspection | Set 1 (introduction)Chinese Postman Problem is a variation of Eulerian circuit problem for undirected graphs. An Euler Circuit is a closed walk that covers every edge once starting and ending position is same. Chinese Postman problem is defined for connected and undirected graph. The problem is to find shortest path or 3 min read MatchingMatching (Graph Theory)Matching (Graph Theory): In graph theory, matching is a fundamental concept used to describe a set of edges without common vertices. Matchings are used in various applications such as network design, job assignments, and scheduling. Understanding matchings is essential for solving problems involving 4 min read Approximation AlgorithmsOverview :An approximation algorithm is a way of dealing with NP-completeness for an optimization problem. This technique does not guarantee the best solution. The goal of the approximation algorithm is to come as close as possible to the optimal solution in polynomial time. Such algorithms are call 3 min read ColoringIntroduction to Graph ColoringGraph coloring refers to the problem of coloring vertices of a graph in such a way that no two adjacent vertices have the same color. This is also called the vertex coloring problem. If coloring is done using at most m colors, it is called m-coloring. Chromatic Number:The minimum number of colors ne 11 min read Edge Coloring of a GraphIn graph theory, edge coloring of a graph is an assignment of "colors" to the edges of the graph so that no two adjacent edges have the same color with an optimal number of colors. Two edges are said to be adjacent if they are connected to the same vertex. There is no known polynomial time algorithm 9 min read Planar GraphPlanar Graphs and Graph ColoringPlanar graphs and graph coloring are fundamental concepts in graph theory, a branch of mathematics that studies the properties and applications of graphs. A planar graph can be drawn on a plane without any edges crossing.While graph coloring involves assigning colors to vertices such that no two adj 6 min read Directed GraphsDegree Centrality (Centrality Measure)Degree In graph theory, the degree (or valency) of a vertex of a graph is the number of edges incident to the vertex, with loops counted twice.[1] The degree of a vertex v is denoted \deg(v) or \deg v. The maximum degree of a graph G, denoted by \Delta (G), and the minimum degree of a graph, denoted 5 min read Check if a graph is Strongly, Unilaterally or Weakly connectedGiven an unweighted directed graph G as a path matrix, the task is to find out if the graph is Strongly Connected or Unilaterally Connected or Weakly Connected. Strongly Connected: A graph is said to be strongly connected if every pair of vertices(u, v) in the graph contains a path between each othe 12 min read Strongly Connected ComponentsStrongly Connected Components (SCCs) are a fundamental concept in graph theory and algorithms. In a directed graph, a Strongly Connected Component is a subset of vertices where every vertex in the subset is reachable from every other vertex in the same subset by traversing the directed edges. Findin 15+ min read Euler and Hamiltonian PathsEuler and Hamiltonian paths are fundamental concepts in graph theory, a branch of mathematics that studies the properties and applications of graphs. An Euler path visits every edge of a graph exactly once, while a Hamiltonian path visits every vertex exactly once. These paths have significant appli 8 min read Tarjan's Algorithm to find Strongly Connected ComponentsA directed graph is strongly connected if there is a path between all pairs of vertices. A strongly connected component (SCC) of a directed graph is a maximal strongly connected subgraph. For example, there are 3 SCCs in the following graph: We have discussed Kosaraju's algorithm for strongly connec 15+ min read Handshaking Lemma and Interesting Tree PropertiesIntroduction Trees are an important concept in graph theory, and understanding their properties is crucial in solving many graph-related problems. In this article, we will explore two important properties of trees - the Handshaking Lemma and interesting tree properties. What is Handshaking Lemma? Ha 5 min read Group TheoryGroup in Maths: Group TheoryGroup theory is one of the most important branches of abstract algebra which is concerned with the concept of the group. A group consists of a set equipped with a binary operation that satisfies four key properties: specifically, it includes property of closure, associativity, the existence of an id 13 min read Homomorphism & Isomorphism of GroupWe can say that  "o" is the binary operation on set G if: G is a non-empty set & G * G = { (a,b) : a , bâ G } and o : G * G --> G. Here, aob denotes the image of ordered pair (a,b) under the function/operation o.Example - "+" is called a binary operation on G (any non-empty set ) if & onl 7 min read Group Isomorphisms and AutomorphismsIn the study of algebraic structures, group isomorphisms and automorphisms play a fundamental role. By defining internal symmetries inside a group (automorphisms) and when two groups have the same structure (isomorphisms), these ideas aid in our understanding of the structure and symmetry of groups. 7 min read Mathematics | Rings, Integral domains and FieldsPrerequisite - Mathematics | Algebraic Structure Ring - Let addition (+) and Multiplication (.) be two binary operations defined on a non empty set R. Then R is said to form a ring w.r.t addition (+) and multiplication (.) if the following conditions are satisfied: (R, +) is an abelian group ( i.e c 7 min read Like