Combinatorial Generati


 Clifford Stewart
 1 years ago
 Views:
Transcription
1 Combinatorial Generation Combinatorial Generation Combinatorial Generatio ombinatorial Generation Combinatorial Generati mbinatorial Generation Combinatorial Generat binatorial Generation Combinatorial Genera inatorial Generation Combinatorial Gener natorial Generation Combinatorial Gene atorial Generation Combinatorial Gen torial Generation Combinatorial Ge orial Generation Combinatorial G rial Generation Combinatorial October 1, 2003 ial Generation Combinatoria al Generation Combinatori l Generation Combinator Generation Combinato eneration Combinat neration Combina eration Combin ration Combi ation Comb tion Com Combinatorial Generation ion Co on C Working Version (1jCSC 425/520) n no comments printed; pseudocode version Co on Com ion Comb tion Combi ation Combin ration Combina eration Combinat neration Combinato Frank Ruskey eneration Combinator Generation Combinatori l Generation Department of Computer Science Combinatoria al Generation University of Victoria Combinatorial ial Generation Victoria, B.C. V8W 3P6 Combinatorial G rial Generation CANADA Combinatorial Ge orial Generation Combinatorial Gen torial Generation Combinatorial Gene atorial Generation Combinatorial Gener natorial Generation Combinatorial Genera inatorial Generation Combinatorial Generat binatorial Generation Combinatorial Generati mbinatorial Generation Combinatorial Generatio ombinatorial Generation Combinatorial Generation Combinatorial Generation
2 i The covers of your book are too far apart. George Bernard Shaw. No man but a blockhead ever wrote except for money. Dr. Samuel Johnson. Everything has been said before by someone. Alfred North Whitehead It is a wise father that knows his own child. William Shakespeare, The Merchant of Venice, Act II, Scene II, 73. good quote for chapter 8. There are various versions of this book. If there is a comment printed as a footnote to this sentence then comments to myself are printed. These contain bibliographic remarks, sources of info, rewriting suggestions, etc.
3 ii
4 Preface Humanity has long enjoyed making lists. All children delight in their newfound ability to count 1,2,3, etc., and it is a profound revelation that this process can be carried out indefinitely. The fascination of finding the next unknown prime or of listing the digits of π appeals to the general population, not just mathematicians. The desire to produce lists almost seems to be an innate part of our nature. Furthermore, the solution to many problems begins by listing the possibilities that can arise. There are lists of mathematical objects that have a historical interest, or maybe I should say that there are lists of historical objects that have a mathematical interest. Examples include the Fu Hsi sequencing of the hexagrams of the I Ching (e.g., as described in Martin Gardner  Knotted Donuts [148]) and the Murasaki diagrams of the Tale of the Genji (by Lady Shikibu Murasaki, 1000 A.D.) as explained in Gould [158]. Viewed properly, these are lists of the first 64 binary numbers 0, 1,..., 63 and all 52 partitions of a 5set, respectively. They are illustrated in Figures 1 and 2 at the end of this preface. However, it was not until the advent of the digital computer that the construction of long lists of combinatorial objects became a nontedious exercise. Indeed, some of the first applications of computers were for producing such lists. With the computer as our able assistant we can construct interesting lists to our hearts content. There is deeply satisfying feeling that one obtains by watching a well ordered list of combinatorial objects marching down the computer screen. The author hopes that the readers of this book will implement some of the algorithms found herein and experience this feeling for themselves! These lists are not only interesting but can be extremely useful. Nearly every computer scientist and mathematician has encountered some instance where they solved a problem simply by listing all the possibilities and checking for a desired property. One can find applications of the ideas in this book to circuit design, statistical computing, chemistry, and operations research, just to name a few. Ever since the 1960 s there has been a steady flow of new algorithms for constructing lists of combinatorial objects of various types. There is no widely accepted name for the field but I like to call it Combinatorial Generation. Many of the papers in the field have a title that contains the word generating. Unfortunately, generate is an overworked word in mathematics and computer science, so the name is not fully satisfying. A widely used alternative is enumerate, which, unfortunately, also has another widely accepted meaning, to count, as used in Goulden and Jackson s book Combinatorial Enumeration [157]. Some people use generate to mean generate uniformly at random. In algebra, generator is a term use for a subset of an algebraic structure that, via some operation, can produce the entire structure, as in the generators of a group. A good alternative title for the book would be Exhaustive Listing of Combinatorial Objects. Nevertheless, Combinatorial Generation is the name chosen and used in this book. iii
5 iv Several books contain chapters about generating combinatorial objects, but there is no book devoted solely to the subject (with pehaps the exception of Wilf s update [451] of [289]). The books of Nijenhuis and Wilf [289], and of Reingold, Nievergelt and Deo [340] contain such chapters and have provided an inspiration for me over the years. Many of the ideas of the present book can be traced back to these books. I would also like to mention the influential books of Even [115], Page and Wilson [296], Rohl [347], Wells [440], and Williamson [453], all of which contain interesting material on generating combinatorial objects. The forthcoming Volume 4 of the Art of Computer Programming by Knuth will contain material on combinatorial generation. The concern of this book is not with existence questions By an existence question we mean one of the form find a single instance of a combinatorial object with certain properties. These questions have quite different methods of attack and warrant a separate treatment, although backtracking, which is covered is a widely used technique for solving existence questions. Existence questions arise, for example, in the search for various types of block designs. The recent book of Kreher and Stinson [233] covers such techniques, as well as overlapping some of the exhaustive listing material discussed in this book. Of course, the particular topics that are treated here reflect my own personal choices about the elegance, importance and accessibility of particular topics not to mention that they are those with which I am most familiar and find most interesting. There is something of interest for many types of readers to be found in the chapters to follow. The reader who simply wants a fast algorithm to generate a wellknown class of objects will find it here. Many algorithms are fully implemented as Pascal procedures, others with a Pascallike pseudocode. The analysis of generation algorithms provides interesting problems for those interested in combinatorial enumeration. The analysis of most of our algorithms involves some sort of counting problem, and many techniques from enumerative combinatorics have been brought to bear in solving these counting problems. The software engineer will find interesting nontrivial, but short, procedures. These provide excellent examples for students on which to try their skill at providing formal proofs of correctness of programs. Recently, there seems to be an explosion of results on combinatorial generation. This renewed interest is fueled by many sources: the increasing speed of computers, mathematical interest in Hamiltonicity of graphs, the emergence of parallel computers, the complexity theory of counting problems, and so on. It is my belief that a book on combinatorial generation is timely. Many of the programs presented in this book can be downloaded from the author s Combinatorial Object Server (COS) at The main purpose of this site is to provide an online resource for the generation of small numbers of combinatorial objects. The user first selects a type of object, then supplies input parameters, and output options, and COS returns the appropriate list of objects. There are very few universities that offer courses on combinatorial generation so I don t expect this to be often used as a textbook (of course, the appearance of a suitable text may change that). The book is mainly intended as a reference and perhaps for supplementary reading in a course. Each chapter contains some exercises, and some contain extensive sets of exercises. It is quite feasible to use the book as a textbook, but it would be essential for prospective students to have had a course in discrete mathematics or combinatorics and enough programming experience to be totally comfortable with recursion. Other than that the background necessary to read the book is minimal. Most of the material should be
6 v accessible to the typical undergraduate Computer Science or Mathematics major. The first chapter discusses some general issues in combinatorial generation. The second chapter reviews some basic definitions and counting results that are useful in the rest of the book; the reader is advised to skip over this chapter and just refer to it as needed. Chapter 3 is a short introduction to backtracking. The following chapters are broadly organized by type of algorithm. Chapter 4 is Lexicographic Algorithms, Chapter 5 concerns algorithmic aspects of Gray codes and Chapter 6 is a continuation, concentrating on graph theoretic aspects of Gray codes. Chapter 7 considers problems that can be modeled as Eulerian cycles, such as De Bruijn cycles. Chapters 4, 5, 6, and to a lesser extent, Chapter 7 are concerned with elementary combinatorial objects. Orderly Algorithms are covered in Chapter 8 and Chapter 9 looks at problems of generating various types of subgraphs of graphs, such as spanning trees and cliques. Parallel algorithms for generating combinatorial objects are discussed in Chapter??. The uniform random selection of objects is the subject of Chapter 10. Some complexity issues are discussed in Chapter??. And finally, Chapter?? contains solutions and hints to the exercises. I have tried to provide a fairly comprehensive list of references to papers whose main objective is the development of an algorithm for generating some class of combinatorial objects. Inclusion in the references implies no judgement on my part about the merits of the paper. It is evident from the large number of these references that there has been much interest in generating combinatorial objects and that that interest is increasing. It is my hope that this book will provide a guide to those interested in combinatorial generation, both in regards to what has been done before, and in terms of what approaches have proved most successful. The exercises form an integral part of the book. Many of them expand upon the material of the chapters and contain material about generating other types of combinatorial objects beyond those covered in the main body of the chapter. Many useful generation problems have been relegated to the exercises because of space limitations. The reader is urged to at least read the exercises and understand what they are asking. Solutions or hints or references to the relevant literature are provided for most of the exercises; these solutions may be found in the final chapter at the end of the book. They are classified according to difficulty using a modification of the rating scheme of Stanley [402] as follows. [1] routine, straightforward. [2] somewhat difficult or tricky. [3] difficult. [4] extraordinarily difficult. [R] research problem. Further gradations are indicated by + and. An [R] indicates that the problem is a research problem, and that the solution is unknown to myself. An [R ] or [R] rating does not necessarily imply that the problem is extremely difficult; indeed, I suspect that some of them can be solved quite easily. If you do solve any one of these problems, please let me know! An [R ] indicates that I don t know the solution or of anybody who has worked on the problem before. Such problems may be quite easy to solve. An [R] indicates that at least one person has unsuccessively worked on the problem, and a [R+] means that several
7 vi wellknown researchers have worked on the problem without success. Some of the [R+] problems are notoriously difficult! I would like to thank my favorite list, Susan, Jennifer, and Albert, for putting up with the many lost hours spent away from them as I wrote this book. Many people have contributed to this book, knowingly or not. In particular I would like to mention Larry Cummings, Brendan McKay, Carla Savage, Ian Roberts, Colin Ramsay, Peter Eades, Malcolm Smith, Gara Pruesse, Joe Sawada, and Donald Knuth. Frank Ruskey
8 vii T ai Chi K un 8 earth Kên 7 mountain K an 6 water Sun 5 wind Great Yin Lesser Yang YIN Chên 4 thunder Li 3 fire Tui 2 lake Ch ien 1 Heaven Lesser Yin Great Yang YANG Figure 1: The 64 Hexagrams of the Fu Hsi ordering (from the I Ching). The I Ching (or Book of Changes) is a book that has been used for centuries as an aid to fortune telling in China. The I Ching is said to have originated around the eighth century B.C. and the Fu Hsi ordering is from the 11th century. Each of the 2 6 hexagrams consists of six symbols, either a long dash or two short dashes, placed one above the other. Originally the hexagrams were arranged in other, seemingly random, orders; one such order is indicated by the numbers above each hexagram.
9 viii Figure 2: The 52 Murasaki diagrams from The Tale of the Genji. The novel Tale of Genji was written about 1000 A.D. by Lady Shikibu Murasaki, who is often referred to as the Shakespeare of Japan. The book has 54 chapters and some early copies have one of the Murasaki diagrams at the top of each chapter, except for the first and last. The diagrams themselves derive from a Japanese game involving the identification, by smell alone, of a sequence of 5 incense sticks. Each diagram is formed from 5 vertical bars, where bars representing the same type of incense are connected by a horizontal bar.
10 Contents 1 What is Combinatorial Generation? Some Examples Fisher s Exact Test A Second Example Elementary Objects Four Basic Questions A Word about the Algorithms The Representation Issue Complexity Measures Analyzing the Algorithms Exercises Bibliographic Remarks Basic Combinatorial Objects Alphabets, Strings, Languages, and Lists Relations and Functions Asymptotic Notation Subsets and Combinations Permutations Permutations of a Multiset Partitions Numerical Partitions Set Partitions The twelvefold way Tableau Partially Ordered Sets Antimatroids Trees Ordered Trees Rooted Trees Free Trees Graphs The Matrix Tree Theorem Representing Graphs Depth First Search Finite Groups Permutation Groups ix
11 x CONTENTS Burnside s Lemma Polya Theorem Cayley Graphs Miscellanea Summations Fibonacci Numbers Constant Time Array Initialization Exercises Bibliographic Remarks Backtracking Introduction Backtracking Algorithms Solving Pentomino Problems with Backtracking Eliminating Isomorphic Solutions Estimating the Running Time of Backtracking Exercises Bibliographic Remarks Lexicographic Algorithms Introduction Subsets Combinations Permutations Permutations of a Multiset Combinations of a Multiset Trees Binary Trees, Ordered Trees Rooted Trees, Free Trees Btrees Set Partitions Numerical Partitions Generalized Settings Wilf s Generalized Setting The Generalized Setting of Flajolet, Zimmerman, and Cutsem Listing solutions to problems solved by dynamic programming Retrospective Why recusive and iterative algorithms have similar analyses Ideals and Linear Extensions of Posets VarolRotem Algorithm for Linear Extensions Algorithms for Listing Ideals Exercises Bibliographic Remarks
12 CONTENTS xi 5 Combinatorial Gray Codes: Algorithmic Issues Introductory Example Combinatorial Gray Codes The Binary Reflected Gray Code Applications of the BRGC Gray Codes for Combinations Permutations Gray Codes for Binary Trees Wellformed Parentheses Binary Trees Multisets Permutations of a multiset Combinations of a multiset Compositions Numerical Partitions Set Partitions Linear Extensions of Posets Combinatorially Interesting Posets Generating Linear Extensions Fast Ideals of Posets Loopless Algorithms Binary Trees Finding a Hamiltonian cycle ExtensionRotation Algorithms Cubic graphs Exercises Bibliographic Remarks Combinatorial Gray Codes: Graph Theoretic Issues The Hypercube Monotone Gray Codes Hamiltonicity Results for Graphs A useful lemma VertexTransitive Graphs AntiGray Codes Permutations Subsets Hamilton Cycles in Cayley Graphs Directed Cayley Graphs Undirected Cayley Graphs Cayley graphs over S n Exercises Bibliographic Remarks
13 xii CONTENTS 7 DeBruijn Cycles and Relatives Eulerian Cycles Generating an Eulerian cycle An Eulerian Cycle in the Directed ncube Necklaces De Bruijn Sequences Computing the Necklace of a String Universal Cycles Polynomials over finite fields Linear Feedback Shift Registers Another look at the BRGC Exercises Bibliographic Remarks Orderly Algorithms Undirected Graphs Tournaments Restricted Classes of Graphs Bipartite Graphs Cubic Graphs Posets Dedekind s Problem Coset Enumeration Exercises Bibliographic Remarks Subgraph Generation Spanning Trees A naive algorithm A CAT algorithm A Spanning Tree Gray Code Reverse Search Cycles Cliques Maximal Independent Sets Cutsets Chromatic Polynomials Convex Polytopes Exercises Bibliographic Remarks Random Selection Permutations Combinations Permutations of a Multiset Necklaces Numerical Partitions Set Partitions
14 CONTENTS xiii 10.7 Trees Wellformed Parentheses Graphs Exercises Bibliographic Remarks Bibliography Useful Tables 281 Term Index 281
15 xiv CONTENTS
16 List of Figures 1 The 64 Hexagrams of the Fu Hsi ordering (from the I Ching) vii 2 The 52 Murasaki diagrams from The Tale of the Genji viii 2.1 Ferrer s diagram and conjugate partition (a) A standard Young tableau of shape 6,4,4,2,1,1. (b) The hook lengths of that tableau (a) Forbidden subposet for lattices. (b) Forbidden sublattices for distributive lattices The path corresponding to A triangulation of a rooted 10gon and the corresponding extended binary tree with 10 leaves Catalan correspondences for n = The functional digraph of f and the bijection θ For this tree x is the centroid and y is the center A graph and its adjacency list representation The four queens backtracking tree The 12 pentomino pieces A solution to the 6 by 10 pentomino problem Numbering the board (and the placement of a piece) Lists for piece 11, with those anchored at location 7 shown explicitly Eliminating isomorphs in the 6 by 10 pentomino puzzle (a) True backtracking tree with random roottoleaf path shown. (b) Assumed tree from that random path The Soma cube pieces A 6 by 6 knight s tour Computation tree of B(5, 2) The walk corresponding to the rank 100 = combination of ( 9 5) in colex order Computation tree of GenMult on input 2, 1, Computation tree of gen1 on C(5; 1, 2, 2, 1, 1) Extended binary tree represented by the sequence Lexicographic tree sequences for n = 4 (read down) The walk, , corresponding to the rank 333 = tree in T(8) The rooted trees on at most 5 nodes Two isomorphic rooted trees. The one on the right is canonic xv
17 xvi LIST OF FIGURES 4.10 (a) The 20 canonic sequences of length n = 6 in relex order (read down). (b) The 9 canonic sequences of length n = 5 with elements contributing to x indicated in bold and those contributing to y underlined The rooted versions of the free trees on 6 vertices, listed in relex order. Central vertices are darkened Condition (B2) fails: (The height of T 2 is reduced too much). (a) original tree T. (b) succ(e(t )). (c) Succ(e(T )) Condition (C) fails: ( T 1 has too many nodes). (a) original tree T. (b) succ(e(t )). (c) Succ(e(T )) Condition (D) fails: (The encoding of T 1 is too large). (a) original tree T. (b) succ(e(t )). (c) Succ(e(T )) Btree of order 4 with encoding The eight trees in B(6, 2) (with m = 4) Computation tree for n = k = A typical computation tree of a recursive algorithm generating strings in lexicographic order Computation tree of VarolRotem algorithm on the example poset Position detection on a rotating device with two different labellings The definition of G n A 3cube Towers of Hanoi for n = n = 3: Counting, Gray Code, and Towers of Hanoi A six ring Chinese rings puzzle The Spinout puzzle Multiattribute file storage; Gray and lex order Brun s Brunnian link [Trans],[HTrans],[2Trans](R(6, 3, 1)) NonHamiltonian Adjacent Transposition graph Path in the prism of combs for n = 8 and k = A left or right rotation at node x Example of induced tree (a) Given T [1..n 1] there are 6 places where n could possibly be inserted to get T. (b) The n has been inserted at the position of the double arrow List of trees for n = 2, 3, Recursion Tree (A) for n = 2, 1, Recursion Tree (B) for n = 2, 1, The list (a) Comp(5, 4) (first two columns, read down) and the corresponding list (b) Comb(5, 4) of the elements of B(8, 5) (last two columns) Peaks and valleys The closeness graph G(6, 4) of L(6, 4) The L lists for the special cases in X The M lists for the special cases in Y Gray codes for RG functions n = 1, 2, 3, 4: (a) Knuth list, (b) differing in only one position The lists S(5, 3, 0) and S(5, 3, 1)
18 LIST OF FIGURES xvii 5.26 (a) Poset whose linear extensions correspond to binary trees. (b) Poset whose linear extensions correspond to Young tableau of shape 6,4,4, Poset whose linear extensions correspond to set partitions of type (2,2,2,3,3) A poset and its transposition graph The graph G(P) K Part of a Hamiltonian cycle through G (P) K A Bposet The trace of the calling sequence for the poset of Figure The extension and rotation operations Implicated edges on Hamilton cycles in cubic graphs A monotone Gray code for n = Illustration of the 4cycle construction Three of the four known nonhamiltonian vertextransitive graphs The nonhamiltonian directed Cayley graph Cay({(1 2)(3 4), (1 2 3)}:S 4 ) Hamilton cycles in Cayley graphs over Abelian groups The Cayley graph Cay({(1 2), (2 3), (3 4)}:S 4 ) The Cayley graph Cay({(1 2), (1 3), (1 4)}:S 4 ) Base case listings Example (maximal) domino game Example of finding an Euler cycle in a directed multigraph The six twocolor necklaces with 4 beads Output of the FKM algorithm (read down columns) The De Bruijn graph for k = 2 and n = The LFSR corresponding to the polynomial x 4 + x An unlabelled graph, it s canonic labelling, and it s parent The tree of unlabelled graphs on four vertices Tree of tournaments for n The connected graph K 4 e with edges labelled The spanning trees of K 4 e The tree graph of K 4 e
19 xviii LIST OF FIGURES
20 List of Tables 4.1 The numbers b(s, d) when m = Restricted tail numbers R(n, m) for 1 n + m Binomial coefficients ( n k) for 0 k The numbers T (n, k) = k ( 2n k ) 2n k k for 1 k Stirling numbers of the second kind { n k} for 1 k The number p(n, k) of numerical partitions of n into k parts for 1 k Eulerian numbers for 1 k xix
CMSC 451 Design and Analysis of Computer Algorithms 1
CMSC 4 Design and Analysis of Computer Algorithms David M. Mount Department of Computer Science University of Maryland Fall 003 Copyright, David M. Mount, 004, Dept. of Computer Science, University of
More informationWHEN ARE TWO ALGORITHMS THE SAME?
WHEN ARE TWO ALGORITHMS THE SAME? ANDREAS BLASS, NACHUM DERSHOWITZ, AND YURI GUREVICH Abstract. People usually regard algorithms as more abstract than the programs that implement them. The natural way
More informationThe Gödel Phenomena in Mathematics: A Modern View
Chapter 1 The Gödel Phenomena in Mathematics: A Modern View Avi Wigderson Herbert Maass Professor School of Mathematics Institute for Advanced Study Princeton, New Jersey, USA 1.1 Introduction What are
More informationThe Set Data Model CHAPTER 7. 7.1 What This Chapter Is About
CHAPTER 7 The Set Data Model The set is the most fundamental data model of mathematics. Every concept in mathematics, from trees to real numbers, is expressible as a special kind of set. In this book,
More informationHow many numbers there are?
How many numbers there are? RADEK HONZIK Radek Honzik: Charles University, Department of Logic, Celetná 20, Praha 1, 116 42, Czech Republic radek.honzik@ff.cuni.cz Contents 1 What are numbers 2 1.1 Natural
More informationLimits to Parallel Computation
Limits to Parallel Computation Limits to Parallel Computation: PCompleteness Theory RAYMOND GREENLAW University of New Hampshire H. JAMES HOOVER University of Alberta WALTER L. RUZZO University of Washington
More informationThinking in Parallel: Some Basic DataParallel Algorithms and Techniques
Thinking in Parallel: Some Basic DataParallel Algorithms and Techniques Uzi Vishkin October 12, 2010 Copyright 19922009, Uzi Vishkin. These class notes reflect the theorertical part in the Parallel Algorithms
More informationUnderstanding and Writing Compilers
Understanding and Writing Compilers A doityourself guide Richard Bornat Middlesex University, London. richard@bornat.me.uk First published 1979. Internet edition 2007; corrected 2008. Copyright c 1979,
More informationGroup Theory via Rubik s Cube
Group Theory via Rubik s Cube Tom Davis tomrdavis@earthlink.net http://www.geometer.org ROUGH DRAFT!!! December 6, 2006 Abstract A group is a mathematical object of great importance, but the usual study
More informationProblem solving and program design
Keil and Johnson, C++, 1998 11 Chapter 1 Problem solving and program design 1. Problems, solutions, and ways to express them 2. The branch control structure 3. The loop control structure 4. Modular design
More informationNotes on Computational Group Theory. Alexander Hulpke
Notes on Computational Group Theory Alexander Hulpke Summer 2010 Alexander Hulpke Department of Mathematics Colorado State University 1874 Campus Delivery Fort Collins, CO, 80523 Title graphics: Correct
More informationEvery Good Key Must Be A Model Of The Lock It Opens. (The Conant & Ashby Theorem Revisited)
Every Good Key Must Be A Model Of The Lock It Opens (The Conant & Ashby Theorem Revisited) By Daniel L. Scholten Every Good Key Must Be A Model Of The Lock It Opens Page 2 of 45 Table of Contents Introduction...3
More informationEfficient Algorithms for Sorting and Synchronization Andrew Tridgell
Efficient Algorithms for Sorting and Synchronization Andrew Tridgell A thesis submitted for the degree of Doctor of Philosophy at The Australian National University February 1999 Except where otherwise
More informationA PROBLEMORIENTED LANGUAGE
PROGRAMMING A PROBLEMORIENTED LANGUAGE Charles H. Moore 2 Preface This is an unpublished book I wrote long ago. Just after I'd written the first versions of Forth. Perhaps it explains the motivation behind
More informationHypercomputation: computing more than the Turing machine
Hypercomputation: computing more than the Turing machine Abstract: Toby Ord Department of Philosophy * The University of Melbourne t.ord@pgrad.unimelb.edu.au In this report I provide an introduction to
More informationTaking Place Value Seriously: Arithmetic, Estimation, and Algebra
Taking Place Value Seriously: Arithmetic, Estimation, and Algebra by Roger Howe, Yale University and Susanna S. Epp, DePaul University Introduction and Summary Arithmetic, first of nonnegative integers,
More informationTHE TRAVELING SALESMAN PROBLEM AND ITS VARIATIONS
THE TRAVELING SALESMAN PROBLEM AND ITS VARIATIONS Edited by GREGORY GUTIN Royal Holloway, University of London, UK ABRAHAM PUNNEN University of New Brunswick, St. John, Canada Kluwer Academic Publishers
More informationRobust Set Reconciliation
Robust Set Reconciliation Di Chen 1 Christian Konrad 2 Ke Yi 1 Wei Yu 3 Qin Zhang 4 1 Hong Kong University of Science and Technology, Hong Kong, China 2 Reykjavik University, Reykjavik, Iceland 3 Aarhus
More informationCommunicating Sequential Processes
Communicating Sequential Processes C. A. R. Hoare June 21, 2004 C. A. R. Hoare, 1985 2004 This document is an electronic version of Communicating Sequential Processes, first published in 1985 by Prentice
More informationWhat Every Computer Scientist Should Know About FloatingPoint Arithmetic
What Every Computer Scientist Should Know About FloatingPoint Arithmetic D Note This document is an edited reprint of the paper What Every Computer Scientist Should Know About FloatingPoint Arithmetic,
More informationIEEE TRANSACTIONS ON INFORMATION THEORY 1. The Smallest Grammar Problem
IEEE TRANSACTIONS ON INFORMATION THEORY 1 The Smallest Grammar Problem Moses Charikar, Eric Lehman, April Lehman, Ding Liu, Rina Panigrahy, Manoj Prabhakaran, Amit Sahai, abhi shelat Abstract This paper
More informationMining Data Streams. Chapter 4. 4.1 The Stream Data Model
Chapter 4 Mining Data Streams Most of the algorithms described in this book assume that we are mining a database. That is, all our data is available when and if we want it. In this chapter, we shall make
More informationType Theory & Functional Programming
Type Theory & Functional Programming Simon Thompson Computing Laboratory, University of Kent March 1999 c Simon Thompson, 1999 Not to be reproduced i ii To my parents Preface Constructive Type theory has
More informationAN INTRODUCTION TO CYBERNETICS
By the same author DESIGN FOR A BRAIN AN INTRODUCTION TO CYBERNETICS Copyright 1956, 1999 by The Estate of W. Ross Ashby Non profit reproduction and distribution of this text for educational and research
More informationAn Introduction to Proofs and the Mathematical Vernacular 1
An Introduction to Proofs and the Mathematical Vernacular 1 Martin V. Day Department of Mathematics Virginia Tech Blacksburg, Virginia 24061 http://www.math.vt.edu/people/day/proofsbook Dedicated to the
More informationIntellectual Need and ProblemFree Activity in the Mathematics Classroom
Intellectual Need 1 Intellectual Need and ProblemFree Activity in the Mathematics Classroom Evan Fuller, Jeffrey M. Rabin, Guershon Harel University of California, San Diego Correspondence concerning
More informationBasics of Compiler Design
Basics of Compiler Design Anniversary edition Torben Ægidius Mogensen DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF COPENHAGEN Published through lulu.com. c Torben Ægidius Mogensen 2000 2010 torbenm@diku.dk
More informationA Problem Course in Mathematical Logic Version 1.6. Stefan Bilaniuk
A Problem Course in Mathematical Logic Version 1.6 Stefan Bilaniuk Department of Mathematics Trent University Peterborough, Ontario Canada K9J 7B8 Email address: sbilaniuk@trentu.ca 1991 Mathematics Subject
More informationElementary Topology Problem Textbook. O. Ya. Viro, O. A. Ivanov, N. Yu. Netsvetaev, V. M. Kharlamov
Elementary Topology Problem Textbook O. Ya. Viro, O. A. Ivanov, N. Yu. Netsvetaev, V. M. Kharlamov Dedicated to the memory of Vladimir Abramovich Rokhlin (1919 1984) our teacher Contents Introduction xi
More informationWHICH SCORING RULE MAXIMIZES CONDORCET EFFICIENCY? 1. Introduction
WHICH SCORING RULE MAXIMIZES CONDORCET EFFICIENCY? DAVIDE P. CERVONE, WILLIAM V. GEHRLEIN, AND WILLIAM S. ZWICKER Abstract. Consider an election in which each of the n voters casts a vote consisting of
More information