Introduction to Combinatorial Algorithms

Similar documents
Graphs: Introduction. Ali Shokoufandeh, Department of Computer Science, Drexel University

Unit 8: Coping with NP-Completeness. Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems. Y.-W.

Dynamic programming. Trivial problems are solved first More complex solutions are composed from the simpler solutions already computed

Best known solution time is Ω(V!) Check every permutation of vertices to see if there is a graph edge between adjacent vertices

Introduction to Graph Theory

Theorem 2.9: nearest addition algorithm

Notes for Lecture 24

The Algorithm Design Manual

CSCE 350: Chin-Tser Huang. University of South Carolina

PROBLEM SOLVING AND SEARCH IN ARTIFICIAL INTELLIGENCE

Machine Learning for Software Engineering

CSE 417 Branch & Bound (pt 4) Branch & Bound

Graph Theory. Connectivity, Coloring, Matching. Arjun Suresh 1. 1 GATE Overflow

Exact Algorithms for NP-hard problems

COMP 355 Advanced Algorithms Approximation Algorithms: VC and TSP Chapter 11 (KT) Section (CLRS)

The Maximum Clique Problem

CMSC 451: Lecture 22 Approximation Algorithms: Vertex Cover and TSP Tuesday, Dec 5, 2017

Introduction to Algorithms: Brute-Force Algorithms

Parallel Computing in Combinatorial Optimization

Lecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29

Seach algorithms The travelling salesman problem The Towers of Hanoi Playing games. Comp24412: Symbolic AI. Lecture 4: Search. Ian Pratt-Hartmann

Heuristic Optimisation

ACO and other (meta)heuristics for CO

Combinatorial Optimization and Integer Linear Programming

Computational problems. Lecture 2: Combinatorial search and optimisation problems. Computational problems. Examples. Example

Domination, Independence and Other Numbers Associated With the Intersection Graph of a Set of Half-planes

Computational Discrete Mathematics

Graph Theory. Probabilistic Graphical Models. L. Enrique Sucar, INAOE. Definitions. Types of Graphs. Trajectories and Circuits.

CSCE 321/3201 Analysis and Design of Algorithms. Prof. Amr Goneid. Fall 2016

Brute Force: Selection Sort

Combinatorial Optimization

Constraint Satisfaction Problems

COMP Analysis of Algorithms & Data Structures

Introduction to Optimization

Approximation Algorithms

Stanford University CS261: Optimization Handout 1 Luca Trevisan January 4, 2011

Notation Index. Probability notation. (there exists) (such that) Fn-4 B n (Bell numbers) CL-27 s t (equivalence relation) GT-5.

Let G = (V, E) be a graph. If u, v V, then u is adjacent to v if {u, v} E. We also use the notation u v to denote that u is adjacent to v.

val(y, I) α (9.0.2) α (9.0.3)

5 (Monday, 08/14/2017)

Outline of the talk. Local search meta-heuristics for combinatorial problems. Constraint Satisfaction Problems. The n-queens problem

Steiner Tree. Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

P and NP CISC4080, Computer Algorithms CIS, Fordham Univ. Instructor: X. Zhang

Extremal Graph Theory: Turán s Theorem

Lecture 5: Exact inference

Fall CS598CC: Approximation Algorithms. Chandra Chekuri

Research Incubator: Combinatorial Optimization. Dr. Lixin Tao December 9, 2003

Examples of P vs NP: More Problems

Lecture 5: Exact inference. Queries. Complexity of inference. Queries (continued) Bayesian networks can answer questions about the underlying

APPROXIMATION ALGORITHMS FOR GEOMETRIC PROBLEMS

Partha Sarathi Mandal

Maximum Clique Conformance Measure for Graph Coloring Algorithms

Coping with the Limitations of Algorithm Power Exact Solution Strategies Backtracking Backtracking : A Scenario

NP-complete Reductions

Complexity Results on Graphs with Few Cliques

P and NP CISC5835, Algorithms for Big Data CIS, Fordham Univ. Instructor: X. Zhang

Pre-requisite Material for Course Heuristics and Approximation Algorithms

Trees. 3. (Minimally Connected) G is connected and deleting any of its edges gives rise to a disconnected graph.

of optimization problems. In this chapter, it is explained that what network design

Module 6 P, NP, NP-Complete Problems and Approximation Algorithms

Introduction to Algorithms. Lecture 24. Prof. Patrick Jaillet

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.

CS 440 Theory of Algorithms /

Decision Problems. Observation: Many polynomial algorithms. Questions: Can we solve all problems in polynomial time? Answer: No, absolutely not.

Module 6 NP-Complete Problems and Heuristics

Network models and graph theory

Practice Final Exam 1

3 No-Wait Job Shops with Variable Processing Times

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Algorithms For Inference Fall 2014

PROBLEM SOLVING AND SEARCH IN ARTIFICIAL INTELLIGENCE

P = NP; P NP. Intuition of the reduction idea:

Graph Theory: Introduction

Introduction III. Graphs. Motivations I. Introduction IV

Algorithm Design Methods. Some Methods Not Covered

University of Waterloo Department of Electrical and Computer Engineering ECE 457A: Cooperative and Adaptive Algorithms Midterm Examination

Embedded Subgraph Isomorphism and Related Problems

Pattern Recognition Using Graph Theory

ECS 20 Lecture 17b = Discussion D8 Fall Nov 2013 Phil Rogaway

Graph Theory S 1 I 2 I 1 S 2 I 1 I 2

Endomorphisms and synchronization, 2: Graphs and transformation monoids. Peter J. Cameron

Graphs and trees come up everywhere. We can view the internet as a graph (in many ways) Web search views web pages as a graph

Algorithmic problem-solving: Lecture 2. Algorithmic problem-solving: Tractable vs Intractable problems. Based on Part V of the course textbook.

Geometric Steiner Trees

Endomorphisms and synchronization, 2: Graphs and transformation monoids

Notation Index 9 (there exists) Fn-4 8 (for all) Fn-4 3 (such that) Fn-4 B n (Bell numbers) CL-25 s ο t (equivalence relation) GT-4 n k (binomial coef

Optimal tour along pubs in the UK

CAD of VLSI Systems. d Virendra Singh Indian Institute of Science Bangalore E0-285: CAD of VLSI Systems

Fuzzy Inspired Hybrid Genetic Approach to Optimize Travelling Salesman Problem

Topics for today. Basics of combinatorial counting Applications to running time analysis

Combinatorial Search; Monte Carlo Methods

Foundations of Computing

CS270 Combinatorial Algorithms & Data Structures Spring Lecture 19:

Massively Parallel Approximation Algorithms for the Traveling Salesman Problem

Constraint Satisfaction Problems

NP-Complete Problems

MITOCW watch?v=zm5mw5nkzjg

Introduction to Algorithms

56:272 Integer Programming & Network Flows Final Exam -- December 16, 1997

Module 6 NP-Complete Problems and Heuristics

Module 2: NETWORKS AND DECISION MATHEMATICS

Transcription:

Fall 2009

Intro Introduction to the course What are : Combinatorial Structures? Combinatorial Algorithms? Combinatorial Problems?

Combinatorial Structures Combinatorial Structures Combinatorial structures are collections of k-subsets/k-tuple/permutations from a parent set (finite). Undirected Graphs: Collections of 2-subsets (edges) of a parent set (vertices). V = {1, 2, 3, 4} E = {{1, 2}, {1, 3}, {1, 4}, {3, 4}} Directed Graphs: Collections of 2-tuples (directed edges) of a parent set (vertices). V = {1, 2, 3, 4} E = {(2, 1), (3, 1), (1, 4), (3, 4)} Hypergraphs or Set Systems: Similar to graphs, but hyper-edges are sets with possibly more than two elements. V = {1, 2, 3, 4} E = {{1, 3}, {1, 2, 4}, {3, 4}}

Combinatorial Structures Building blocks: finite sets, finite lists (tuples) Finite Set X = {1, 2, 3, 5} undordered structure, no repeats {1, 2, 3, 5} = {2, 1, 5, 3} = {2, 1, 1, 5, 3} cardinality (size) = number of elements X = 4. A k-subset of a finite set X is a set S X, S = k. For example: {1, 2} is a 2-subset of X. Finite List (or Tuple) L = [1, 5, 2, 1, 3] ordered structure, repeats allowed [1, 5, 2, 1, 3] [1, 1, 2, 3, 5] [1, 2, 3, 5] length = number of items, length of L is 5. An n-tuple is a list of length n. A permutation of an n-set X is a list of length n such that every element of X occurs exactly once.

Combinatorial Structures Graphs Definition A graph is a pair (V, E) where: V is a finite set (of vertices). E is a finite set of 2-subsets (called edges) of V. G 1 = (V, E) V = {0, 1, 2, 3, 4, 5, 6, 7} E = {{0, 4}, {0, 1}, {0, 2}, {2, 3}, {2, 6}, {1, 3}, {1, 5}, {3, 7}, {4, 5}, {4, 6}, {4, 7}, {5, 6}, {5, 7}, {6, 7}} 0 2 4 6 5 7 1 3

Combinatorial Structures Complete graphs are graphs with all possible edges. K 1 K 2 K 3 K 4

Combinatorial Structures Substructures of a graph: hamiltonian cycle Definition A hamiltonian cycle is a closed path that passes through each vertex once. The list [0, 1, 5, 4, 6, 7, 3, 2] describes a hamiltonian cycle in the graph: (Note that different lists may describe the same cycle.) 0 2 4 6 5 7 1 3 Problem (Traveling Salesman Problem) Given a weight/cost function w : E R on the edges of G, find a smallest weight hamiltonian cycle in G.

Combinatorial Structures Substructures of a graph: cliques Definition A clique in a graph G = (V, E) is a subset C V such that {x, y} E, for all x, y C with x y. (Or equivalently: the subgraph induced by C is complete). 1 2 3 4 5 6 Some cliques: {1, 2, 3}, {2, 4, 5}, {4, 6}, {1}, Maximum cliques (largest): {1, 2, 3, 4}, {3, 4, 5, 6}, {2, 3, 4, 5}

Combinatorial Structures Famous problems involving cliques Problem (Maximum clique problem) Find a clique of maximum cardinality in a graph. Problem (All cliques problem) Find all cliques in a graph without repetition.

Combinatorial Structures Set systems/hypergraphs Definition A set system (or hypergraph) is a pair (X, B) where: X is a finite set (of points/vertices). B is a finite set of subsets of X (blocks/hyperedges).

Combinatorial Structures Set systems/hypergraphs Definition A set system (or hypergraph) is a pair (X, B) where: X is a finite set (of points/vertices). B is a finite set of subsets of X (blocks/hyperedges). Graph: A graph is a set system with every block with cardinality 2.

Combinatorial Structures Set systems/hypergraphs Definition A set system (or hypergraph) is a pair (X, B) where: X is a finite set (of points/vertices). B is a finite set of subsets of X (blocks/hyperedges). Graph: A graph is a set system with every block with cardinality 2. Partition of a finite set: A partition is a set system (X, B) such that B 1 B 2 = for all B 1, B 2 B, B 1 B 2, and B B B = X.

Combinatorial Structures Set systems/hypergraphs Definition A set system (or hypergraph) is a pair (X, B) where: X is a finite set (of points/vertices). B is a finite set of subsets of X (blocks/hyperedges). Graph: A graph is a set system with every block with cardinality 2. Partition of a finite set: A partition is a set system (X, B) such that B 1 B 2 = for all B 1, B 2 B, B 1 B 2, and B B B = X. Steiner triple system (a type of combinatorial designs): B is a set of 3-subsets of X such that for each x, y X, x y, there exists eactly one block B B with {x, y} B. X = {0, 1, 2, 3, 4, 5, 6} B = {{0, 1, 2}, {0, 3, 4}, {0, 5, 6}, {1, 3, 5}, {1, 4, 6}, {2, 3, 6}, {2, 4, 5}}

Combinatorial Algorithms Combinatorial algorithms Combinatorial algorithms are algorithms for investigating combinatorial structures. Generation Construct all combinatorial structures of a particular type. Enumeration Compute the number of all different structures of a particular type. Search Find at least one example of a combinatorial structures of a particular type (if one exists). Optimization problems can be seen as a type of search problem.

Combinatorial Algorithms Generation Construct all combinatorial structures of a particular type. Generate all subsets/permutations/partitions of a set. Generate all cliques of a graph. Generate all maximum cliques of a graph. Generate all Steiner triple systems of a finite set.

Combinatorial Algorithms Generation Construct all combinatorial structures of a particular type. Generate all subsets/permutations/partitions of a set. Generate all cliques of a graph. Generate all maximum cliques of a graph. Generate all Steiner triple systems of a finite set. Enumeration Compute the number of all different structures of a particular type. Compute the number of subsets/permutat./partitions of a set. Compute the number of cliques of a graph. Compute the number of maximum cliques of a graph. Compute the number of Steiner triple systems of a finite set.

Combinatorial Algorithms Search Find at least one example of a combinatorial structures of a particular type (if one exists). Optimization problems can be seen as a type of search problem. Find a Steiner triple system on a finite set. (feasibility) Find a maximum clique of a graph. (optimization) Find a hamiltonian cycle in a graph. (feasibility) Find a smallest weight hamiltonian cycle in a graph. (optimization)

Combinatorial Algorithms Hardness of Search and Optimization Many search and optimization problems are NP-hard or their corresponding decision problems are NP-complete.

Combinatorial Algorithms Hardness of Search and Optimization Many search and optimization problems are NP-hard or their corresponding decision problems are NP-complete. P = class of decision problems that can be solved in polynomial time. (e.g. Shortest path in a graph is in P) NP = class of decision problems that can be verified in polynomial time. (e.g. Hamiltonian path in a graph is in NP) Therefore, P NP. NP-complete are problems in NP that are at least as hard as any other problem in NP.

Combinatorial Algorithms Hardness of Search and Optimization Many search and optimization problems are NP-hard or their corresponding decision problems are NP-complete. P = class of decision problems that can be solved in polynomial time. (e.g. Shortest path in a graph is in P) NP = class of decision problems that can be verified in polynomial time. (e.g. Hamiltonian path in a graph is in NP) Therefore, P NP. NP-complete are problems in NP that are at least as hard as any other problem in NP. An important unsolved complexity question is the P=NP question. One million dollars offered for its solution!

Combinatorial Algorithms Hardness of Search and Optimization Many search and optimization problems are NP-hard or their corresponding decision problems are NP-complete. P = class of decision problems that can be solved in polynomial time. (e.g. Shortest path in a graph is in P) NP = class of decision problems that can be verified in polynomial time. (e.g. Hamiltonian path in a graph is in NP) Therefore, P NP. NP-complete are problems in NP that are at least as hard as any other problem in NP. An important unsolved complexity question is the P=NP question. One million dollars offered for its solution! It is believed that P NP which, if true, would mean that there exist no polynomial-time algorithm to solve an NP-hard problem.

Combinatorial Algorithms Hardness of Search and Optimization Many search and optimization problems are NP-hard or their corresponding decision problems are NP-complete. P = class of decision problems that can be solved in polynomial time. (e.g. Shortest path in a graph is in P) NP = class of decision problems that can be verified in polynomial time. (e.g. Hamiltonian path in a graph is in NP) Therefore, P NP. NP-complete are problems in NP that are at least as hard as any other problem in NP. An important unsolved complexity question is the P=NP question. One million dollars offered for its solution! It is believed that P NP which, if true, would mean that there exist no polynomial-time algorithm to solve an NP-hard problem. There are several approaches to deal with NP-hard problems.

Combinatorial Algorithms Approaches for dealing with NP-hard problems Exhaustive Search exponential-time algorithms. solves the problem exactly (Backtracking and Branch-and-Bound) Heuristic Search algorithms that explore a search space to find a feasible solution that is hopefully close to optimal, within a time limit approximates a solution to the problem (Hill-climbing, Simulated annealing, Tabu-Search, Genetic Algor s) Approximation Algorithms polynomial time algorithm we have a provable guarantee that the solution found is close to optimal. (not covered in this course)

Combinatorial Algorithms Types of Search Problems 1) Decision Problem: 2) Search Problem A yes/no problem Find the guy. Problem 1: Clique (decision) Problem 2: Clique (search) Instance: graph G = (V, E), Instance: graph G = (V, E), target size k target size k Question: Find: Does there exist a clique C a clique C of G of G with C = k? with C = k, if one exists. 3) Optimal Value: 4) Optimization: Find the largest target size. Find an optimal guy. Problem 3: Clique (optimal value) Problem 4: Clique (optimization) Instance: graph G = (V, E), Instance: graph G = (V, E), Find: Find: the maximum value of C, a clique C such that where C is a clique C is maximize (max. clique)

Course Outline Topics for the Course Kreher&Stinson, Combinatorial Algorithms: generation, enumeration and search

Course Outline Topics for the Course Kreher&Stinson, Combinatorial Algorithms: generation, enumeration and search 1 Generating elementary combinatorial objects [text Chap2] Sequential generation (successor), rank, unrank. Algorithms for subsets, k-subsets, permutations.

Course Outline Topics for the Course Kreher&Stinson, Combinatorial Algorithms: generation, enumeration and search 1 Generating elementary combinatorial objects [text Chap2] Sequential generation (successor), rank, unrank. Algorithms for subsets, k-subsets, permutations. 2 Exhaustive Generation and Exhaustive Search [text Chap4] Backtracking algorithms (exhaustive generation, exhaustive search, optimization) Branch-and-bound (exhaustive search, optimization)

Course Outline Topics for the Course Kreher&Stinson, Combinatorial Algorithms: generation, enumeration and search 1 Generating elementary combinatorial objects [text Chap2] Sequential generation (successor), rank, unrank. Algorithms for subsets, k-subsets, permutations. 2 Exhaustive Generation and Exhaustive Search [text Chap4] Backtracking algorithms (exhaustive generation, exhaustive search, optimization) Branch-and-bound (exhaustive search, optimization) 3 Heuristic Search [text Chap 5] Hill-climbing, Simulated annealing, Tabu-Search, Genetic Algs.

Course Outline Topics for the Course Kreher&Stinson, Combinatorial Algorithms: generation, enumeration and search 1 Generating elementary combinatorial objects [text Chap2] Sequential generation (successor), rank, unrank. Algorithms for subsets, k-subsets, permutations. 2 Exhaustive Generation and Exhaustive Search [text Chap4] Backtracking algorithms (exhaustive generation, exhaustive search, optimization) Branch-and-bound (exhaustive search, optimization) 3 Heuristic Search [text Chap 5] Hill-climbing, Simulated annealing, Tabu-Search, Genetic Algs. 4 Computing Isomorphism and Isomorph-free Exhaustive Generation [text Chap 7 + Kaski&Ostergard s book Chap 3,4] Graph isomorphism, isomorphism of other structures. Computing invariants. Computing certificates. Isomorph-free exhaustive generation.

Course Outline Course evaluation 45% Assignments 3 assignments, 15% each covering: theory, algorithms, implementation 55% Project: individual, chosen by student 5% Project proposal (up to 1 page) 40% Project paper (10-15 page) 10% Project presentation (15-20 minute talk) research (reading papers related to course topics), original work (involving one or more of: modelling, application, algorithm design, implementation, experimentation, analysis)