Maximum Density Still Life
|
|
- Gwen Tate
- 5 years ago
- Views:
Transcription
1 The Hebrew University of Jerusalem Computer Science department Maximum Density Still Life Project in course AI Mohammad Moamen
2 Table of Contents Problem description:... 3 Description:... 3 Objective Target:... 4 Examples of optimal solutions:... 4 Algorithms:... 5 Introduction & Problem Representation: Naïve Algorithm: Improved Naïve Algorithm: Weighted Approach Algorithm: Randomization Algorithm: Genetic Algorithm: Linear/Integer Programming Algorithm: Summary Naïve Algorithm: Improved Naïve Algorithm: Weighted Approach Algorithm: Randomization Algorithm: Genetic Algorithm: Linear/Integer Programming Algorithm: Appendix: Matrix validity checker: The Naïve way algorithm: Improved Naïve: Weighted Approach algorithm: Randomization Algorithm: Genetic Algorithms: Linear/Integer Programming Algorithm:... 25
3 Problem description: Description: This problem arises from the Game of Life, invented by John Horton Conway in the 1960s and popularized by Martin Gardner in his Scientific American columns. Game of Life is played on a squared board, considered to extend to infinity in all directions. Each square of the board is a cell, which at any time during the game is either alive or dead. A cell has eight neighbors: The configuration of live and dead cells at time t leads to a new configuration at time t+1 according to the rules of the game: if a cell has exactly three living neighbors at time t, it is alive at time t+1 if a cell has exactly two living neighbors at time t it is in the same state at time t+1 as it was at time t otherwise, the cell is dead at time t+1 A stable pattern, or still-life, is not changed by these rules. Hence, every cell that has exactly three live neighbors is alive, and every cell that has fewer than two or more than three live neighbors is dead. (An empty board is a still-life, for instance.)
4 Objective Target: What is the densest possible still-life pattern, i.e. the pattern with the largest number of live cells that can be fitted into an n x n section of the board, with all the rest of the board dead? Examples of optimal solutions: Maximum density still life board for 3x3 game board: Maximum density still life board for 8x8 game board:
5 Algorithms: Introduction & Problem Representation: The problem is represented for the algorithms as a two dimensional array that contains 0,1 where 0 represents a dead cell and 1 represents a live cell, and at the end of the algorithm execution all the remaining 1 s represent the immortal cells and all the 0 s represent the un revivable cells. Algorithms 1-5 use a board validity check that costs O(n*m) where n represents the board height and m represents the board width since they going over all the cells and validate that each one of them fulfill all the constraints of the game. Here are the algorithms we implemented and used for solving the Maximum Density still Life problem: 1. Naïve Algorithm: This algorithm behaves naively, where it goes over all the possible solutions for a given board and finds the maximum valid one. Going over all the possible solutions cost ( * ) 2 n m ( n* m) one costs O(n*m), so the cost of this algorithm is O( 2 * n* m ). and checking the validity of each 2. Improved Naïve Algorithm: This algorithm behaves like the Naïve algorithm but it adds some improvements in computing the possible solutions. It goes over only the possible solutions which have 1 s more than half of board cells, according to Bosch and Trick in their paper Constraint Programming and Hybrid Formulation for Life the maximum density in infinite boards is ½ so in finite boards it s more than ½ therefore the optimal solution for a finite board must
6 contain at least live cells for half of the board, so this algorithm discards all the possible solutions that contain live cells less than ½ of total number of cells. The complexity of this algorithm is the same of the Naïve algorithm, but its total run time is less than Naïve algorithm total run time. 3. Weighted Approach Algorithm: This algorithm behaves like the Naïve algorithm, but with some space cost optimizations. In the Weighted Approach algorithm the problem is represented using boards weights, each board is represented by a binary representation, i.e. each cell will have a weight according to its location by the formula i* m j 2 for cell (i,j) where i,j are 0 based indices, for example 3x3 board weights are as following: Each board is represented by the sum of all its live cells, so the board will be represented by an integer number instead of n*m array. The algorithm complexity is the same as Naïve algorithm, but its space complexity is much less that Naïve algorithm one.
7 Naïve Improved Naïve Weighted Cells x3 4x4 5x5 Comparison between Naïve, Improved Naïve, and Weighted Approach algorithms according to total run time in milliseconds as a function of matrix dimensions. 4. Randomization Algorithm: The Randomization algorithm generates specific number of boards randomly and finds the valid board with maximum live cells if any. This algorithm does not promise an optimal solution, but increasing iterations number (generated random matrices) will increase the probability of finding an optimal solution. For 3x3 matrix a 200 iterations will promise finding an optimal solution with a high confidence, for 4x4 matrix a iterations will promise finding an optimal solution with a high confidence, and square matrixes with dimensions more than 4x4 will find an optimal solution with a little chance. Complexity of this algorithm is k 2 2 * m * n where k is the number of iterations.
8 # Generated random boards Board Size Optimality (% optimal solutions found in all iterations) Time Average (ms) x % x4 0.99% x % x6 N/A x % x4 0.98% x5 N/A x6 N/A x3 64.4% x4 0.96% x5 N/A x6 N/A Statistics for 100 samples/executions of the Randomization algorithm: 5. Genetic Algorithm: The genetic algorithm selects a sub problems from the original problem by dividing the matrix rows to two parts, generates the randomization algorithm on each sub problem for some iterations, if it finds an optimal solution for the subproblems then it will merge by choosing the selection point as the cross-over point. Here are some measurements we did using our implementation that compares algorithm executions with different life board dimensions and different generations number, i.e. the solution quality is compared to the optimal solution in the appropriate number of generations.
9 Board Size Optimal solution size Generations 1000 Generations Total time (for generations) Total time (for 1000 generations) 3x % 100% 5 0 4x % 100% x % 81% x % 70.8% Using the method generate (i.e. dividing the board into two parts). Board Size Optimal solution size Generations 1000 Generations Total time (for generations) Total time (for 1000 generations) 3x % 100% 2 0 4x % 29% x % 98% x % 78.3% x % 48.67% x % 52% Using the method generate2 (i.e. dividing the board into 4 sub boards):
10 6. Linear/Integer Programming Algorithm: In Linear/Integer Programming algorithm the problem we are trying to optimize is formulated as an integer programming problem. Game constraints can be formulated according to the following formulations: Life [i,j] = 1 Life [i,j] = 0 Life is a 0-1 matrix which is 1 if the cell is living and 0 otherwise. Neighbor is a set of a set giving the offsets to find the neighbors of a cell. These two formulations which are represent the game constrains can be formulized as integer programming constraints as follows according to Bosch in the paper Integer programming and Conway's game of Life: 1. Let x(ij) be 1 if cell (i,j) is alive and 0 otherwise. Let N(i,j) represent the cells that are neighbors of (i,j). 3x ij x kl ( k, l) N ( i, j) 6 This constraint enforces the "death by overcrowding condition": if a cell is alive, then at most 3 of its neighbors are alive. It is straightforward to see that if the cell is dead, then at most six of its neighbors are alive (otherwise another cell would be overcrowded). 2. to handle the "death by isolation condition", the following constraint suffices: 2x ij x kl ( k, l) N ( i, j) 0 If a cell is alive then at least two of its neighbors are also alive.
11 3. To prohibit violations of the birth rule, we need a somewhat more complicated constraint. Let S be a 3 element subset of N(i,j). then we need: x ij x kl ( k, l) S x kl ( k, l) N ( i, j) S 2 In other words, if all of S is alive, then either (i,j) is alive or some element of N(i,j)-S is alive. This formulation is sufficient to define an integer programming formulation for this problem. 4. Since the problem is formulated as integer programming then life(i,j) = 0 or 1, in other words this is a binary integer programming. 5. Each cell in life matrix is a variable in the integer programming problem, and each variable is binary according to (4). Max 6. The objective function is x ij ( i, j) board Note: We solved the integer programming problem in our code using third party libraries: Name License Brief info Link LP_Solve LGPL User-friendly linear and integer programming solver. Also provides DLL for program integration.
12 Linear Programming x3 4x4 5x5 6x6 7x7 8x8 9x9 10x10 Linear Programming algorithm results: total run time in milliseconds as a function of matrix dimensions.
13 Summary Before we start analyzing each approach and heuristics we first show few numbers to know how the problem we dealing with is hard. Let s suppose that m = n (for simplicity and w.l.o.g), then if the board size is n*n there is 2 2 n possible boards. Board Size Possible Situations 3x x x x x * 10 8x * 10 9x * 10 10x * Naïve Algorithm: The Naïve approach, as it is called, naïve. However, this approach is not useful and according to that table it is impossible to solve when the board of size 7x7 (we hadn t try 6x6 since it is need few days according to the naïve time complexity). The only advantage in this approach, that the implementation is easy and can solve limited problems. 2. Improved Naïve Algorithm: Even if it is called improved, it is still naïve. However, there is an improvement in the total run time compared to the Naïve algorithm. But it s still not helpful larger problems.
14 3. Weighted Approach Algorithm: There is nothing special in the running comparing to the algorithms in 1 and 2, but the only advantage that the space complexity is linear comparing to the last two cases. This approach implements a nice idea of encoding and decoding the matrices, it is not very useful in our problem, but we believe it might be useful and helpful in some other problems. 4. Randomization Algorithm: Why randomization? Randomization generates quick optimal solutions for small boards, faster than the three last approaches. We have used the approach to find optimal or sub optimal solutions in small boards quickly to be used in the genetic algorithm. In the other hand, it is hard to find a solution for big boards (5x5 or bigger). Main advantage, low complexity (depends on the loops number multiplied by the board size) and constant space. 5. Genetic Algorithm: We believe that genetic algorithms is a powerful tool to solve problems, usually, it doesn t provide optimal solutions but it provides solutions that almost optimal. In our small research in the genetic approach, we believe that this approach is fast and provides good sub optimal solutions in a constant memory. The running time is determined according to the generation we wish to generate. How to divide the big matrix into sub matrices and where to merge (depends on the original matrix size) this is important parts in the solution.
15 6. Linear/Integer Programming Algorithm: The constraints of our problem as a SCP problem can expressed by an Integer programming problem by defining each cell in the life board as a binary variable to be optimized for finding optimal solution. For each cell we defined 3 constraints in addition to binary constraint (that variables are binary and can get only 0 or 1), so we have total of 3*n*m constraints and n*m variables. Linear programming finds only optimal solutions, and not sub-optimal. Also it is faster than previous algorithms since there are many known algorithms for solving linear and integer programming like Simplex algorithm. Using the Linear/Integer algorithm we could run our implementation and get an optimal solution for matrixes of dimensions up to 10x10 within a few minutes, matrices with larger dimensions can be solved using this algorithm but with more total run time.
Graph Adjacency Matrix Automata Joshua Abbott, Phyllis Z. Chinn, Tyler Evans, Allen J. Stewart Humboldt State University, Arcata, California
Graph Adjacency Matrix Automata Joshua Abbott, Phyllis Z. Chinn, Tyler Evans, Allen J. Stewart Humboldt State University, Arcata, California Abstract We define a graph adjacency matrix automaton (GAMA)
More informationUNIT 9C Randomness in Computation: Cellular Automata Principles of Computing, Carnegie Mellon University
UNIT 9C Randomness in Computation: Cellular Automata 1 Exam locations: Announcements 2:30 Exam: Sections A, B, C, D, E go to Rashid (GHC 4401) Sections F, G go to PH 125C. 3:30 Exam: All sections go to
More informationDynamic Symmetry Breaking in Constraint Programming and Linear Programming Hybrids
Dynamic Symmetry Breaking in Constraint Programming and Linear Programming Hybrids Karen E. Petrie and Barbara Smith and Neil Yorke-Smith Abstract. Symmetry in Constraint Satisfaction Problems (CSPs) can
More information//If target was found, then //found == true and a[index] == target.
230 CHAPTER 5 Arrays //If target was found, then //found == true and a[index] == target. } if (found) where = index; return found; 20. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 21. int a[4][5]; int index1, index2;
More information1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors
1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors on an EREW PRAM: See solution for the next problem. Omit the step where each processor sequentially computes the AND of
More informationProgramming Project: Game of Life
Programming Project: Game of Life Collaboration Solo: All work must be your own with optional help from UofA section leaders The Game of Life was invented by John Conway to simulate the birth and death
More informationConway s Game of Life Wang An Aloysius & Koh Shang Hui
Wang An Aloysius & Koh Shang Hui Winner of Foo Kean Pew Memorial Prize and Gold Award Singapore Mathematics Project Festival 2014 Abstract Conway s Game of Life is a cellular automaton devised by the British
More informationEmil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming
Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming Consider flooding a valley (dam break, tides, spring): what is the water level at specific points in the
More informationCELLULAR AUTOMATA IN MATHEMATICAL MODELING JOSH KANTOR. 1. History
CELLULAR AUTOMATA IN MATHEMATICAL MODELING JOSH KANTOR 1. History Cellular automata were initially conceived of in 1948 by John von Neumann who was searching for ways of modeling evolution. He was trying
More informationLecture 16: Introduction to Dynamic Programming Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY
Lecture 16: Introduction to Dynamic Programming Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Problem of the Day
More informationUsing relaxations in Maximum Density Still Life
Using relaxations in Maximum Density Still Life Geoffrey Chu 1, Peter J. Stuckey 1, and Maria Garcia de la Banda 2 1 NICTA Victoria Laboratory, Department of Computer Science and Software Engineering,
More information10/11/2017. Constraint Satisfaction Problems II. Review: CSP Representations. Heuristic 1: Most constrained variable
//7 Review: Constraint Satisfaction Problems Constraint Satisfaction Problems II AIMA: Chapter 6 A CSP consists of: Finite set of X, X,, X n Nonempty domain of possible values for each variable D, D, D
More informationCSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques
CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms
More informationCellular Automata. Cellular Automata contains three modes: 1. One Dimensional, 2. Two Dimensional, and 3. Life
Cellular Automata Cellular Automata is a program that explores the dynamics of cellular automata. As described in Chapter 9 of Peak and Frame, a cellular automaton is determined by four features: The state
More informationCSCI-1200 Data Structures Spring 2017 Lecture 15 Problem Solving Techniques, Continued
CSCI-1200 Data Structures Spring 2017 Lecture 15 Problem Solving Techniques, Continued Review of Lecture 14 General Problem Solving Techniques: 1. Generating and Evaluating Ideas 2. Mapping Ideas into
More informationCS 261 Data Structures. Big-Oh Analysis: A Review
CS 261 Data Structures Big-Oh Analysis: A Review Big-Oh: Purpose How can we characterize the runtime or space usage of an algorithm? We want a method that: doesn t depend upon hardware used (e.g., PC,
More informationFinite Math - J-term Homework. Section Inverse of a Square Matrix
Section.5-77, 78, 79, 80 Finite Math - J-term 017 Lecture Notes - 1/19/017 Homework Section.6-9, 1, 1, 15, 17, 18, 1, 6, 9, 3, 37, 39, 1,, 5, 6, 55 Section 5.1-9, 11, 1, 13, 1, 17, 9, 30 Section.5 - Inverse
More informationCOMP 352 FALL Tutorial 10
1 COMP 352 FALL 2016 Tutorial 10 SESSION OUTLINE Divide-and-Conquer Method Sort Algorithm Properties Quick Overview on Sorting Algorithms Merge Sort Quick Sort Bucket Sort Radix Sort Problem Solving 2
More informationLecture 5. Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs
Lecture 5 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs Reading: Randomized Search Trees by Aragon & Seidel, Algorithmica 1996, http://sims.berkeley.edu/~aragon/pubs/rst96.pdf;
More informationMidterm Examination CS540-2: Introduction to Artificial Intelligence
Midterm Examination CS540-2: Introduction to Artificial Intelligence March 15, 2018 LAST NAME: FIRST NAME: Problem Score Max Score 1 12 2 13 3 9 4 11 5 8 6 13 7 9 8 16 9 9 Total 100 Question 1. [12] Search
More informationJune 10, 2014 Scientific computing in practice Aalto University
Jussi Enkovaara import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Exercises for Python in Scientific Computing June 10, 2014 Scientific
More informationAssignment 5. INF109 Dataprogrammering for naturvitskap
Assignment 5 INF109 Dataprogrammering for naturvitskap This is the fifth of seven assignments. You can get a total of 15 points for this task. Friday, 8. April, 23.59. Submit the report as a single.py
More informationProblem 3. (12 points):
Problem 3. (12 points): This problem tests your understanding of basic cache operations. Harry Q. Bovik has written the mother of all game-of-life programs. The Game-of-life is a computer game that was
More informationIntroduction to Homogeneous coordinates
Last class we considered smooth translations and rotations of the camera coordinate system and the resulting motions of points in the image projection plane. These two transformations were expressed mathematically
More informationIALP Algorithms
IALP 2011 - Algorithms P. Stallinga MIEET 1º ano Algorithms are general descriptions to solve a problem. Imagine we want to find the greatest common divisor of two integer numbers. (The GCD of two numbers
More informationLDPC Codes a brief Tutorial
LDPC Codes a brief Tutorial Bernhard M.J. Leiner, Stud.ID.: 53418L bleiner@gmail.com April 8, 2005 1 Introduction Low-density parity-check (LDPC) codes are a class of linear block LDPC codes. The name
More informationThe Simplex Algorithm for LP, and an Open Problem
The Simplex Algorithm for LP, and an Open Problem Linear Programming: General Formulation Inputs: real-valued m x n matrix A, and vectors c in R n and b in R m Output: n-dimensional vector x There is one
More information2.3 Algorithms Using Map-Reduce
28 CHAPTER 2. MAP-REDUCE AND THE NEW SOFTWARE STACK one becomes available. The Master must also inform each Reduce task that the location of its input from that Map task has changed. Dealing with a failure
More information1 Maximum Degrees of Iterated Line Graphs
1 Maximum Degrees of Iterated Line Graphs Note. All graphs in this section are simple. Problem 1. A simple graph G is promising if and only if G is not terminal. 1.1 Lemmas Notation. We denote the line
More informationError-Correcting Codes
Error-Correcting Codes Michael Mo 10770518 6 February 2016 Abstract An introduction to error-correcting codes will be given by discussing a class of error-correcting codes, called linear block codes. The
More informationWelfare Navigation Using Genetic Algorithm
Welfare Navigation Using Genetic Algorithm David Erukhimovich and Yoel Zeldes Hebrew University of Jerusalem AI course final project Abstract Using standard navigation algorithms and applications (such
More information17/05/2018. Outline. Outline. Divide and Conquer. Control Abstraction for Divide &Conquer. Outline. Module 2: Divide and Conquer
Module 2: Divide and Conquer Divide and Conquer Control Abstraction for Divide &Conquer 1 Recurrence equation for Divide and Conquer: If the size of problem p is n and the sizes of the k sub problems are
More informationCardinality of Sets. Washington University Math Circle 10/30/2016
Cardinality of Sets Washington University Math Circle 0/0/06 The cardinality of a finite set A is just the number of elements of A, denoted by A. For example, A = {a, b, c, d}, B = {n Z : n } = {,,, 0,,,
More informationConstraint Satisfaction
Constraint Satisfaction Philipp Koehn 1 October 2015 Outline 1 Constraint satisfaction problems (CSP) examples Backtracking search for CSPs Problem structure and problem decomposition Local search for
More informationComputer Science 385 Analysis of Algorithms Siena College Spring Topic Notes: Divide and Conquer
Computer Science 385 Analysis of Algorithms Siena College Spring 2011 Topic Notes: Divide and Conquer Divide and-conquer is a very common and very powerful algorithm design technique. The general idea:
More informationDr. Amotz Bar-Noy s Compendium of Algorithms Problems. Problems, Hints, and Solutions
Dr. Amotz Bar-Noy s Compendium of Algorithms Problems Problems, Hints, and Solutions Chapter 1 Searching and Sorting Problems 1 1.1 Array with One Missing 1.1.1 Problem Let A = A[1],..., A[n] be an array
More information1. Lecture notes on bipartite matching
Massachusetts Institute of Technology 18.453: Combinatorial Optimization Michel X. Goemans February 5, 2017 1. Lecture notes on bipartite matching Matching problems are among the fundamental problems in
More informationHypercubes. (Chapter Nine)
Hypercubes (Chapter Nine) Mesh Shortcomings: Due to its simplicity and regular structure, the mesh is attractive, both theoretically and practically. A problem with the mesh is that movement of data is
More informationConstraint Satisfaction Problems
Constraint Satisfaction Problems CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2013 Soleymani Course material: Artificial Intelligence: A Modern Approach, 3 rd Edition,
More informationConstraint Satisfaction Problems
Constraint Satisfaction Problems In which we see how treating states as more than just little black boxes leads to the invention of a range of powerful new search methods and a deeper understanding of
More informationDIVIDE & CONQUER. Problem of size n. Solution to sub problem 1
DIVIDE & CONQUER Definition: Divide & conquer is a general algorithm design strategy with a general plan as follows: 1. DIVIDE: A problem s instance is divided into several smaller instances of the same
More informationUniversity of California San Diego Department of Electrical and Computer Engineering. ECE 15 Final Exam
University of California San Diego Department of Electrical and Computer Engineering ECE 15 Final Exam Tuesday, March 21, 2017 3:00 p.m. 6:00 p.m. Room 109, Pepper Canyon Hall Name Class Account: ee15w
More informationAnalysis of Algorithms. Unit 4 - Analysis of well known Algorithms
Analysis of Algorithms Unit 4 - Analysis of well known Algorithms 1 Analysis of well known Algorithms Brute Force Algorithms Greedy Algorithms Divide and Conquer Algorithms Decrease and Conquer Algorithms
More informationAdvanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras
Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture - 35 Quadratic Programming In this lecture, we continue our discussion on
More informationTreewidth and graph minors
Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under
More informationA simple problem that has a solution that is far deeper than expected!
The Water, Gas, Electricity Problem A simple problem that has a solution that is far deeper than expected! Consider the diagram below of three houses and three utilities: water, gas, and electricity. Each
More informationA noninformative Bayesian approach to small area estimation
A noninformative Bayesian approach to small area estimation Glen Meeden School of Statistics University of Minnesota Minneapolis, MN 55455 glen@stat.umn.edu September 2001 Revised May 2002 Research supported
More information5.1 The String reconstruction problem
CS125 Lecture 5 Fall 2014 5.1 The String reconstruction problem The greedy approach doesn t always work, as we have seen. It lacks flexibility; if at some point, it makes a wrong choice, it becomes stuck.
More informationEnsemble methods in machine learning. Example. Neural networks. Neural networks
Ensemble methods in machine learning Bootstrap aggregating (bagging) train an ensemble of models based on randomly resampled versions of the training set, then take a majority vote Example What if you
More informationMemoization/Dynamic Programming. The String reconstruction problem. CS124 Lecture 11 Spring 2018
CS124 Lecture 11 Spring 2018 Memoization/Dynamic Programming Today s lecture discusses memoization, which is a method for speeding up algorithms based on recursion, by using additional memory to remember
More informationTopic Notes: Message Passing Interface (MPI)
Computer Science 400 Parallel Processing Siena College Fall 2008 Topic Notes: Message Passing Interface (MPI) The Message Passing Interface (MPI) was created by a standards committee in the early 1990
More informationToday. Types of graphs. Complete Graphs. Trees. Hypercubes.
Today. Types of graphs. Complete Graphs. Trees. Hypercubes. Complete Graph. K n complete graph on n vertices. All edges are present. Everyone is my neighbor. Each vertex is adjacent to every other vertex.
More informationChapter VIII.3: Hierarchical Clustering
Chapter VIII.3: Hierarchical Clustering 1. Basic idea 1.1. Dendrograms 1.2. Agglomerative and divisive 2. Cluster distances 2.1. Single link 2.2. Complete link 2.3. Group average and Mean distance 2.4.
More informationFigure (5) Kohonen Self-Organized Map
2- KOHONEN SELF-ORGANIZING MAPS (SOM) - The self-organizing neural networks assume a topological structure among the cluster units. - There are m cluster units, arranged in a one- or two-dimensional array;
More informationDEGENERACY AND THE FUNDAMENTAL THEOREM
DEGENERACY AND THE FUNDAMENTAL THEOREM The Standard Simplex Method in Matrix Notation: we start with the standard form of the linear program in matrix notation: (SLP) m n we assume (SLP) is feasible, and
More informationQuestion 13 1: (Solution, p 4) Describe the inputs and outputs of a (1-way) demultiplexer, and how they relate.
Questions 1 Question 13 1: (Solution, p ) Describe the inputs and outputs of a (1-way) demultiplexer, and how they relate. Question 13 : (Solution, p ) In implementing HYMN s control unit, the fetch cycle
More informationAlgorithms Assignment 3 Solutions
Algorithms Assignment 3 Solutions 1. There is a row of n items, numbered from 1 to n. Each item has an integer value: item i has value A[i], where A[1..n] is an array. You wish to pick some of the items
More informationDepartment of Computer Applications. MCA 312: Design and Analysis of Algorithms. [Part I : Medium Answer Type Questions] UNIT I
MCA 312: Design and Analysis of Algorithms [Part I : Medium Answer Type Questions] UNIT I 1) What is an Algorithm? What is the need to study Algorithms? 2) Define: a) Time Efficiency b) Space Efficiency
More informationComplex Dynamics in Life-like Rules Described with de Bruijn Diagrams: Complex and Chaotic Cellular Automata
Complex Dynamics in Life-like Rules Described with de Bruijn Diagrams: Complex and Chaotic Cellular Automata Paulina A. León Centro de Investigación y de Estudios Avanzados Instituto Politécnico Nacional
More informationAlgorithms and Applications
Algorithms and Applications 1 Areas done in textbook: Sorting Algorithms Numerical Algorithms Image Processing Searching and Optimization 2 Chapter 10 Sorting Algorithms - rearranging a list of numbers
More informationSolutions to Problem Set 1
CSCI-GA.3520-001 Honors Analysis of Algorithms Solutions to Problem Set 1 Problem 1 An O(n) algorithm that finds the kth integer in an array a = (a 1,..., a n ) of n distinct integers. Basic Idea Using
More informationLP-Modelling. dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven. January 30, 2008
LP-Modelling dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven January 30, 2008 1 Linear and Integer Programming After a brief check with the backgrounds of the participants it seems that the following
More informationMixture Models and the EM Algorithm
Mixture Models and the EM Algorithm Padhraic Smyth, Department of Computer Science University of California, Irvine c 2017 1 Finite Mixture Models Say we have a data set D = {x 1,..., x N } where x i is
More informationCHAPTER 2. Graphs. 1. Introduction to Graphs and Graph Isomorphism
CHAPTER 2 Graphs 1. Introduction to Graphs and Graph Isomorphism 1.1. The Graph Menagerie. Definition 1.1.1. A simple graph G = (V, E) consists of a set V of vertices and a set E of edges, represented
More information1 2 (3 + x 3) x 2 = 1 3 (3 + x 1 2x 3 ) 1. 3 ( 1 x 2) (3 + x(0) 3 ) = 1 2 (3 + 0) = 3. 2 (3 + x(0) 1 2x (0) ( ) = 1 ( 1 x(0) 2 ) = 1 3 ) = 1 3
6 Iterative Solvers Lab Objective: Many real-world problems of the form Ax = b have tens of thousands of parameters Solving such systems with Gaussian elimination or matrix factorizations could require
More informationLecture Notes 2: The Simplex Algorithm
Algorithmic Methods 25/10/2010 Lecture Notes 2: The Simplex Algorithm Professor: Yossi Azar Scribe:Kiril Solovey 1 Introduction In this lecture we will present the Simplex algorithm, finish some unresolved
More informationMidterm Examination CS 540-2: Introduction to Artificial Intelligence
Midterm Examination CS 54-2: Introduction to Artificial Intelligence March 9, 217 LAST NAME: FIRST NAME: Problem Score Max Score 1 15 2 17 3 12 4 6 5 12 6 14 7 15 8 9 Total 1 1 of 1 Question 1. [15] State
More informationLecture 3. Brute Force
Lecture 3 Brute Force 1 Lecture Contents 1. Selection Sort and Bubble Sort 2. Sequential Search and Brute-Force String Matching 3. Closest-Pair and Convex-Hull Problems by Brute Force 4. Exhaustive Search
More informationConstraint Satisfaction Problems. slides from: Padhraic Smyth, Bryan Low, S. Russell and P. Norvig, Jean-Claude Latombe
Constraint Satisfaction Problems slides from: Padhraic Smyth, Bryan Low, S. Russell and P. Norvig, Jean-Claude Latombe Standard search problems: State is a black box : arbitrary data structure Goal test
More informationModule 2: Classical Algorithm Design Techniques
Module 2: Classical Algorithm Design Techniques Dr. Natarajan Meghanathan Associate Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Module
More informationA Linear-Time Heuristic for Improving Network Partitions
A Linear-Time Heuristic for Improving Network Partitions ECE 556 Project Report Josh Brauer Introduction The Fiduccia-Matteyses min-cut heuristic provides an efficient solution to the problem of separating
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #43. Multidimensional Arrays
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #43 Multidimensional Arrays In this video will look at multi-dimensional arrays. (Refer Slide Time: 00:03) In
More informationMath 340 Fall 2014, Victor Matveev. Binary system, round-off errors, loss of significance, and double precision accuracy.
Math 340 Fall 2014, Victor Matveev Binary system, round-off errors, loss of significance, and double precision accuracy. 1. Bits and the binary number system A bit is one digit in a binary representation
More informationAlgorithms. Lecture Notes 5
Algorithms. Lecture Notes 5 Dynamic Programming for Sequence Comparison The linear structure of the Sequence Comparison problem immediately suggests a dynamic programming approach. Naturally, our sub-instances
More information3.1 DATA REPRESENTATION (PART C)
3.1 DATA REPRESENTATION (PART C) 3.1.3 REAL NUMBERS AND NORMALISED FLOATING-POINT REPRESENTATION In decimal notation, the number 23.456 can be written as 0.23456 x 10 2. This means that in decimal notation,
More informationCSE100. Advanced Data Structures. Lecture 8. (Based on Paul Kube course materials)
CSE100 Advanced Data Structures Lecture 8 (Based on Paul Kube course materials) CSE 100 Treaps Find, insert, delete, split, and join in treaps Randomized search trees Randomized search tree time costs
More information2-D Arrays. Of course, to set each grid location to 0, we have to use a loop structure as follows (assume i and j are already defined):
2-D Arrays We define 2-D arrays similar to 1-D arrays, except that we must specify the size of the second dimension. The following is how we can declare a 5x5 int array: int grid[5][5]; Essentially, this
More informationMITOCW watch?v=4dj1oguwtem
MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive
More informationD-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview
Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,
More informationChapter 2 Basic Structure of High-Dimensional Spaces
Chapter 2 Basic Structure of High-Dimensional Spaces Data is naturally represented geometrically by associating each record with a point in the space spanned by the attributes. This idea, although simple,
More informationAlgorithms for Integer Programming
Algorithms for Integer Programming Laura Galli November 9, 2016 Unlike linear programming problems, integer programming problems are very difficult to solve. In fact, no efficient general algorithm is
More informationDiscrete Optimization. Lecture Notes 2
Discrete Optimization. Lecture Notes 2 Disjunctive Constraints Defining variables and formulating linear constraints can be straightforward or more sophisticated, depending on the problem structure. The
More informationWe have written lots of code so far It has all been inside of the main() method What about a big program? The main() method is going to get really
Week 9: Methods 1 We have written lots of code so far It has all been inside of the main() method What about a big program? The main() method is going to get really long and hard to read Sometimes you
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Recursive Methods
Computer Science 210 Data Structures Siena College Fall 2017 Topic Notes: Recursive Methods You have seen in this course and in your previous work that iteration is a fundamental building block that we
More informationSolving Minesweeper Using CSP
Solving Minesweeper Using CSP AI Course Final Project Gil & Chai Usage (After using Makefile) java player/aiplayer
More informationChapter 18. Geometric Operations
Chapter 18 Geometric Operations To this point, the image processing operations have computed the gray value (digital count) of the output image pixel based on the gray values of one or more input pixels;
More informationComputer Sciences Department 1
1 Advanced Design and Analysis Techniques (15.1, 15.2, 15.3, 15.4 and 15.5) 3 Objectives Problem Formulation Examples The Basic Problem Principle of optimality Important techniques: dynamic programming
More informationMathematical and Algorithmic Foundations Linear Programming and Matchings
Adavnced Algorithms Lectures Mathematical and Algorithmic Foundations Linear Programming and Matchings Paul G. Spirakis Department of Computer Science University of Patras and Liverpool Paul G. Spirakis
More informationHi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we
Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the
More informationSolving lexicographic multiobjective MIPs with Branch-Cut-Price
Solving lexicographic multiobjective MIPs with Branch-Cut-Price Marta Eso (The Hotchkiss School) Laszlo Ladanyi (IBM T.J. Watson Research Center) David Jensen (IBM T.J. Watson Research Center) McMaster
More informationTwo-dimensional Totalistic Code 52
Two-dimensional Totalistic Code 52 Todd Rowland Senior Research Associate, Wolfram Research, Inc. 100 Trade Center Drive, Champaign, IL The totalistic two-dimensional cellular automaton code 52 is capable
More informationMove-to-front algorithm
Up to now, we have looked at codes for a set of symbols in an alphabet. We have also looked at the specific case that the alphabet is a set of integers. We will now study a few compression techniques in
More informationAlgorithm Analysis. Big Oh
Algorithm Analysis with Big Oh Data Structures and Design with Java and JUnit Chapter 12 Rick Mercer Algorithm Analysis w Objectives Analyze the efficiency of algorithms Analyze a few classic algorithms
More informationCopyright 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin Introduction to the Design & Analysis of Algorithms, 2 nd ed., Ch.
Iterative Improvement Algorithm design technique for solving optimization problems Start with a feasible solution Repeat the following step until no improvement can be found: change the current feasible
More informationMaterial handling and Transportation in Logistics. Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena
Material handling and Transportation in Logistics Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Introduction to Graph Theory Graph Theory As Mathematical
More informationEaster Term OPTIMIZATION
DPK OPTIMIZATION Easter Term Example Sheet It is recommended that you attempt about the first half of this sheet for your first supervision and the remainder for your second supervision An additional example
More information15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018
15-451/651: Design & Analysis of Algorithms October 11, 2018 Lecture #13: Linear Programming I last changed: October 9, 2018 In this lecture, we describe a very general problem called linear programming
More information6 Randomized rounding of semidefinite programs
6 Randomized rounding of semidefinite programs We now turn to a new tool which gives substantially improved performance guarantees for some problems We now show how nonlinear programming relaxations can
More informationBipartite Perfect Matching in O(n log n) Randomized Time. Nikhil Bhargava and Elliot Marx
Bipartite Perfect Matching in O(n log n) Randomized Time Nikhil Bhargava and Elliot Marx Background Matching in bipartite graphs is a problem that has many distinct applications. Many problems can be reduced
More informationSolutions to Math 381 Quiz 2
Solutions to Math 381 Quiz 2 November 7, 2018 (1) In one sentence, what is the goal of your class project? Each team has a different answer here. (2) Write a function in Python which computes a linear
More information