CAS 721 Course Project Implementing Branch and Bound, and Tabu search for combinatorial computing problem By Ho Fai Ko (9700749)

Slides:



Advertisements
Similar presentations
G5BAIM Artificial Intelligence Methods
Advertisements

Problem Solving by Searching Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 3 Spring 2007.
EE 553 Integer Programming
Problem Solving Agents A problem solving agent is one which decides what actions and states to consider in completing a goal Examples: Finding the shortest.
Solving Problems by Searching Currently at Chapter 3 in the book Will finish today/Monday, Chapter 4 next.
Branch & Bound Algorithms
Search in AI.
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Problem Solving by Searching Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 3 Spring 2004.
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
1 Introduction to Linear and Integer Programming Lecture 9: Feb 14.
MAE 552 – Heuristic Optimization Lecture 27 April 3, 2002
Ryan Kinworthy 2/26/20031 Chapter 7- Local Search part 1 Ryan Kinworthy CSCE Advanced Constraint Processing.
MAE 552 – Heuristic Optimization Lecture 6 February 6, 2002.
Reporter : Mac Date : Multi-Start Method Rafael Marti.
Intelligent Agents What is the basic framework we use to construct intelligent programs?
1 Chapter 5 Advanced Search. 2 l
A General approach to MPLS Path Protection using Segments Ashish Gupta Ashish Gupta.
MAE 552 – Heuristic Optimization Lecture 26 April 1, 2002 Topic:Branch and Bound.
MAE 552 – Heuristic Optimization
Artificial Intelligence Genetic Algorithms and Applications of Genetic Algorithms in Compilers Prasad A. Kulkarni.
Review Best-first search uses an evaluation function f(n) to select the next node for expansion. Greedy best-first search uses f(n) = h(n). Greedy best.
A TABU SEARCH APPROACH TO POLYGONAL APPROXIMATION OF DIGITAL CURVES.
Stochastic greedy local search Chapter 7 ICS-275 Spring 2007.
A General approach to MPLS Path Protection using Segments Ashish Gupta Ashish Gupta.
Backtracking.
A Tabu Search algorithm for the optimisation of telecommunication networks 蔣雅慈.
Copyright R. Weber Search in Problem Solving Search in Problem Solving INFO 629 Dr. R. Weber.
Busby, Dodge, Fleming, and Negrusa. Backtracking Algorithm Is used to solve problems for which a sequence of objects is to be selected from a set such.
Finding Optimum Clock Frequencies for Aperiodic Test Master’s Thesis Defense Sindhu Gunasekar Dept. of ECE, Auburn University Advisory Committee: Dr. Vishwani.
 1  Outline  stages and topics in simulation  generation of random variates.
1 Pattern Recognition: Statistical and Neural Lonnie C. Ludeman Lecture 23 Nov 2, 2005 Nanjing University of Science & Technology.
June 21, 2007 Minimum Interference Channel Assignment in Multi-Radio Wireless Mesh Networks Anand Prabhu Subramanian, Himanshu Gupta.
Local Search Algorithms This lecture topic Chapter Next lecture topic Chapter 5 (Please read lecture topic material before and after each lecture.
Boltzmann Machine (BM) (§6.4) Hopfield model + hidden nodes + simulated annealing BM Architecture –a set of visible nodes: nodes can be accessed from outside.
Optimization Problems - Optimization: In the real world, there are many problems (e.g. Traveling Salesman Problem, Playing Chess ) that have numerous possible.
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
Exact methods for ALB ALB problem can be considered as a shortest path problem The complete graph need not be developed since one can stop as soon as in.
Heuristic Optimization Methods Tabu Search: Advanced Topics.
Hande ÇAKIN IES 503 TERM PROJECT CONSTRAINT SATISFACTION PROBLEMS.
FORS 8450 Advanced Forest Planning Lecture 11 Tabu Search.
Exact and heuristics algorithms
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Lecture 3: Uninformed Search
FORS 8450 Advanced Forest Planning Lecture 5 Relatively Straightforward Stochastic Approach.
G5BAIM Artificial Intelligence Methods
Single-solution based metaheuristics. Outline Local Search Simulated annealing Tabu search …
CAS 721 Course Project Minimum Weighted Clique Cover of Test Set By Wei He ( )
Algorithm Design Methods (II) Fall 2003 CSE, POSTECH.
Reactive Tabu Search Contents A brief review of search techniques
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
Problem Reduction So far we have considered search strategies for OR graph. In OR graph, several arcs indicate a variety of ways in which the original.
Optimization Problems
Ricochet Robots Mitch Powell Daniel Tilgner. Abstract Ricochet robots is a board game created in Germany in A player is given 30 seconds to find.
Multi-objective Topology Synthesis and FPGA Prototyping Framework of Application Specific Network-on-Chip m Akram Ben Ahmed Xinyu LI, Omar Hammami.
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
CS 721 Project Implementation of Hypergraph Edge Covering Algorithms By David Leung ( )
Optimization Problems
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Tabu Search Review: Branch and bound has a “rigid” memory structure (i.e. all branches are completed or fathomed). Simulated Annealing has no memory structure.
Problem Solving by Searching
Analysis and design of algorithm
Study Guide for ES205 Yu-Chi Ho Jonathan T. Lee Nov. 7, 2000
Optimization Problems
Algorithms for Budget-Constrained Survivable Topology Design
Artificial Intelligence
Automatic Test Pattern Generation
Boltzmann Machine (BM) (§6.4)
Local Search Algorithms
Presentation transcript:

CAS 721 Course Project Implementing Branch and Bound, and Tabu search for combinatorial computing problem By Ho Fai Ko ( )

Overview Background of problem Background of problem Background of algorithms Background of algorithms Branch and Bound Branch and Bound Tabu Search Tabu Search Implementation detail Implementation detail Analysis of algorithm Analysis of algorithm

Chip Realization Process Requirements Specification Design Implementation Chip Fabrication Good chips Source: Essentials of Electronic Testing, Kluwer 2000 Audit Design verification Manufacturing test

Manufacturing Test Identify faulty chips before shipping them to customers Identify faulty chips before shipping them to customers During volume production phase for mature process technologies During volume production phase for mature process technologies Improve yield through fault diagnosis Improve yield through fault diagnosis During yield ramp phase for new process technologies During yield ramp phase for new process technologies * Technology yield learning rates * Source Intel corporation Defect density

Introduction of SOC System-on-a-chip (SOC) integrates multiple functional components (cores) on a single silicon die System-on-a-chip (SOC) integrates multiple functional components (cores) on a single silicon die Sample SOC* Sample SOC* 8 million-gate design 8 million-gate design 2 ARM processors and 8 ADSL cores 2 ARM processors and 8 ADSL cores Compared to board-level system, SOCs are: Compared to board-level system, SOCs are: Smaller and faster Smaller and faster More reliable, lower power and cost More reliable, lower power and cost Facing more challenges for test Facing more challenges for test *Source: A DFT and Test Generation Methodology for a Large SoC Design , SNUG Europe 2001

Testing cores in SOCs To test a core in a SOC To test a core in a SOC Test patterns are applied to the circuit-under-test (CUT) Test patterns are applied to the circuit-under-test (CUT) Test responses from the CUT are obtained for failure analysis Test responses from the CUT are obtained for failure analysis Questions to be answered: Questions to be answered: How to apply test patterns to CUT? How to apply test patterns to CUT? How to obtain test responses from CUT? How to obtain test responses from CUT? Problems: Problems: Limited number of primary inputs and outputs on chips Limited number of primary inputs and outputs on chips Solution: Solution: Using test access mechanism (TAM) to transport test data Using test access mechanism (TAM) to transport test data

Background of problem

Problem formulation Given m TAM lines Given m TAM lines Given n cores in a SOC Given n cores in a SOC Given connectivity matrix C, such that Given connectivity matrix C, such that C[i][j] = 1 if TAM (i) can cover core (j) C[i][j] = 1 if TAM (i) can cover core (j) Find the assignment for each TAM line to cover all the cores in the SOC such that Find the assignment for each TAM line to cover all the cores in the SOC such that Number of TAM lines needed is sufficiently small Number of TAM lines needed is sufficiently small Objective function: min sum c[i][j] for all i and j Objective function: min sum c[i][j] for all i and j Subject to: Subject to: c[i][j] <= C[i][j] c[i][j] <= C[i][j] Sum[i=1..m] c[i][j] >= 1 Sum[i=1..m] c[i][j] >= 1 c[i][j] = 0 or 1 c[i][j] = 0 or 1

Branch and Bound (BB) A general exhaustive search algorithm A general exhaustive search algorithm Can be implemented as a backtracking algorithm Can be implemented as a backtracking algorithm Depth-first search approach Depth-first search approach Can be implemented using a priority queue Can be implemented using a priority queue Breadth-first search approach Breadth-first search approach Terminate when lower bound of solution is found, or when all possible solution are checked Terminate when lower bound of solution is found, or when all possible solution are checked Can speed up algorithm by carefully choosing the branch condition Can speed up algorithm by carefully choosing the branch condition

Tabu search (TS) Originally developed by Glover in 1986 Originally developed by Glover in 1986 History-based heuristic search technique History-based heuristic search technique Prohibits (Tabu) the reversal of previous moves Prohibits (Tabu) the reversal of previous moves Encourage exploration of parts of the solution space that have not been visited previously Encourage exploration of parts of the solution space that have not been visited previously Speed and quality of solution depends on: Speed and quality of solution depends on: Choice of initial solution Choice of initial solution The size, variability, and adaptability of the Tabu memory The size, variability, and adaptability of the Tabu memory How it works: How it works: Begins by marching to a local optimum Begins by marching to a local optimum Since recent moved are tabu, it is forced to search in new solution space Since recent moved are tabu, it is forced to search in new solution space Do not guarantee to reach the optimal solution Do not guarantee to reach the optimal solution

Why choose Tabu search? Other heuristics take advantage on exploring the relationships between decisions Other heuristics take advantage on exploring the relationships between decisions Simulated Annealing Simulated Annealing Genetic Algorithm Genetic Algorithm Decision on a variable c[i][j] = 0 or 1 does not depends on the decisions for other variables Decision on a variable c[i][j] = 0 or 1 does not depends on the decisions for other variables The only concern for this problem is to not go backward so often when searching in solution space The only concern for this problem is to not go backward so often when searching in solution space Thus, by changing the Tabu length, the search direction from Tabu search can be better directed Thus, by changing the Tabu length, the search direction from Tabu search can be better directed

Implementation – Data structure Double link list Double link list Store location of 1’s in the sparse matrix Store location of 1’s in the sparse matrix Double link to speed up search process Double link to speed up search process Priority queue Priority queue Simple PUSH and POP operation to the queue Simple PUSH and POP operation to the queue For branch and bound For branch and bound Breadth-first-search technique Breadth-first-search technique For Tabu search For Tabu search Act as a FIFO queue with variable length Act as a FIFO queue with variable length

Implementation – Problem Randomly generate a problem Randomly generate a problem Parameters Parameters m: Number of TAM lines available m: Number of TAM lines available n: Number of Cores to be covered in a SOC n: Number of Cores to be covered in a SOC K: A TAM line has to cover at least K cores K: A TAM line has to cover at least K cores The smaller K is, the less likely to find a solution The smaller K is, the less likely to find a solution K <= n K <= n To ensure randomness of the problem To ensure randomness of the problem If use a single random number generator, the problem is skewed If use a single random number generator, the problem is skewed Use multiple generators to generate problem iteratively Use multiple generators to generate problem iteratively

Implementation - Problem Example: n = 10, and K = 5 Example: n = 10, and K = 5 Single generator Single generator Choose random number R between K and n Choose random number R between K and n How to randomly distribute the R 1’s in n column? How to randomly distribute the R 1’s in n column? Multiple generators Multiple generators Random select a sample size 1 <= S <= n for 1 iteration Random select a sample size 1 <= S <= n for 1 iteration Randomly decide if a 1 is assigned to a column Randomly decide if a 1 is assigned to a column If total 1’s are not enough (i.e. < K), repeat If total 1’s are not enough (i.e. < K), repeat Iteration | Sample size | Selected size | |C| Iteration | Sample size | Selected size | |C| 1 | 4 | 3 | 3 1 | 4 | 3 | 3 2 | 2 | 1 | 4 2 | 2 | 1 | 4 3 | 6 | 4 | 8 3 | 6 | 4 | 8

Implementation – BB Use priority queue and breadth first search technique for branch and bound Use priority queue and breadth first search technique for branch and bound The lower bound: The lower bound: The value of objective function has to be >= n The value of objective function has to be >= n If the constraint is satisfied: If the constraint is satisfied: Sum[i=1..m] c[i][j] >= 1 for all j Sum[i=1..m] c[i][j] >= 1 for all j Solution is found Solution is found The branching condition: The branching condition: The constraint to the problem: The constraint to the problem: c[i][j] <= C[i][j] c[i][j] <= C[i][j] If constraint is violated, it is a dead end If constraint is violated, it is a dead end If the cost of unfinished solution + number of cores that yet to be covered is already higher than the best one found so far, declare it as dead end If the cost of unfinished solution + number of cores that yet to be covered is already higher than the best one found so far, declare it as dead end

Implementation - TS Use a FIFO queue with length specified as Tabu list Use a FIFO queue with length specified as Tabu list Start by trying to find an initial solution that satisfies all constraints without worrying about optimality Start by trying to find an initial solution that satisfies all constraints without worrying about optimality Length of Tabu list is changed every 20 iteration Length of Tabu list is changed every 20 iteration To helps exploring new solution space To helps exploring new solution space For each iteration: For each iteration: Find the column with most 1’s to change Find the column with most 1’s to change Check changes for each element in the column for constraint violation Check changes for each element in the column for constraint violation If not violated, check if solution is better If not violated, check if solution is better If is better, keep the current best solution, and Tabu the move to avoid reversal moves If is better, keep the current best solution, and Tabu the move to avoid reversal moves

Program output

Analysis The size of solution space is 2^(mn) The size of solution space is 2^(mn) Even with really good branching condition Even with really good branching condition The size of solution space is 2^(Kn) The size of solution space is 2^(Kn) Still really large Still really large Thus, execution time increases exponentially Thus, execution time increases exponentially For Branch and bound For Branch and bound Impossible to perform exhaustive search Impossible to perform exhaustive search For Tabu search For Tabu search Fast Fast Does not know optimal solution is reached unless it reaches the lower bound of the solution space Does not know optimal solution is reached unless it reaches the lower bound of the solution space Does not guarantee the optimality of solution Does not guarantee the optimality of solution

Summary Implemented two algorithms for a combinatorial computing problem Implemented two algorithms for a combinatorial computing problem Branch and Bound Branch and Bound Exhaustive search Exhaustive search Execution time grows exponentially Execution time grows exponentially Tabu search Tabu search Fast Fast Does not guarantee to reach optimality Does not guarantee to reach optimality