Two New Combinatorial Problems involving Dominating Sets for Lottery Schemes Werner R Gru?ndlingh Dissertation presented for the degree Doctor of Philosophy at the Department of Applied Mathematics of the University of Stellenbosch, South Africa Promoter: Prof JH van Vuuren Co?promoter: Dr AP Burger December 2004 Declaration I, the undersigned, hereby declare that the work contained in this dissertation is my own original work and that I have not previously in its entirety or in part submitted it at any university for a degree. Signature: Date: Abstract Suppose a lottery scheme consists of randomly selecting an unordered winning n?subset from a universal set of m numbers, while a player participates in the scheme by purchasing a playing set of any number of unordered n?subsets from the same universal set prior to a winning draw, and is awarded a prize if k or more numbers in the winning n?set match those of at least one of the player?s n?sets in his/her playing set (k ? n ? m). Such a prize is called a k?prize. A player may wish to construct a smallest playing set for which he/she is at least 100?% sure of winning a k?prize (0 < ? ? 1). From a dif- ferent perspective, a player may wish to construct a playing set of specified cardinality in such a way that the probability of winning a k?prize is maximised, regardless of the winning n?set. These situa- tions lead to the following two related combinatorial problems: (i) the incomplete lottery problem and (ii) the resource utilisation problem. The questions posed in these problems are: (i) What is the smallest possible cardinality of a playing set for which the probability of winning a k?prize is at least ?? and (ii) What is the largest possible probability of winning a k?prize via a playing set of specified cardinality `? The answers to these two questions are given by the so?called incomplete lottery and resource util- isation numbers, L?(m,n; k) and ?`(m,n; k), respectively. The well?known complete lottery problem, which asks for a 100% guarantee of winning a k?prize, is a special case of the incomplete lottery problem, namely where ? = 1. However, both the incomplete lottery and resource utilisation problems constitute novel contributions of this dissertation to the combinatorial literature that may be of greater practical interest than their theoretical counterpart, the complete lottery problem, which appears for the first time in the literature in 1964. The incomplete lottery and resource utilisation problems are presented as combinatorial optimisation problems and translated to within the realm of graph theory, introducing the notion of a so?called lottery graph. From this background, both analytic and algorithmic arguments are used to establish bounds on incomplete lottery and resource utilisation numbers. New, small (in)complete lottery and resource utilisation numbers are also found. A technique for characterising overlapping structures of optimal solutions to both problems is developed. This technique is then used to determine the number, ??(m,n; k) [??`(m,n; k), respectively], of structurally different optimal solutions to the incomplete lottery problem[resource utilisation problem, respectively]. Various characteristics of the sequences ??(m,n; k), for variations in the arguments ?, m, n and k, are also uncovered. Although both the above combinatorial optimisation problems are far from being resolved completely, the reader is provided with an impression of the underlying problem complexity within the scope of this dissertation. More specifically, the broad aims of this dissertation are threefold: first to develop a structured, efficient solution methodology for establishing solution bounds to the above two hard combi- natorial problems, secondly to contribute toward optimal solutions of small instances of the problems and thirdly to contribute toward characterising optimal solutions to both problems, in terms of overlapping structure. Opsomming Gestel ?n lotery bestaan uit die lukrake seleksie van ?n ongeordende wen n?tal uit ?n universele ver- sameling van m getalle, terwyl spelers aan die lotery deelneem deur ?n spel?versameling van enige aantal ongeordende n?talle uit dieselfde universele versameling voor die wentrekking te kies. ?n Prys word aan ?n speler toegeken indien k of meer getalle in die wen n?tal ooreenstem met minstens een van die speler se n?talle in sy/haar spel?versameling (k ? n ? m). Na so? ?n prys word verwys as ?n k?prys. ?n Speler mag ten doel he? om ?n minimale grootte spel?versameling te konstrueer sodat hy/sy ?n k?prys met ?n waarskynlikheid van minstens 100?% sal wen, ongeag watter wen n?tal getrek word (0 < ? ? 1). Alter- natiewelik mag ?n speler poog om ?n spel?versameling van gespesifiseerde kardinaliteit so? te konstrueer dat die kans om ?n k?prys te wen, gemaksimeer word, ongeag die waardes in die wen n?tal. Hierdie situ- asies het die volgende twee verwante kombinatoriese optimeringsprobleme tot gevolg: (i) die onvolledige lotery?probleem en (ii) die hulpbron?benuttingsprobleem. Die vrae wat in die onderskeie probleme gestel word, is: (i) Wat is die kleinste kardinaliteit van ?n spel?versameling wat, met ?n waarskynlikheid van minstens ?, aan ?n speler ?n k?prys sal waarborg? en (ii) Wat is die grootste kans om ?n k?prys te wen, deur gebruikmaking van ?n spel?versameling van gespesifiseerde kardinaliteit `? Die antwoorde op hierdie vrae word deur die sogenaamde onvolledige lotery? en hulpbron?benuttingsgetalle, L?(m,n; k) en ?`(m,n; k), onderskeidelik aangedui. Die bekende volledige lotery?probleem, waarin om ?n 100% waarborg van ?n k?prys gevra word, is ?n spesiale geval van die onvolledige lotery?probleem, en wel waar ? = 1. Beide die onvolledige lotery? en hulpbron?benuttingsprobleem is egter nuwe toevoegings tot die kombinatoriese literatuur oor loterye, wat moontlik groter praktiese belangstelling as die (teoretiese) volledige lotery?probleem, wat vir die eerste keer in 1964 in die literatuur verskyn, sou kon ontlok. Die onvolledige lotery? en hulpbron?benuttingsprobleme word formeel as kombinatoriese optimeringspro- bleme gedefinieer en spesifiek vanuit ?n grafiekteoretiese oogpunt ondersoek, deur middel van die invoering van ?n sogenaamde lotery?grafiek. Beide analitiese sowel as algoritmiese grafiekteoretiese argumente word gebruik om grense op die onvolledige lotery? en hulpbron?benuttingsgetalle daar te stel. Nuwe, klein (on)volledige lotery? en hulpborn?benuttingsgetalle word ook gevind. ?n Tegniek om oorvleuelingstruk- ture van optimale oplossings tot beide probleme te karakteriseer, word ontwikkel. Met hierdie tegniek kan die aantal, ??(m,n; k) [??`(m,n; k), respektiewelik], struktureel verskillende optimale oplossings tot die onvolledige lotery?probleem [hulpbron?benuttingsprobleem, respektiewelik] bepaal word. Verskeie eienskappe van die rye ??(m,n; k), vir variasies in die argumente ?, m, n en k, word ook ondersoek. Beide kombinatoriese optimeringsprobleme is ve?r van volledig opgelos, maar daar word binne die omvang van hierdie proefskrif gepoog om die onderliggende kompleksiteite van die probleme bloot te le?. Meer spesifiek, die bree? doelstelling in hierdie proefskrif is drieledig, naamlik om eerstens ?n gestruktureerde, doeltreffende metodologie vir die konstruksie van oplossingsgrense vir hierdie moeilike kombinatoriese probleme daar te stel, om tweedens bydraes in terme van eksakte oplossings vir klein gevalle van die probleme te maak en om derdens die oorvleuelingstrukture van optimale oplossings tot beide probleme te karakteriseer. Terms of Reference This dissertation forms part of a larger project at the University of Stellenbosch devoted to the lottery problem, which appears for the first time in the combinatorial literature during the early 1960s. The novel contribution of the approach taken in this project is that the lottery problem is viewed within a graph theoretic domination context, whereas traditional approaches to this problem are usually launched from a combinatorial design theory platform. The project was initiated with an inquiry by Prof Dirk Laurie (Department of Mathematics, University of Stellenbosch) on the 9th of June 2000. Dr Alewyn Burger (School of Mathematics and Statistics, University of Victoria) and Prof Jan van Vuuren (Department of Applied Mathematics, University of Stellenbosch) started working on this project in September 2000. At the time of writing, Dr Burger and Prof Van Vuuren had been involved in the development of both analytic and algorithmic bounds for four?parameter complete lottery numbers, utilising a wide range of mathematical tools from graph domination theory to combinatorial designs. This dissertation builds on some of their ideas and makes a number of novel contributions, most notably the introduction and subsequent study of the incomplete context for the lottery problem, as well as that of the resource utilisation problem, a problem closely related to the lottery problem. New, small (in)complete lottery and resource utilisation numbers may be found in this dissertation. A method of characterising overlapping structures of optimal solutions to both problems is also included. Another important contribution of this dissertation toward the greater lottery project is the computerised implementation of a number of heuristics, used to obtain lower and upper bounds on respectively resource utilisation and incomplete lottery numbers. Prof Van Vuuren was the promoter for this dissertation, while Dr Burger acted as co?promoter. The computing facilities of the Departments of Applied Mathematics, Electrical & Electronic Engineering and Computer Science at Stellenbosch University (South Africa), as well as the Departments of Mathematics & Statistics and Mechanical Engineering at the University of Victoria (Canada) were used in parallel during numerical investigations contained in this dissertation. Work on the current dissertation was commenced in February 2001 in the form of an MSc thesis, which was upgraded to a PhD dissertation in March 2003 and was completed in December 2004. The larger lottery problem project at the University of Stellenbosch supersedes both the scope and completion date of this dissertation. Acknowledgements Nearly four years ago, a choice was made culminating in this dissertation. The author hereby wishes to personally express his gratitude towards ? the Departments of Applied Mathematics, Electrical & Electronic Engineering and Computer Sci- ence of the University of Stellenbosch (South Africa), for the use of their computing facilites; ? the Departments of Mathematics & Statistics and Mechanical Engineering of the University of Victoria (Canada), for the use of their computing facilities and for receiving the author as an international visiting student during the period 5 January ? 6 November 2004; ? prof JH van Vuuren, for his insight, patience and diligence throughout. It was a truly great pleasure working on a project such as this, utilising all his available academic and intuitive resources; ? dr AP Burger, for his skill on the technical side of this dissertation, the verification of some computer results and his broad ability to ?see things?; ? proff EJ Cockayne and CM Mynhardt (of the Department of Mathematics & Statistics, University of Victoria) and dr W Myrvold (of the Department of Computer Science, University of Victoria) for the time they spent with the author when adding the finishing touches to this dissertation; and ? friends and family, for their support, comfort and enthusiasm when late nights became early morn- ings (if at all). This dissertation is based upon work supported by the South African National Research Foundation (NRF) under grant number GUN 2053755. Additionally, the financial assistance of the National De- partment of Labour (DoL) towards this research is hereby acknowledged. Any opinions, findings and conclusions or recommendations expressed in this dissertation are those of the author and do not neces- sarily reflect the views of the NRF or the DoL. Financial assistance contributing towards this research project was also granted by the Post?graduate Bursary Office and Research Sub?Committee B of the University of Stellenbosch, the Harry Crossley Foundation and the Wilhelm Frank Stipendium Trust. Table of Contents List of Figures v List of Tables vii List of Algorithms ix Glossary xi Translation of Terminology (Afrikaans) xix List of Reserved Symbols xxiii 1 Introduction 1 1.1 Historical background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problem descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Literature on the lottery, packing and covering problems . . . . . . . . . . . . . . . . . . . 7 1.3.1 Complete lottery numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2 Packing and covering numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4 Scope and objectives of this dissertation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 Preview of dissertation layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Properties of L?(m,n; k) and ?`(m,n; k) 13 2.1 Boundedness of L?(m,n; k) and ?`(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Growth properties of L?(m,n; k) and ?`(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Explicit values for L?(m,n; k) and ?`(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 Binary programming solution approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 The Lottery Graph 25 3.1 Fundamentals from graph and complexity theory . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 Definition and properties of the lottery graph . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Symmetric representation of the lottery graph . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4 Analysis of small lotteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 i ii Table of Contents 3.5 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4 Analytic bounds 51 4.1 Graph theoretic bounds on L?(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.1.1 Lower bounds on L1(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.1.2 Upper bounds on L?(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.2 Other bounds on L?(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.1 Lower bounds on L1(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.2 Upper bounds on L?(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3 Comparison of analytic bounds on L1(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5 Algorithmic bounds 61 5.1 Classical random algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.2 Distributed random algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.3 Minimal overlapping algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.4 Neighbourhood removal algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.5 Tabu search algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.6 Genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.6.1 Classical genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.6.2 Intelligent genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.7 Comparison of algorithms for small lotteries . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.8 Comparison of algorithms for larger lotteries . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.8.1 The lottery class ?m, 5; 2? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.8.2 The lottery ?49, 6; 3? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.9 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6 Optimal solution characterisations 87 6.1 Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures . . . . . . . . . . . . . . . . . 87 6.1.1 Lottery tree method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.1.2 nauty tree method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.2 General properties of the parameter ??(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . 98 6.3 Analysis of small lotteries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.4 New complete lottery numbers and improved bounds . . . . . . . . . . . . . . . . . . . . . 107 6.5 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7 Conclusions 127 7.1 Dissertation summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.2 Possible future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Table of Contents iii References 137 Appendices 150 A Computer programs 151 A.1 Classical random algorithm (Algorithm 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 A.2 Distributed random algorithm (Algorithm 3) . . . . . . . . . . . . . . . . . . . . . . . . . 153 A.3 Minimal overlapping algorithm (Algorithm 4) . . . . . . . . . . . . . . . . . . . . . . . . . 155 A.4 Neighbourhood removal algorithm (Algorithm 5) . . . . . . . . . . . . . . . . . . . . . . . 159 A.5 Tabu search algorithm (Algorithm 6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 A.6 Classical genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 A.7 Intelligent genetic algorithm (Algorithm 7) . . . . . . . . . . . . . . . . . . . . . . . . . . 167 A.8 L?(m,n; k)?set characterisation algorithm (Algorithm 8) . . . . . . . . . . . . . . . . . . . 172 B Best Internet bounds on L1(m,n; k) 179 C Optimal ~X(`)?vector encodings 183 iv Table of Contents List of Figures 2.1 Graphical representation of counting argument in Lemma 2.2 . . . . . . . . . . . . . . . . 17 2.2 Qualitative schematic representation of F(`) when determining L?(m,n; 1) . . . . . . . . 20 3.1 Examples of basic graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2 Two isomorphic graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3 A vertex?transitive 3?regular graph and a non vertex?transitive 3?regular graph . . . . . 28 3.4 The lottery graph G?7, 3; 2? (Example 3.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.5 Vertex?induced subgraphs of G?7, 3; 2? dominated by {1, 5, 7} and {3, 4, 6} . . . . . . . . . 33 3.6 Argument for determining which G?m,n; k? is strongly regular . . . . . . . . . . . . . . . 34 3.7 Complete lottery set structures for ?14, 6; 3? (Example 3.2) . . . . . . . . . . . . . . . . . . 36 3.8 Graphical representation of counting argument in Lemma 3.1 . . . . . . . . . . . . . . . . 38 3.9 Vertex generators and lottery graph for ?5, 3; 2? (Example 3.3) . . . . . . . . . . . . . . . 41 3.10 Symmetric graph represention of G?7, 3; 2? . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.11 Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 . . . . . . . . . . . . . . . 48 5.1 Lower bound on the resource utilisation ?100(20, 4; 3) of Algorithm 2 . . . . . . . . . . . . 63 5.2 Lower bound on the resource utilisation ?100(20, 4; 3) of Algorithm 3 . . . . . . . . . . . . 65 5.3 Lower bound on the resource utilisation ?100(20, 4; 3) of Algorithm 4 . . . . . . . . . . . . 67 5.4 Step?by?step analysis of Algorithm 5 as applied to ?8, 3; 2? . . . . . . . . . . . . . . . . . 68 5.5 Three defined moves for the tabu search algorithm (Shift, Flip and Swap) . . . . . . . . . 72 5.6 Lower bound on the resource utilisation ?100(20, 4; 3) of Algorithm 6 . . . . . . . . . . . . 74 5.7 Typical structure of an evolution program . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.8 Crossover and mutation procedures of genetic algorithm . . . . . . . . . . . . . . . . . . . 77 5.9 Influence on resource utilisation due to genetic algorithm parameter variation . . . . . . . 83 5.10 Lower bounds on the resource utilisation ?`(49, 6; 3) using Algorithms 2?4 . . . . . . . . . 85 6.1 Complete lottery tree and domination test for the lottery ?5, 3; 2? . . . . . . . . . . . . . . 90 6.2 Fragmented lottery tree for ?7, 3; 2? (Example 6.2) . . . . . . . . . . . . . . . . . . . . . . 91 6.3 Partial lottery tree for ?14, 6; 3? (Example 6.5) . . . . . . . . . . . . . . . . . . . . . . . . 94 6.4 Algorithmic statistics for and characterisations of L1(m, 6; 3)?sets (Example 6.6) . . . . . 96 6.5 Graphical representation of L?(m,n; k)?sets for use with nauty . . . . . . . . . . . . . . . 97 v vi List of Figures 6.6 Fragmented nauty tree for ?7, 3; 2? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.7 The resource utilisation characterisation number ??(15, 6; 3) as a function of 0.4 ? ? ? 1 . 101 6.8 Values of ?1(m, 6; k) and L1(m, 6; k) for 6 ? m ? 35 and k = 1, 2 . . . . . . . . . . . . . . 102 6.9 All ??(m,n; k) L?(m,n; k)?set structure characterisations for 1 ? k < n < m ? 10 . . . . 111 7.1 Ticket efficiency parameter E`(m,n; k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.2 Example of determining G?5, 2; 1?? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 List of Tables 1.1 Typical parameters for lotteries around the world . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 The class of complete lottery numbers L1(m, 6; 2) . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Bounds on complete lottery numbers of the form L1(m, 6; 3) . . . . . . . . . . . . . . . . . 8 1.4 The class of covering numbers C(m, 5; 2) where m ? 27 . . . . . . . . . . . . . . . . . . . 10 2.1 Binary programming approach toward the complete and incomplete lottery problems . . . 22 2.2 The number of formulations to be solved to uniquely determine L?(m,n; k) with (2.11) . 23 3.1 Complete lottery numbers, L1(m,n; k), for ?m,n; k?, 1 ? k ? n ? m ? 10 . . . . . . . . . 49 4.1 Known L1(m,n; k) and analytic bounds on L1(m,n; k), 1 ? k ? n ? 6 and 3 ? m ? 50 . . 57 4.2 Analytic bounds on the complete lottery number L1(m, 6; 3) for all 6 ? m ? 50 . . . . . . 59 5.1 Step?by?step anaylsis of Algorithm 5 on ?20, 4; 3? . . . . . . . . . . . . . . . . . . . . . . . 70 5.2 Resource utilisation ?`(m,n; k) for ?m,n; k?, 1 ? k < n < m ? 10 and 2 ? ` ? L1(m,n; k) 80 5.3 Comparitive bounds on L1(m, 5; 2), determined by Algorithms 2?7, where 5 ? m ? 30 . . 84 6.1 All structurally different ??(7, 3; 2) L?(7, 3; 2)?sets (0 < ? ? 1) for ?7, 3; 2? . . . . . . . . . 92 6.2 Alternative approach toward determining winning probabilities of ~X(2) for ?5, 3; 2? . . . . 93 6.3 Values for ?`(m,n) for 3 ? ` ? 5, 4 ? m ? 20 and 3 ? n ? 12 . . . . . . . . . . . . . . . . 105 6.4 Values of (100?`(m,n; 2), ??`(m,n; 2)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.5 Values of (100?`(m,n; 3), ??`(m,n; 3)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.6 Values of (100?`(m,n; 4), ??`(m,n; 4)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.7 Improved bounds on and exact values for L1(m,n; k) in lotteries ?m,n; k? . . . . . . . . . 124 6.8 Lottery characterisation numbers ?1(m,n; k) for ?m,n; k?, 1 ? k ? n ? m ? 10 . . . . . . 125 7.1 Lottery graph core G?m,n; k?? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 B.1 Playing and lottery set for ?49, 6; 3? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 B.2 Known L1(m,n; k) and best known bounds on L1(m,n; k) . . . . . . . . . . . . . . . . . . 180 B.3 Best bounds on the lottery number L1(m, 6; 3) for all 6 ? m ? 50 . . . . . . . . . . . . . . 182 vii viii List of Tables List of Algorithms 1 Symmetric representation algorithm for G?m,n; k? . . . . . . . . . . . . . . . . . . . . . . 39 2 Classical random algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3 Distributed random algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4 Minimal overlapping algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5 Neighbourhood removal algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6 Tabu search algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7 (Classical/intelligent) Genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 8 L?(m,n; k)?set characterisation algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ix x List of Algorithms Glossary 100(1? ?)%?incomplete lottery set A playing set that dominates at least 100?% of the vertices of a lottery graph. 100?%?partially dominating set A vertex subset of minimum cardinality of a graph that dominates at least 100?% of the graph vertices. adjacency matrix A p? p matrix associated with a graph G of order p, where the matrix element aij takes the value 1 if vertex i is adjacent to vertex j and the value 0 otherwise. All diagonal entries are ones, by (a non?standard) convention. acyclic graph A graph without cycles. adjacent Said of two vertices of a graph if they are joined by an edge. algorithm An ordered sequence of procedural operations for solving a problem within a finite number of steps. aspiration criterion A rule incorporated in a tabu search approach towards solving a combinatorial optimisation problem approximately, whereby the tabu status of a neighbouring move is overridden if the resulting trial solution is better than the best solution obtained thus far. asymptotic Said of a bound on a function that is valid for all values of the function argument greater than some fixed value. automorphism An isomorphism of graph onto itself. Such an isomorphism is a permutation of the vertex set, which preserves adjacency. automorphism group The group of all automorphisms of a graph. basic operation A single (binary) operation, performed by the central processing unit of a computer. binary programming problem An integer programming problem with the additional constraint that the decision variables may only take binary values (0 or 1). block design A 6?tuple (v, l, t, s, ?, b), consisting of a carefully selected subset of b l?subsets from v combinatorial elements (also called varieties) which ensures the existence of a minimum of at least ? l?subsets containing a t?subset match with any s?subset from the v elements. branch?and?bound An exact optimisation method consisting of exhaustive tree search enumeration of the solution space to an integer optimisation problem by means of relaxations of the problem. Branching occurs iteratively on non?integer solution components of relaxation subproblems and bounding occurs when it becomes apparent that a subtree cannot contain an optimal solution. candidate list strategy A protocol whereby a proportion/subset of the possible neighbouring moves are considered when making a choice with respect to the next trial solution in a tabu search approach towards solving a combinatorial optimisation problem approximately. cardinality The number of elements in a set. xi xii Glossary central processing unit The hardware component of a computer in which all basic operations are performed during computations (abbr. CPU). chromosome The individuals in a population of candidate solutions to a combinatorial optimisation problem in a genetic algorithmic approach toward solving the problem approximately. class NP Acronym for Non?deterministic Polynomial. The set of all decision problems which may be answered ?yes? by a polynomial time algorithm, given additional information (called a certificate to the problem instance at hand). class NP?complete The set of all NP?complete decision problems. class P Acronym for Polynomial. The set of all decision problems that may be solved by a polynomial time algorithm. combinatorial matrix of type (m,n) A matrix that has (m n ) rows and columns, indexed by the n? element subsets of an m?element universal set. The matrix entry in row u and column v should depend only on the cardinality of |u ? v|. complement A graph (denoted G) accociated with a given graph G whose vertex set is V (G) = V (G) and which contains an edge if and only if the edge is not an edge of G. complete graph A graph of order p that is (p? 1)?regular. complete lottery number The minimum cardinality of a complete lottery set. complete lottery set A playing set for the lottery ?m,n; k? consisting of n?subsets from an m?element universal set, which contains a member with at least k elements in common with any chosen winning n?subset. component A maximally connected subgraph of a given graph. connected Said of a graph G if there exists a u?v path for every vertex pair u, v ? V (G). core A graph G for which any homomorphism from G onto itself is necessarily a bijection. covering number The minimum cardinality of a covering set for a lottery. covering set A set C associated with the lottery ?m,n; k? consisting of n?subsets from an m?element universal set with the property that every k?subset of the universal set of elements is contained in some element of C. crossover The procedure (specific to a genetic algorithm) in which two (parent) chromosomes are paired and subsequently used to generate offspring. cycle A walk of length n ? 3 with the property that the first and last vertices are the same and no other (internal) vertices are repeated. decision problem A problem that may be interpreted as a binary question, which may be answered either ?yes? or ?no.? decision variable An indeterminate variable quantity in an integer programming problem. degree The number of vertices adjacent to a vertex in a graph. density The ratio between the size of a graph and the size of a complete graph of the same order. diameter The maximum eccentricity of a vertex in a graph. disconnected Said of a graph that is not connected. disjoint Said of two sets if their intersection is empty. distance (between two vertices u and v in a graph) The minimum length, of all u?v paths in a graph, if any such paths exist. If no u?v path exists, then the distance between u and v is taken as infinite. Glossary xiii diversification strategy A search protocol (typically employed by heuristic optimisation techniques) whereby new areas of the solution space of a combinatorial optimisation problem are explored. (lower) domination number The minimum cardinality of a minimal dominating set of a graph. dominated A vertex u in a graph G is dominated by a vertex v in G if u and v are adjacent (or the same). A vertex u is said to be dominated by a vertex subset D ? V (G) if u is dominated by some vertex v ? D. The graph G is said to be dominated by a vertex subset D ? V (G) if every vertex in G is dominated by D. dominating set A vertex subset D ? V (G) of a graph G with the property that every vertex of G is either an element of D, or adjacent to an element of D (or both). Also sometimes called a domination set. G is sometimes said to be dominated by D. domination test The test performed on the last level of the lottery tree in order to determine which of the nodes on the penultimate level of the lottery tree constitute incomplete lottery sets of minimum cardinality. eccentricity The distance from a vertex v in a graph G to a vertex in G furthest from v. efficient Said of a polynomial time algorithm. edge The elements of the edge set of a graph. edge set A (possibly empty) finite set of two?element subsets of the vertex set of a graph. edge?transitive Said of a graph G if, for all edges e, f ? E(G), there exists an automorphism that maps the endpoints of e to the endpoints of f (in either order). exact Said of an optimisation technique that is guaranteed to find an optimal solution to a combinatorial optimisation problem. gene An attribute of a feasible or candidate solution in a genetic algorithmic approach toward solving a combinatorial optimisation problem approximately. gene pool The collection of all genes in a genetic algorithmic toward solving a combinatorial optimisa- tion problem approximately. generation The set or population of candidate solutions at any time step in a genetic algorithmic approach toward solving a combinatorial optimisation problem approximately. genetic algorithm A heuristic optimisation technique designed with the intention of simulating the nat- ural process of biological evolution when attempting to solve a combinatorial optimisation problem approximately. girth The length of a shortest cycle in a graph. If no cycles exist in the graph, the girth is taken as infinite, by convention. graph A combinatorial object G = (V,E) consisting of a non?empty, finite set V of combinatorial objects called vertices as well as a (possibly empty) finite set E of two?element subsets of V , called edges. group A set W , along with a binary operator ? for which ? is associative over the elements of W , for which W is closed with respect to the application of ?, for which there is an identity element for ? in W , and for which each element in W has an inverse under ?. heuristic Said of an optimisation technique that is not necessarily exact. homomorphism A mapping f from a vertex set of a graph G = (V,E) to a vertex set of a graph H = (V ?, E?) such that for each edge uv ? E, f(u)f(v) ? E ?. incomplete lottery characterisation number The number of structurally different optimal solu- tions to the incomplete lottery problem. xiv Glossary incomplete lottery number The minimum cardinality of a 100(1? ?)%?incomplete lottery set. (vertex) independence number The maximum cardinality of a maximal independent set of a graph. (vertex) independent set A vertex subset of a graph containing no adjacent vertex pairs. integer programming problem A linear programming problem with the additional constraint that the decision variables may only take integer values. intensification strategy A search protocol (typically employed by heuristic optimisation techniques) that exploits those good solutions obtained during the search, by intensifying the local search around their respective neighbourhoods in the solution space of a combinatorial optimisation prob- lem. intractable Said of a decision problem for which no polynomial time algorithm is known. isolated Said of a vertex with degree zero. isomorphic Said of two graphs between which there exists an isomorphism. isomorphism A bijection between the vertex sets of two graphs that preserves adjacency. jackpot The maximum prize that is awarded in a lottery. joined Said of two vertices that are adjacent. k?prize The prize awarded in the lottery ?m,n; k? if there is at least one n?subset from an m?element universal set in the participant?s playing set coinciding in at least k elements with the winning draw. length The number of edges contained in a cycle, path or walk. linear programming problem A mathematical programming problem in which the objective is to optimise some linear function of indeterminate variables, subject to a set of linear constraints (defining a feasible domain for the problem). loop An edge in a pseudograph that joins a vertex to itself. lottery A procedure (denoted by ?m,n; k?) of randomly selecting (without replacement) a winning n? subset w from a universal set Um and awarding a k?prize to a participant if he/she has a playing set that contains an n?subset coinciding with w in at least k elements. lottery graph A graph associated with the lottery ?m,n; k? whose vertices represent n?subsets of an m?element universal set, in which two vertices are adjacent if their corresponding vertex labels share a common k?subset. lottery tree A search tree associated with the lottery ?m,n; k? containing all structurally different n? subset overlapping structures of cardinality i from an m?element universal set on level i of the tree. L1(m,n; k)?set A complete lottery set of minimum cardinality for the lottery ?m,n; k?. L?(m,n; k)?set A 100(1??)%?incomplete lottery set of minimum cardinality for the lottery ?m,n; k?. maximal independent set An independent set of a graph with the property that no proper superset is an independent set of the graph. minimal dominating set A dominating set of a graph with the property that no proper subset is a dominating set of the graph. minimal 100?%?partially dominating set A 100?%?partially dominating set of a graph with the property that no proper subset is a 100?%?partially dominating set of the graph. minimum [maximum] degree The minimum [maximum] of all vertex degrees of a graph. Glossary xv minimum dominating set A minimal dominating set of minimum cardinality. minimum 100?%?partially dominating set A minimal 100?%?partially dominating set of mini- mum cardinality. multigraph A graph with more than one edge between some pair of vertices. multiplicity The number of playing sets in the lottery ?m,n; k? that conforms to the same n?set over- lapping structure. mutate The diversification strategy specific to a genetic algorithm whereby a solution candidate to a combinatorial optimisation problem is perturbed away from its current position in solution space. nauty graph A graph associated with a lottery representing the overlapping structure of a playing set in the lottery. nauty tree A search tree consisting of i levels that represent all non?isomorphic nauty graphs of order i for that lottery. (open) [(closed)] neighbourhood set The set of all vertices adjacent to a given vertex v in a graph [including v itself]. neighbouring move The set of all trial solutions that may be reached from a given candidate solution by means of a single solution structure modification in a tabu search approach towards solving a combinatorial optimisation problem approximately. Also called the solution neighbourhood. NP?complete Said of a decision problem A in the class NP satisfying A?  A for all A? in the class NP. objective function A real function of indeterminate variables in an optimisation problem that is to be maximised/minimised, possibly subject to a collection of constraints on the indeterminate variables. operating system The software that controls the execution of computer programs (abbr. OS). order The number of vertices of a graph. overlapping structure A complete specification (in terms of the inclusion?exclusion principle) of el- ements of an m?element universal set shared by members of a given playing set in the lottery ?m,n; k?. packing number The maximum cardinality of a packing set for a lottery. packing set A set P associated with the lottery ?m,n; k? consisting of n?subsets from an m?element universal set with the property that no k?subset of the universal set is common to any two elements of P . path A walk in a graph with the property that no vertex is repeated. parallel edges Two or more edges in a multigraph that join the same vertex pair. (lower) partial domination number The minimum cardinality of a minimal 100?%?partial domi- nating set. playing set A set associated with the lottery ?m,n; k?, consisting of a number of n?subsets from an m?element universal set. polynomial time Said of an algorithm whose worst case complexity is a polynomial function of its input size. population A collection of chromosomes in a genetic algorithmic approach toward solving a combinato- rial optimisation problem approximately. Sometimes also referred to as a generation of candidates. pseudocode An algorithm written independently of any implemented computer programming language, using common or natural language. xvi Glossary pseudograph A graph containing loops and/or parallel edges. ?`(m,n; k)?set A playing set in the lottery ?m,n; k? of cardinality ` that yields a maximum resource utilisation. radius The minimum of all eccentricities of vertices in a graph. regular Said of a graph if the degrees of all vertices are the same (r, say, in which case the graph is said to be r?regular). resource utilised The ratio between the number of vertices of the lottery graph dominated by a playing set in the lottery and the lottery graph order. resource utilisation number The maximum resource utilised by a playing set of given cardinality. size The number of edges in a graph. space complexity The amount of (computer) memory expended by an algorithm, as a function of input size of an algorithm. spanning subgraph A subgraph H = (V ?, E?) of a graph G = (V,E) with the properties that V ? = V and E? ? E. spanning tree A spanning subgraph of a given graph that is also a tree. Steiner system A playing set in the lottery ?m,n; k? with the property that any k?subset of an m? element universal set appears in exactly one of the members of the playing set. strongly regular (with parameters (p, r, a, c)) Said of an r?regular, order p graph for which every pair of adjacent [non?adjacent] vertices share a [c] common neighbouring vertices. subgraph A graph H = (V ?, E?) associated with a graph G = (V,E) with the property that V ? ? V and E? ? E. tabu list One (or more) list(s) containing information about recent choices with respect to neighbouring moves in a tabu search approach towards solving a combinatorial optimisation problem approxi- mately. tabu search A heuristic optimisation technique which is based on designing and exploiting adaptive memory structures to determine iteratively locally optimal solutions to a combinatorial optimisation problem. tabu status The status given to a specific trial solution contained in a tabu list when using a tabu search approach towards solving a combinatorial optimisation problem approximately. tabu tenure The length of a tabu list. ticket efficiency parameter The difference between the resource utilisation number of a playing set of given cardinality ` less the resource utilisation number of a playing set of cardinality `? 1. time complexity An estimate of the number of basic operations performed by an algorithm as a func- tion of its input size. tractable Said of a decision problem that may be solved by a polynomial time algorithm. tree A connected, acyclic graph. trial solution A (not necessarily optimal) solution to a combinatorial optimisation problem that usually forms part of an iterative step in a heuristic optimisation technique. universal set The set of integers {1, . . . ,m} in the lottery ?m,n; k?. vertex A combinatorial object in terms of which the vertex set and edge set of a graph is defined. Glossary xvii vertex?induced subgraph A subgraph H = (V ?, E?) of a graph G = (V,E) with the properties that V ? ? V and uv ? E? if uv ? E for all vertex pairs u, v ? V ?. vertex set A non?empty, finite set containing the vertices of a graph. vertex?transitive Said of a graph if, for which all vertex pairs u, v, there exists an automorphism that maps u to v. walk An alternating sequence of vertices and edges WG : v1, e1, v2, e2, . . . , vn?1, en?1, vn in a graph G where vi ? V (G) and ei = vivi+1 ? E(G) for all i = 1, . . . , n? 1, both beginning and ending in a vertex. winning draw A (unordered) random selection of n elements (without replacement) from anm?element universal set in the lottery ?m,n; k?. worst case complexity A (possibly asymptotic) upper bound on the space [time] complexity of an algorithm. xviii Glossary Translation of Terminology English Afrikaans 100(1? ?)%?incomplete lottery set 100(1? ?)%?onvolledige lotery?versameling 100?%?partially dominated 100?%?gedeeltelik gedomineer 100?%?partially dominating set 100?%?gedeeltelike dominasieversameling adjacency matrix naasliggendheidsmatriks acyclic graph asikliese grafiek adjacent naasliggend algorithm algoritme aspiration criterion doelwitree?l asymptotic asimptoties automorphism outomorfisme automorphism group outomorfismegroep basic operation basiese berekening binary programming problem bine?re programmeringsprobleem block design blokontwerp branch?and?bound vertak?en?begrens candidate list strategies kandidaatoplossing seleksiestrategie cardinality kardinaliteit central processing unit (CPU) sentrale verwerkingseenheid (SVE) chromosome chromosoom class NP klas NP class NP?complete klas NP?volledig class P klas P combinatorial matrix of type (m,n) kombinatoriese matriks van tipe (m,n) complement komplement complete graph volledige grafiek complete lottery number volledige lotery?getal complete lottery set volledige lotery?versameling component komponent connected samehangend core bron covering number oordekkingsgetal covering set oordekkingsversameling crossover oorgang, voortplanting cycle siklus decision problem beslissingsprobleem decision variable beslissingsveranderlike degree graad density digtheid diameter deursnee, deursnit disconnected onsamehangend disjoint disjunk distance afstand diversification strategy diversifikasie strategie xix xx Translation of Terminology English Afrikaans (lower) domination number (laer) dominasiegetal dominated gedomineer dominating/domination set dominasieversameling domination test dominasietoets eccentricity eksentrisiteit efficient doeltreffent edge lyn edge set lyn?versameling edge transitive lyn?transitief exact eksak gene geen gene pool genepoel generation generasie, geslag genetic algorithm genetiese algoritme girth wydte graph grafiek group groep heuristic heuristiek homomorphism homomorfisme incomplete lottery characterisation onvolledige lotery karakteriseringsgetal number incomplete lottery number onvolledige lotery?getal incomplete lottery set onvolledige lotery?versameling (vertex) independence number (punt?) onafhanklikheidsgetal (vertex) independent set onafhanklike (punt?) versameling integer programming problem heeltallige programmeringsprobleem intensification strategy lokaliseringstrategie intractable moeilik?oplosbaar isolated ge??soleerd isomorphic isomorf isomorphism isomorfisme jackpot boerpot joined verbind jump sequence sprong?ry k?prize k?prys length lengte linear programming problem linee?re programmeringsprobleem loop lus lottery lotery lottery graph lotery?grafiek lottery tree lotery?soekboom L1(m,n; k)?set L1(m,n; k)?versameling L?(m,n; k)?set L?(m,n; k)?versameling maximal (vertex) independent set maksimaal onafhanklike (punt?) versameling minimal dominating set minimale dominasieversameling minimal 100?%?partially dominating set minimale 100?%?gedeeltelik dominasieversame- ling minimum [maximum] degree minimum [maksimum] graad minimum dominating set (minimale) dominasieversameling van minimum kardinaliteit minimum 100?%?partially dominating set (minimale) 100?%?gedeeltelike dominasieversa- meling van minimum kardinaliteit mulitgraph multigrafiek multiplicity multiplisiteit mutate/mutation muteer/mutasie nauty graph nauty?grafiek Translation of Terminology xxi English Afrikaans nauty tree nauty?soekboom NP?complete NP?volledig (open) [(closed)] neighbourhood set (oop) [(geslote)] buurpuntversameling neighbouring move buuroplossing objective function doelfunksie operating system bedryfstelsel order orde overlapping structure oorvleuelingstruktuur packing number inpakkingsgetal packing set inpakkingsversameling path pad parallel edge parallelle lyn (lower) partial domination number (laer) gedeeltelike dominasiegetal playing set spel?versameling polynomial time polinoomtyd population populasie pseudocode pseudokode pseudograph pseudografiek ?`(m,n; k)?set ?`(m,n; k)?versameling radius radius regular regulier resource utilised hulpbron benut resource utilisation number hulpbron?benuttingsgetal size grootte space complexity ruimte?kompleksiteit spanning subgraph spangrafiek spanning tree spanboom Steiner system Steiner?sisteem strongly regular sterk regulier subgraph deelgrafiek tabu list tabu lys tabu search tabu soektog tabu status tabu status tabu tenure tabu tydspan ticket efficiency parameter kaartjie?effektiwiteitsparameter time complexity tyd?kompleksiteit tractable maklik?oplosbaar tree boom trial solution tussentydse oplossing universal set universele versameling vertex punt vertex?induced subgraph punt?ge??nduseerde deelgrafiek vertex set puntversameling vertex?transitive punt?transitief walk lynry winning draw wentrekking worst case complexity ergste?geval kompleksiteit xxii Translation of Terminology List of Reserved Symbols AG p? p adjacency matrix for an order p graph G ? the relation R1 ? R2 (defined between real numbers) states that the value R1 may be approximated to four decimal places by the value R2 ?(G) (vertex) independence number of a graph G( a b ) binomial coefficient given by a!b!(a?b)! when a ? b and by 0 when a < b C(m,n; k) the minimum cardinality of a covering set for the lottery ?m,n; k? (also called the covering number) C a covering set ? the set of complex numbers Ct cycle of length t degG(v) degree of a vertex v in a graph G ?(G) minimum vertex degree in a graph G ?(G) maximum vertex degree in a graph G diam(G) diameter of a graph G dG(u, v) distance between a vertex pair (u, v) in a graph G E(G) edge set of a graph G eG(v) eccentricity of a vertex v in a graph G E`(m,n; k) ticket efficiency parameter for the lottery ?m,n; k? L a lottery or playing set m cardinality of the universal set, Um, for the lottery ?m,n; k?, where 1 ? k ? n ? m ??(m,n; k) number of different (or distinct) L?(m,n; k)?set structures for the lottery ?m,n; k? (also called the incomplete lottery characterisation number) n cardinality of the subsets in a playing or lottery set for the lottery ?m,n; k?, where 1 ? k ? n ? m ? the set of natural numbers {1, 2, 3, . . .} ? 0 the set of counting numbers ? ? {0} NP class of decision problems which may be answered ?yes? by a polynomial time algorithm, given additional information (called a certificate to the problem in- stance at hand) ?L a nauty graph for the playing set L ? isomorphism between two graphs xxiii xxiv List of Reserved Symbols ?(A, n) the set of all n?subsets from an unordered set A, so that |?(A, n)| = (|A| n ) fF(i) the frequency of occurence (number of occurences) of the element i in the list F ?(G) (lower) domination number of a graph G g(G) girth of a graph G ?m,n; k? a lottery where players select n?subsets from a universal m?set, winning a prize if a player has chosen at least one n?subset sharing a k?subset from the universal set with an arbitrarily chosen winning n?subset G?m,n; k? the lottery graph for the lottery ?m,n; k? k minimum cardinality of a subset of an n?set that is required to match with an arbitrarily chosen winning n?set in order for the player to win a prize Kt complete graph on t vertices ` cardinality of a lottery or playing set L?(m,n; k) the incomplete lottery number for the lottery ?m,n; k? (in the special case where ? = 1, the incomplete lottery number is referred to as the complete lottery number min{F} [max{F}] the minimum [maximum] value of all the elements in a set F = {f1, . . . , f|F|} N (L) a neighbourhood of candidate solutions of a specific lottery or playing set L in the Tabu search algorithm implementation for determining lottery or playing sets NG [v] [NG(v)] closed [open] neighbourhood set associated with a vertex v in a graph G O(g(n)) a function f(n) grows no faster than g(n) as n?? (denoted f(n) = O(g(n))), if there exist constants c > 0 and n0 ? ? such that 0 ? f(n) ? c g(n) for all n ? n0 ?(g(n)) a function f(n) is said to grow asymptotically at least as fast as g(n) as n?? (denoted f(n) = ?(g(n))), if there exist constants c > 0 and n0 ? ? such that 0 ? c g(n) ? f(n) for all n ? n0 p order of a graph P (m,n; k) the maximum cardinality of a packing set for the lottery ?m,n; k? (also called the packing number) P class of decision problems that may be solved by polynomial time algorithms P a packing set ?`(m,n; k) resource utilisation number of the lottery ?m,n; k?, when playing ` n?sets from Um q size of a graph rad(G) radius of a graph G r degree of regularity of the lottery graph G?m,n; k? ? the set of real numbers ? + the set of positive real numbers RU(L) the resource utilisation of a lottery or playing set L ' the relation G1 ' G2 (defined between graphs) states that a graph G1 is isomor- phic to a graph G2  the relation L1  L2 (defined between decision problems) states that an algo- rithm exists that solves a decision problem L1 as a subroutine of an algorithm that solves a decision problem L2. Simplistically this means that the problem L1 is no harder to solve than the problem L2 List of Reserved Symbols xxv ? the relation H1 ? H2 (defined between sets) states that the set H1 is a subset of (or equal to) the set H2 and the same relation (defined between graphs) states that the graph H1 is a subgraph of the graph H2 Um universal set consisting of the integers {1, . . . ,m} in the lottery ?m,n; k?, where 1 ? k ? n ? m V (G) vertex set of a graph G Chapter 1 Introduction lo?t, n. One of a set of objects used to secure a chance decision in dividing goods, selecting officials, etc. lo?tt?ery?, n. Arrangement for distributing prizes by chance among purchasers of tickets; ??wheel, wheel with box used for shuffling numbers corresponding to those tickets. lo?tt?o?, n. Game of chance with drawing of numbers as in lottery. The Concise Oxford Dictionary (1950) [157] 1.1 Historical background Recorded use of lotteries dates back a number of centuries, even to biblical times [221]. Land division was mostly achieved by the casting of lots, as mentioned a number of times in the Bible [24]. Also, recall how the possession of Jesus? garment was gambled for during His crucifixion1. Certain Roman emperors (Augustus Caesar b.c. 12 ? 14 a.d., Nero 54 ? 68 a.d. and Heliogabalus 218 ? 222 a.d.) instituted a form of lottery called door?prize drawings as feature entertainment for their imperial gatherings, where guests drew for prizes (which included slaves, fashionable villas, etc.). Apart from Augustus Caesar, who sponsored the first known public lottery in order to raise funds to repair the city of Rome, records indicate a similar kind of commercial lottery, dating back to 1420 in the Burgundian town of L?Ecluse, which was used to raise money to strengthen the town?s fortifications. The Low Countries (the Netherlands, Belgium and Luxembourg) had similar lotteries at this time and used them as a means of selling land, livestock, works of art and other commodities. Even council and government members were chosen by lot, using numbered balls drawn from an urn [29]. In contrast to the initial main focus of fund raising lotteries for various public projects, the first known public lottery paying money prizes was La Lotto de Firenze, which began during the Renaissance (in 1530) in Florence, Italy [29]. By 1643, the Genoese republic institutionalised lotteries (drawing a selection of numbered balls from an urn without replacement), with similar lotteries being established during 1665 in Milan, Naples and Venice. This custom soon also spread through the whole of Italy and grew into the Italian national lottery, which was launched in 1870. In 1533 France was also introduced to the use of lotteries by the Italians (references indicate that lotteries were held at the court of Louis XIV during the late 17th century). Soon after the institution of lotteries in Italy, Britain also initiated her first lotteries, starting with royal lotteries, but later also including the public. The first government?sponsored lottery in England (with a first prize of ?5 000) was announced by Queen Elizabeth in 1566, raising funds to 1 ?And they crucified Him, and parted his garments, casting lots: that it might be fulfilled which was spoken by the prophet. They parted My garments among them, and upon My vesture did they cast lots.? (Matthew 27:35), King James Version [24]. 1 2 CHAPTER 1. INTRODUCTION be used ?toward the reparation of the harbours, strength of the Realme and other public good works? [221]. Even the British colonisation of America was partly funded by royal lotteries in 1612, raising roughly ?29 000 for settlers of the Virginia Company. With the explosion of lotteries thereafter, the British Parliament abolished public lotteries in 1699 and again in 1721, after lotteries were re?permitted in 1710. American lotteries were founded as early as 1665 in New Amsterdam. Many prominent citizens sponsored lotteries to raise funds for the improvement of various public facilities. These included Benjamin Franklin, who bought arms for the defense of Philadelphia with the proceeds; John Hancock (1762), who rebuilt Boston?s Faneuil Hall and George Washington (1768), who built a road over the Cumberland Mountains. These first American lotteries were referred to as a form of voluntary taxation. The first lotteries in Japan are said to date from the 1630s [120]. The Japanese went through a series of bannings and revivals of lottery schemes until 1842, when lotteries were banned completely. This lasted until shortly before the end of the Second World War, in 1945, when lotteries were revived to obtain funds for the war effort. In October 1945, immediately after the war, the Japanese government began selling lottery tickets under the name Takara?kuji, meaning ?fortune? or ?treasure? lottery. The government?s aims then were to soak up idle capital in order to contain rampant inflation and to procure funds for post?war reconstruction. Lotteries have since been utilised for a variety of purposes other than the above mentioned reasons, most of which are closely monitored and run by government mandated public companies, although some private lotteries do exist. The manner in which draws for lotteries are performed today also varies (from drawing specific numbered tickets to drawing numbers from a container), although the notion of drawing a selection of numbered balls without replacement from an urn seems to have remained the favourite for more than three centuries. In comparison to centuries ago, lottery winning prize payouts have increased dramatically (see, for example, the winning prize pool of over ?1 Billion for the Spanish El Gordo lottery in December 2002 [73]). The frequency of winning draws has also been increased by some authorities to include daily draws and facilities for buying lottery tickets over the Internet. In summary, government and private lotteries are widespread and highly functional today, supporting numerous welfare institutions, charitable groups and various public demands. The vast majority of lotteries around the world have conformed to the practice of drawing numbers from a prespecified set (without replacement). In most lotteries around the world today, players of the lottery draw 6 numbers on a ticket, from a set ofm numbers and are awarded a prize if they have drawn at least k ? 3 numbers in common with the set of 6 winning numbers, drawn at random by the governing body. A comprehensive survey of lottery parameters in use across the world today is given in Table 1.1. 1.2 Problem descriptions Suppose a participant of a lottery scheme wishes to play in a manner so as to ensure that he/she wins a prize. Let the lottery ?m,n; k? consist of randomly selecting a winning n?set w from the universal set Um = {1, 2, . . . ,m}, while a player participates in the scheme by purchasing a playing set L of any number of n?sets (informally also called tickets) from Um prior to the winning draw and is awarded a prize if at least k elements of w match those of at least one of the participant?s n?sets (tickets) in the playing set L. The participant may wish to select n?sets in order to construct his/her playing set L in such a way that there will necessarily be at least one n?set in L which contains at least k elements of Um matching those of w, no matter which winning n?set w is chosen from Um. Such a playing set is usually called a lottery set. We shall refer to such a lottery set as a complete lottery set. With this objective in mind, the participant may well wonder what the cardinality of such a smallest possible complete lottery set L might be and how to go about constructing a complete lottery set of smallest cardinality. In order to make the above description more precise, let ?(A, n) denote the set of all (unordered) n?sets from a set A, so that |?(A, n)| = (|A| n ) . The following well?known problem is a special case of a more general problem to be considered in this dissertation. 1.2. Problem descriptions 3 State or Country Lottery Malaysia [2] ?10, n; k?a Yugoslavia [179] ?24, 12; k? West Virginia [266] ?25, 6; k? Chile [5], Venezuela [241] ?25, 15; k? Illinois [111], Lithuania [9] ?30, 5; k? Iowa [112] ?30, 6; k? Chile [5] ?30, 7; k? Wisconsin [269] ?31, 5; k? Colorado [54], Kansas [124] ?32, 5; k? District of Columbia [58], Michigan [163] ?33, 5; k? New Mexico [186], Turkey [164], Virginia [262] ?34, 5; k? Norway [191] ?34, 7; k? Arizona [7], Connecticut [51], Latvia [227], Massachusetts [154], Slovak Republic [245], Slovenia [232], South Dakota [233] ?35, 5; k? Kansas [124] ?35, 6; k? Hungary [230], Sweden [1] ?35, 7; k? Florida [77], Indiana [106], Kazakhstan [182], Yugoslavia [179] ?36, 5; k? Maine [211], New Hampshire [184], Vermont [261], Wisconsin [269] ?36, 6; k? China [48], Denmark [53] ?36, 7; k? Montana [176], Ohio [196], Texas [84] ?37, 5; k? Jamaica [118] ?37, 6; k? Iceland [116], Nebraska [183] ?38, 5; k? Australia [192], Delaware [215] ?38, 6; k? California [121], Georgia [87], Iowa [112], Malta [205], Maryland [150], Montana [176], New York [187], Pennsylvania [69], South Dakota [233] ?39, 5; k? District of Columbia [58] ?39, 6; k? Croatia [108] ?39, 7; k? Czech Republic [220], New Jersey [185] ?40, 5; k? Ghana, Kazakhstan [182], Louisiana [146], New Zealand [195], Peru? [243] ?40, 6; k? Arizona [7] ?41, 6; k? Minnesota [173] ?42, 5; k? Belgium [18], Colorado [54], Ireland [6, 55], Maine [211], Malaysia [2], Massachusetts [154], New Hamp- shire [184], Philippines [201], Puerto Rico [140], Taiwan [242], Vermont [261] ?42, 6; k? Japan [120] ?43, 6; k? Missouri [175], Portugal [80], Texas [84], Uruguay [67] ?44, 5; k? Australia [192], Connecticut [51], Missouri [175] ?44, 6; k? Argentina [70], Australia [93, 143, 144], Austria [200], Croatia [108], Hungary [230], Israel [117], Nether- lands [63], Peru? [243], Philippines [201], Singapore [228], Switzerland [240], Ukraine [115], Yugoslavia [179] ?45, 6; k? California [121] ?47, 5; k? Hong Kong [86] ?47, 6; k? British Columbia [32], Que?bec [142], Western Canada [267] ?47, 7; k? Denmark [53], Finland [260], Indiana [106], Oregon [198] ?48, 6; k? Malaysia [2] ?49, 4; k? Alberta [4], British Columbia [32], Colorado [54], Connecticut [51], Delaware [215], France [47], Georgia [87], Germany [222], Greece [109], Idaho [110], Iowa [112], Kansas [124], Kentucky [126], Louisiana [146], Malaysia [2], Manitoba [149], Maryland [150], Massachusetts [154], Minnesota [173], Missouri [175], Montana [176], New Hampshire [184], New Jersey [185], New Mexico [186], Ohio [196], Philippines [201], Poland [255], Que?bec [142], Rhode Island [209], Slovak Republic [245], South Africa [181], South Dakota [233], Spain [141], Turkey [164], United Kingdom [40], Virginia [262], Washington [271], Western Canada [267], Wisconsin [269] ?49, 6; k?b Georgia [87], Illinois [111], Maryland [150], Massachusetts [154], Michigan [163], New Jersey [185], Vir- ginia [262] ?50, 6; k?c Table 1.1: Typical parameters for lotteries around the world, gathered from an extensive Internet survey (see [113] for a collection of lottery websites). Some variations to the complete lottery problem (as defined in Definition 1.1) exist and are: aThis lottery allows players to select n?sets (n = 4, 5, 6) containing duplicate numbers from U10; bIn various of these US states the lottery players select 5 numbers from U49 and a single Powerball number from U42. These lotteries are referred to as the Powerball Lotteries; cIn these US states the player of the lottery selects 5 numbers from U50 and a single Big Game number from U36. These lotteries are referred to as the Big Game Lottery. 4 CHAPTER 1. INTRODUCTION State or Country Lottery Michigan [163] ?51, 6; k? Maryland [150], Massachusetts [154], Ohio [196], Texas [84], Virginia [262] ?52, 5; k? Georgia [87], Illinois [111] ?52, 6; k? Iowa [112], Kansas [124], Missouri [175], Montana [176], New Mexico [186], South Dakota [233], Wisconsin [269] ?53, 5; k? Florida [77] ?53, 6; k? India [188], Texas [84] ?54, 6; k? Delaware [215], Minnesota [173], Montana [176], Nebraska [183], New Hampshire [184], South Dakota [233], West Virginia [266] ?55, 5; k? New York [187] ?59, 6; k? Pennsylvania [69] ?69, 6; k? Canada [11] ?70, 10; k?d Maryland [150] ?80, 10; k?d Hungary [230], Italy [145], Nigeria [50] ?90, 5; k? Argentina [70], Brazil [64] ?100, 20; k? Table 1.1 (continued): Typical parameters for lotteries around the world, gathered from an extensive Internet survey (see [113] for a collection of lottery websites). Some variations to the complete lot- tery problem (as defined in Definition 1.1) exist and are: dThese lotteries conform to the quadruple ?m,n, 20; k?, as described in footnote 3. Definition 1.1 (The complete lottery problem) Define a playing set L for the lottery ?m,n; k? as a set L ? ?(Um, n). Then a complete lottery set for the lottery ?m,n; k? is a playing set with the property that, for any element ?n ? ?(Um, n), there exists an element l ? L such that ?(?n, k) ? ?(l, k) 6= ?2. The complete lottery problem is: What is the smallest possible cardinality of a complete lottery set L for ?m,n; k?? Denote the answer to this question by the complete lottery number L1(m,n; k)3. A complete lottery set L of minimum cardinality L1(m,n; k) will be referred to as an L1(m,n; k)?set for the lottery ?m,n; k?. The complete lottery problem is certainly of interest from a combinatorial point of view and has been studied extensively since 1964, as will be apparent later in the survey of literature. But perhaps the following two generalisations of the complete lottery problem are of more interest from a practical point of view. Suppose a participant of the lottery scheme ?m,n; k? wishes to construct a playing set L? in such a manner that at least a certain proportion, 100?% say, of the possible (m n ) n?sets from Um share a common k?subset with (some) elements in L?. In this case, he/she would be at least 100?% sure of winning a k?prize. Let us call such a playing set L? a 100(1 ? ?)%?incomplete lottery set for ?m,n; k?. With this objective in mind, the participant may well wonder what the cardinality of a smallest 100(1 ? ?)%?incomplete lottery set might be and how to go about constructing such a set of smallest cardinality. This leads to the following novel problem definition. Definition 1.2 (The incomplete lottery problem) Define a 100(1??)%?incomplete lottery set for ?m,n; k? as a subset L? ? ?(Um, n) with the property that there exists some subset V? ? ?(Um, n) of cardinality at least ??(m n )? such that, for any element ?n ? V?, it holds that ?(?n, k) ? ?(l, k) 6= ? for some l ? L?. The incomplete lottery problem is: What is the smallest possible cardinality of a 100(1 ? ?)%?incomplete lottery set L?? Denote the answer to this question by the incomplete lottery number L?(m,n; k). 2In the combinatorial literature this is often referred to as a block design [45, 265], defined by the 6?tuple (v, l, t, s, ?, b) (other parameter definitions also exist [17, 33, 134]). Such a design consists of a carefully selected combinatorial subset of b l?sets from v elements (also called varieties). It ensures the existence of a minimum of at least ? l?sets containing a t?subset match with any s?set drawn from v elements. In terms of the lottery parameters, this translates to the 6?tuple (m,n, k, n, 1, L1(m,n; k)). 3In the construction of a so?called wheel or reduced system, some authors allow the governing body of the lottery scheme to draw a different number of elements, t, from Um to form a winning t?set, w, while players of the lottery scheme construct playing sets consisting of n?sets from Um, with n 6= t in general, thereby instead defining the lottery by the quadruple ?m, n, t; k?. Although this more general definition of a lottery scheme sometimes allows convenient upper bound constructions for minimum cardinality complete lottery sets, it will be ignored in this dissertation. 1.2. Problem descriptions 5 A 100(1 ? ?)%?incomplete lottery set L? of minimum cardinality L?(m,n; k) will be referred to as an L?(m,n; k)?set for ?m,n; k?. In the case where ? = 1 in the above definition, the incomplete lottery problem reduces to the well?known complete lottery problem in Definition 1.1. Conversely, suppose a participant of a lottery scheme wishes to play in a manner so as to maximise his/her chance of winning a k?prize in the lottery ?m,n; k? by constructing a playing set of fixed cardinality less than or equal to L1(m,n; k). Using the same notation as above, let N [v] denote the set of all n?sets from Um having at least one k?subset in common with v ? ?(Um, n) (including v itself), that is, N [v] = ? ???(Um,n) ?(?,k)??(v,k) 6=? {?} where 1 ? k ? n ? m. Then this alternative problem may be defined as follows. Definition 1.3 (The resource utilisation problem) The resource utilisation of a playing set L = {v1, . . . , v`} ? ?(Um, n) of ?m,n; k? is defined as the proportion | ?`i=1 N [vi]|/ ( m n ) , and the resource utilisation problem is: Given a fixed playing set cardinality ` (1 ? ` ? L1(m,n; k)), what is the maximum resource utilisation that may be achieved? Denote the answer to this problem by the resource utilisation number ?`(m,n; k) = max v1,...,v`??(Um,n) ??? ?` i=1N [vi] ???( m n ) . A playing set of cardinality ` that realises the maximum resource utilisation of ?`(m,n; k) will be referred to as a ?`(m,n; k)?set for ?m,n; k?. The following example is presented to clarify the newly defined incomplete lottery and resource utilisation problems, which are the two problems to be studied in this dissertation. Example 1.1 Consider the small lottery ?7, 3; 2?. A player constructs a playing set L by selecting 3? sets from U7 = {1, . . . , 7} and wins a prize if at least one 3?set has a 2?subset match with the winning 3?set. In order to guarantee that every possible 2?set from U7 is in the player?s playing set, the player may play the complete lottery set ?L = {{1, 2, 3}, {1, 4, 5}, {1, 6, 7}, {2, 4, 6}, {2, 5, 7}, {3, 4, 7}, {3, 5, 6}} (the reader may verify that, in fact, every 2?subset of U7 is contained exactly once in (some element of) ?L) and suppose the winning 3?set is w = {2, 4, 7}. There exists an element ?? = {2, 4, 6} ? ?L such that ?(w, 2) ? ?(??, 2) = {2, 4} 6= ?. This is true for any winning 3?set w, implying that L1(7, 3; 2) ? 7. A different, smaller complete lottery set ?L = {{1, 2, 3}, {1, 5, 7}, {2, 5, 7}, {3, 4, 6}} would yield a similar result, regardless of the winning 3?set (for ?? = {2, 5, 7} ? ?L, ?(w, 2) ? ?(??, 2) = {2, 7} 6= ?, for example), establishing an improved upper bound of L1(7, 3; 2) ? 4. The reader may verify exhaustively that none of the possible (353)3?set combinations from ?(U7, 3) yield a complete lottery set. For example, ?L = {{1, 3, 4}, {2, 5, 6}, {3, 5, 7}} is not a complete lottery set for ?7, 3; 2?, since ?(w, 2) ? ?(??, 2) = ? for all ?? ? ?L. This yields the lower bound L1(7, 3; 2) > 3. Hence the complete lottery set ?L is, in fact, an L1(7, 3; 2)?set for ?7, 3; 2?, with cardinality L1(7, 3; 2) = 4. Now suppose that a participant of the lottery is not interested in a guarantee (100% assurance) of win- ning a 2?prize, but will instead settle for a lesser assurance of at least (say) 90%. One incomplete lottery set that would achieve this goal is given by ?L = {{1, 4, 5}, {2, 4, 5}, {3, 6, 7}}. This is true be- cause |N [{1, 4, 5}] ? N [{2, 4, 5}] ? N [{3, 6, 7}]|/(73)= 3235 ? 0.9 (where N [{1, 4, 5}] = {{1, 2, 4}, {1, 2, 5},{1, 3, 4}, {1, 3, 5}, {1, 4, 5}, {1, 4, 6}, {1, 4, 7}, {1, 5, 6}, {1, 5, 7}, {2, 4, 5}, {3, 4, 5}, {4, 5, 6}, {4, 5, 7}}, N [{2, 4, 5}] = {{1, 2, 4},{1, 2, 5}, {1, 4, 5}, {2, 3, 4}, {2, 3, 5}, {2, 4, 5}, {2, 4, 6}, {2, 4, 7}, {2, 5, 6}, {2, 5, 7}, {3, 4, 5}, {4, 5, 6}, {4, 5, 7}} and N [{3, 6, 7}] = {{1, 3, 6}, {1, 3, 7}, {1, 6, 7}, {2, 3, 6}, {2, 3, 7}, {2, 6, 7}, {3, 4, 6},{3, 4, 7},{3, 5, 6},{3, 5, 7},{3, 6, 7},{4, 6, 7},{5, 6, 7}}), implying that L0.9(7, 3; 2) ? 3. Although other 3?sets from ?(U7, 3) that yield a similar result exist, no set of 2 elements from ?(U7, 3) provides a probability of winning (a 2?prize) in excess of 90%. We therefore conclude that L0.9(7, 3; 2) > 2 and have established that L0.9(7, 3; 2) = 3. In fact, ?L is also an L 3235 (7, 3; 2)?set for the lottery ?7, 3; 2?. Now consider the playing set ?L = {{1, 5, 7}, {3, 4, 6}} of cardinality ` = 2 < L1(7, 3; 2). Since we know that N [{1, 5, 7}] = {{1, 2, 5}, {1, 2, 7}, {1, 3, 5}, {1, 3, 7}, {1, 4, 5}, {1, 4, 7}, {1, 5, 6}, {1, 5, 7}, {1, 6, 7}, 6 CHAPTER 1. INTRODUCTION {2, 5, 7}, {3, 5, 7}, {4, 5, 7}, {5, 6, 7}} and N [{3, 4, 6}] = {{1, 3, 4}, {1, 3, 6}, {1, 4, 6}, {2, 3, 4}, {2, 3, 6}, {2, 4, 6}, {3, 4, 5}, {3, 4, 6}, {3, 4, 7}, {3, 5, 6}, {3, 6, 7}, {4, 5, 6}, {4, 6, 7}}, the resource utilisation of ?L is 26 35 . This yields the lower bound ?2(7, 3; 2) ? 2635 . The reader may again verify exhaustively, by considering all (35 2 ) possible 3?set combinations of cardinality 2 from ?(U7, 3), that ?2(7, 3; 2) ? 2635 . Hence, we have established that ?L is indeed a ?2(7, 3; 2)?set for the lottery ?7, 3; 2?, implying that ?2(7, 3; 2) = 26 35 ? 74.2857%. Note that this of course implies that L 2635 (7, 3; 2) ? 2. It is possible to show that ?1(7, 3; 2) = 1335 , leading to a confirmation that ?L is also an L 2635 (7, 3; 2)?set for ?7, 3; 2? and consequently that L 26 35 (7, 3; 2) = 2. From Definitions 1.2 and 1.3 it follows that the incomplete lottery problem and resource utilisation problem are inverses of each other, in the sense of the following proposition. Proposition 1.1 Let 0 < ? ? 1 be a real number and let ` be any natural number. Then L?(m,n; k) ? ` if and only if ?`(m,n; k) ? ?, for all 1 ? k ? n ? m. Proof Suppose L?(m,n; k) ? ` for some real number 0 < ? ? 1 and some ` ? ? . This implies that there exists a playing set L? ? ?(Um, n) with the property that some set U?? ? ?(Um, n) of cardinality at least ? ( m n ) exists such that, for any element ?n ? U??, it holds that ?(?n, k) ? ?(l, k) 6= ? for at least one l ? L?(according to Definition 1.2). Hence, there exists a set of cardinality ` yielding a resource utilisation of at least |U??| = (?(m n ))/(m n ) = ?, implying that ?`(m,n; k) ? ?. Conversely, suppose ?`(m,n; k) ? ? for some real number 0 < ? ? 1 and some ` ? ? . This implies that there exists a playing set L? ? ?(Um, n) of cardinality ` yielding a resource utilisation of ?. Hence there exists a set U?? of cardinality at least ? ( m n ) such that, for each ?n ? U??, it holds that ?(?n, k)??(l, k) 6= ? for some l ? L?. Hence, L?(m,n; k) ? `. Two different, well?studied combinatorial problems closely related to the complete lottery problem, are the so?called packing and covering problems. Although further investigations into the determination of covering and packing numbers will not be considered in this dissertation, these problem definitions are presented to clarify their distinction from the complete lottery problem in Definition 1.1, and to obtain upper bounds for complete lottery numbers, as will be demonstrated later. Definition 1.4 (The packing problem) Define a packing set for ?m,n; k? as a subset P ? ?(Um, n) with the property that, for any elements p1, p2 ? P, it holds that ?(p1, k) ? ?(p2, k) = ?. Then the packing problem is: what is the largest possible cardinality of a packing set P for ?m,n; k?? Denote the answer to this question by the packing number P (m,n; k). Definition 1.5 (The covering problem) Define a covering set for ?m,n; k? as a subset C ? ?(Um, n) with the property that, for any element ?k ? ?(Um, k), there exists an element c ? C such that {?k} ? ?(c, k) 6= ?. Then the covering problem is: what is the smallest possible cardinality of a covering set C for ?m,n; k?? Denote the answer to this question by the covering number C(m,n; k). The subtle difference between the complete lottery and covering problems given in Definitions 1.1 and 1.5 may easily be overlooked (see, for instance, one incorrect solution to the complete lottery problem posed by Jans [119], where the proposed solution determined the maximal number of different combinations of n?sets with less than n?k correspondences for a fixed n?set, yielding a poor upper bound for the complete lottery number L1(m,n; k), which is the solution to a minimisation problem). Note that, although in both the complete lottery and covering problems minimum cardinality sets consisting of n?sets from Um are sought, the difference is that in the covering problem we wish to have ?covered? all k?subsets from Um, whilst in the complete lottery problem the weaker requirement is made that we need only ?cover? at least one k?subset in the winning n?set w ? ?(Um, n), no matter what w might be. For clarity, Example 1.1 is continued with a discussion of both packing and coverings sets. 1.3. Literature on the lottery, packing and covering problems 7 Example 1.2 (continuation of Example 1.1) Consider again the lottery ?7, 3; 2? of Example 1.1. The first complete lottery set given in Example 1.1 as ?L = {{1, 2, 3},{1, 4, 5},{1, 6, 7}, {2, 4, 6},{2, 5, 7}, {3, 4, 7},{3, 5, 6}} is, in fact, a covering set for ?7, 3; 2? due to the fact that every pair from U7 is contained in (exactly) one element of the set ?L, implying that C(7, 3; 2) ? 7. Minimality of this set may be verified by noting that every number i ? {1, 2, . . . , 7} must occur in at least three different 3?sets (in order to pair with every one of the six other numbers), giving a minimum of 21 occurrences of the numbers {1, 2, . . . , 7} in the elements of the covering set. This implies the existence of at least seven elements in any covering set, or C(7, 3; 2) ? 7 and hence C(7, 3; 2) = 7. This covering set ?L is indeed also a packing set for ?7, 3; 2? (using a similar argument as above, 24 occurrences of the numbers {1, 2, . . . , 7} will necessarily force two elements in ?L to share a common pair, implying that P (7, 3; 2) < 8). Hence P (7, 3; 2) = 7. It rarely happens, for a 3?tuple ?m,n; k?, that C(m,n; k) = P (m,n; k), as is the case here. If this happens, ?m,n; k? is called a Steiner system4. Hence ?7, 3; 2? is a Steiner system. Note that 4 = L1(7, 3; 2) < C(7, 3; 2) = P (7, 3; 2) = 7. 1.3 Literature on the lottery, packing and covering problems The author could only find references in the combinatorial literature to studies performed on the complete lottery problem (yielding bounds and exact values on L1(m,n; k)) dating back as early as 1964. No literature has been encountered on the incomplete lottery and resource utilisation problems. The author believes that these problem definitions constitute wholly novel contributions of this dissertation. The first subsection, ?1.3.1 of this section, contains a survey of the only literature found on the complete lottery problem. This is followed, in ?1.3.2, by a similar survey of literature on the two related combina- torial problems, the packing and covering problems. The latter survey is by no means exhaustive due to the age of and widespread interest in the covering and packing problems, relative to that of the complete lottery problem. 1.3.1 Complete lottery numbers The earliest work encountered by the author in the combinatorial literature on the complete lottery problem is due to Hanani, et al. [99] in 1964, followed by the PhD dissertation in 1978 of Bate [13], who proved a formula for the class of complete lottery numbers L1(m,n; 1), presented later in this dissertation. Sterboul [236] established general lower bounds on L1(m,n; k) in 1978. Further complete lottery number formulas for lottery classes of the form ?m, 3; 2?, in terms of the covering number, were established independently by Brouwer & Voorhoeve [37] in 1979, by Brouwer [36] in 1981 and by Bate & Van Rees [17] in 1998, stating that L1(2m+ 1, 3; 2) = C(m, 3; 2) + C(m+ 1, 3; 2) L1(4m, 3; 2) = C(2m? 1, 3; 2) + C(2m+ 1, 3; 2) L1(4m+ 2, 3; 2) = 2C(2m+ 1, 3; 2), ?? ? (1.1) where C(m,n; k) denotes the well?known (recursive) Scho?nheim covering bound [223, 224]. Bate & Van Rees [17] determined the values of the complete lottery numbers L1(m, 6; 2) for m ? 54, given in Table 1.2, in 1998. Both Hanani, et al. [99] (in 1964) and Fu?redi, et al. [83] (in 1996) focused their attention on the lottery class ?m,n; 2?, while Bate & Stanton [15] (in 1981) derived explicit formulas5 for the complete lottery 4A Steiner system S(m,n; k) is a set X of m elements and a collection of subsets of X of cardinality n (called blocks), with the property that any k elements of X are contained in exactly one of the blocks [265]. 5The author believes that the result derived by Bate & Stanton [15] is incorrect for the specific case m ? 11 (mod 12) (due to conflicting results found on Internet repository tables [19, 44, 133, 237]), which instead conform to the formulal m2?m 12 m for m ? 11 (mod 12) and m ? 50. 8 CHAPTER 1. INTRODUCTION m 6?10 11?15 16?20 21?25 26?30 31?33 34 35?36 37 38?39 L1(m, 6; 2) 1 2 3 4 5 7 8 9 10 11 m 40 41?42 43 44?45 46 47 48 49?50 51 52 53 54 L1(m, 6; 2) 12 13 14 15 16 17 18 19 20 21 22 23 Table 1.2: The class of complete lottery numbers L1(m, 6; 2), for 6 ? m ? 54, due to Bate & Van Rees [17] in 1998. m 36?37 38 39 40 41 42 43 44?45 46 47 48 49 50 51 L1(m, 6; 3) ? 96 101 102 105 112 123 138 154 160 161 165 174 187 203 Table 1.3: Bounds obtained on a specific class of complete lottery numbers L1(m, 6; 3) by Colbourn [50] in 1996. class L1(m, 3; 2), given by L1(m, 3; 2) = ? ??? ?????? ?????????? ? m2?2m 12 ? if m ? 2, 4, 6 (mod 12)? m2?2m 12 ? + 1 if m ? 0, 8, 10 (mod 12)? m2?m 12 ? if m ? 1, 3, 5, 7 (mod 12)? m2?m 12 ? + 1 if m ? 9, 11 (mod 12). (1.2) They also determined bounds on L1(m, 4; 2) using a design theoretic approach [14]. Probabilistic methods to obtain upper bounds on L1(m,n; k) were implemented by Harant, et al. [100] (in 1993). Colbourn [50] (in 1996) used combinatorial construction techniques to determine upper bounds on the complete lottery class L1(m, 6; 3) for 36 ? m ? 51 (these bounds are contained in Table 1.3), as well as the bound L1(34, 5; 3) ? 136. Li & Van Rees [137] derived general lower bounds on L1(m,n; k) in 1999, using combinatorial theory. Li & Van Rees also determined some explicit complete lottery numbers and bounds on complete lottery numbers L1(m,n; k) for the values m ? 20, n ? 12 and k ? 5 [133, 136, 138] in 2002. Finally, Belic [19], Li [133] and Stojiljkovic [237] all maintain and frequently update Internet repositories listing complete lottery numbers. 1.3.2 Packing and covering numbers Fort & Hedlund [79] (in 1958) investigated the covering of pairs by triples, hence establishing some of the first covering numbers of the form C(m, 3; 2). A more general case of covering numbers were considered by Kalbfleisch & Stanton [123] in 1968. Research on the packing and covering problems, obtaining the well?known (recursive) Scho?nheim packing and covering bounds P (m,n; k) ? P (m,n; k) := ?m n P (m? 1, n? 1; k ? 1) ? = ? m n ? m? 1 n? 1 ? ? ? ? m? k + 1 n? k + 1 ? ? ? ? ?? and C(m,n; k) ? C(m,n; k) := ?m n C(m? 1, n? 1; k ? 1) ? = ? m n ? m? 1 n? 1 ? ? ? ? m? k + 1 n? k + 1 ? ? ? ? ?? , was conducted by Scho?nheim [223, 224] (respectively in 1964 and 1969). Using the notation of the bounds obtained by Scho?nheim, the mentioned result by Fort & Hedlund [79] states that C(m, 3; 2) = C(m, 3; 2). Bounds on packing numbers were also found by Di Paola [65] (in 1966), who combined the fields of design and graph theory in his approach. In two successive papers by Mills [168, 169] in 1972 and 1973 respectively, the value of the covering class C(m, 4; 2) was determined to be C(m, 4; 2) = ?? ? C(m, 4; 2) + 1 if m = 7, 9 or 10, C(m, 4; 2) + 2 if m = 19, C(m, 4; 2) otherwise. 1.3. Literature on the lottery, packing and covering problems 9 Much of this work was independently performed by Horton, et al. [107] in 1971. In 1973, Mills [167] also published a survey article of covering related research up to 1973. In 1978, Brouwer [34] determined P (m, 4; 3) for m a multiple of 6, while Brouwer [35] (in 1979) investigated general bounds on both P (m,n; k) and C(m,n; k). For a comprehensive collection of work performed on covering numbers until 1979, the reader is referred to Mills [166]. This report also included some new results (actual constructed covering sets of specified cardinality) which include the determination of all covering numbers satisfying the inequality C(m,n; k) ? 3(k+1)/2, as well as establishing all covering numbers of the form C(m,n; 2) for which m ? 3n. Todorov [248] stated in 1980 that for n ? kpk+1 (where p is a power of a prime) the covering number C(pn+ j, n; k) = p k+1 ? 1 p? 1 (0 < j ? p? 1) and pk+1 ? p p? 1 ? C(pn? i, n; k) ? p k+1 ? 1 p? 1 (0 ? i < p? 1). In 1980, Stanton & Bate [234] employed computer searches, using a backtracking algorithm, to determine some covering numbers C(m,n; k), where m ? 16. Stanton & Mullin [235] (in 1980) presented a survey of what had been done on covering numbers up to 1979 and also determined the covering numbers C(m, 4; 3) = C(m, 4; 3) + 1, where m ? 7 (mod 12) (thereby completing the single case not investigated by Mills [170] in 1974, stating that C(m, 4; 3) = C(m, 4; 3), where m 6? 7 (mod 12)). In 1981, Todorov [253] determined a class of covering numbers stating that C(a0p2 + a1p + a2, a0p + a1; 2) = p2 + p + 1 if p is a prime power and a0 ? a1 ? a2 > 0 are non?negative integers. The values for the covering numbers C(7, 4; 3) = 12, C(9, 5; 3) = 12, C(11, 6; 3) = 11 and C(13, 7; 3) = 13 were determined by Todorov & Tonchev [254] in 1982. They also showed that 13 ? C(2m ? 1,m; 3) ? 14 if 8 ? m ? 14, while C(2m ? 1,m; 3) = 14 if m ? 15. Nurmela & ?Osterg?ard [193, 194] (in 1983) and Godbole, et al. [91] (in 1996) independently used probabilistic techniques to obtain general upper bounds on C(m,n; k). The following result, for p a prime power and non?negative integers a0 ? a1 ? ? ? ? ? al, was proved by Todorov [246] in 1984: C ?? l? j=0 ajpl?j , l?1? j=0 ajpl?j?1; l ?? = pl+1 ? 1 p? 1 if al > 0 and pl+1 ? p p? 1 ? C ?? l? j=0 ajpl?j , l?1? j=0 ajpl?j?1; l ?? ? pl+1 ? 1 p? 1 if al = 0. Later that same year, Todorov [249] determined all m, n and k for which C(m,n; k) ? 3(k + 2)/2, thus extending his result published in 1985 [250]. By 1984, the value of C(m, 5; 2) was known for all m ? 23 except m = 16. Mills [165] determined this single exception to be C(16, 5; 2) = 15. Both Ro?dl [213] and Spencer [231] (in 1985) independently proved the asymptotic covering and packing result lim m?? C(m,n; t) ( n k )( m k ) ?1 = lim m?? P (m,n; k) ( n k )( m k ) ?1 = 1, which was originally conjectured by Erdo?s & Hanani [71] in 1963. In two papers by Todorov [247, 252] in 1986, he respectively investigates the covering numbers C(m,n; 2) and C(m,n; 3). In [247] upper and lower bounds on C(m,n; 2) (when 5 ? n ? 9 and 3k < m ? 30) together with some explicit values for C(m,n; 2) are given, while in [252] the author finds all m and n for which C(m,n; 3) = 8. With certain exceptions, these are the values of m and n satisfying 1711 < m n ? 85 . The exceptions are when m = 17k + 3, n = 11k + 2 with k ? 1, in which case C(m,n; 3) = 8, even though m n is not in the given range, and m = 8k + 3, n = 5k + 2 with k ? 2, in which case C(m,n; 3) > 8. The class of covering numbers C(m, 5; 2) for m ? 2 (mod 4) was determined to be C(m, 5; 2) = C(m, 5; 2) (with the exception of m = 270, 274) by Lamken, et al. [131] in 1987. Mills & Mullin [172], in 1988, also focused their attention on the class of covering numbers C(m, 5; 2). They proved that C(15, 5; 2) = C(15, 5; 2) + 1, while C(m, 5; 2) = C(m, 5; 2) if m ? 3 (mod 4) where m ? 7 and m 6= 15. In 1990, Morley & Van Rees [178] determined explicit covering number formulas as well as bounds on the infinite class of covering 10 CHAPTER 1. INTRODUCTION m 6?7 8 9 10 11 12 13 14 15 16 17 18 19 20?21 22 23 24?25 26 27 C(m, 5; 2) 3 4 5 6 7 9 10 12 13 15 16 18 19 21 27 28 30 37 38 Table 1.4: The class of covering numbers C(m, 5; 2), for 6 ? m ? 27, known by 1992 as reported in [66]. It was also known that C(m, 5; 2) = C(m, 5; 2) whenever m ? 2 (mod 4), m ? 3 (mod 4) and m 6= 15, m ? 9 (mod 20) and m > 3 149, or m ? 17 (mod 20) and m > 757. Furthermore C(m, 5; 2) = C(m, 5; 2) + 1 whenever m ? 13 (mod 20) and m > 753. numbers C(4m ? 3, 2m? 1;m ? 1) (for m ? 3) and C(4m ? 4, 2m? 2;m) (for m ? 2). In a paper on the covering of n?sets by (n+ 1)?sets in 1991, De Caen, et al. [60] determined that C(9, 5; 4) = 30 and C(10, 6; 5) = 50. Mills [171] proved that C(11, 5; 3) = 20 in 1992, thereby contradicting a conjecture by Morley & Van Rees [178] that C(11, 5; 3) = 21. As reported in [66] (with the exception of some equivalence classes), up to 1992, the value of C(m, 5; 2) was only known where m < 28 (see Table 1.4). In 1995, Gordon, et al. [94] determined upper bounds on C(m,n; k) for m ? 32, n ? 16 and k ? 8, using greedy algorithms and modification techniques that synthesize new coverings from existing ones. Some general constructions for packing designs were developed by Yin & Assaf [270] (in 1998). Bluskov & Ha?ma?la?inen [27] (in 1998) and Bluskov & Heinrich [28] (in 1999) determined upper bounds on several families and infinite classes of covering numbers C(m,n; k) where 3 ? k ? n ? 7. Explicit values for and bounds on an infinite class of covering numbers C(m,n; 2) were determined by Bluskov, et al. [26] (in 2000). Li & Van Rees [135] (in 2002) determined the individual covering number C(17, 10; 3). Bate, et al. [16] determined C(19, 6; 2) in 2002. Current research on covering numbers is still performed by Greig, et al. [95], who determined all m and n for which C(m,n; 2) = 13, thus extending a result originally investigated by Todorov [251] in 1985. They also determined that C(28, 9; 2) = C(41, 13; 2) = 14. Gordon [44] maintains and frequently updates an Internet repository table containing bounds on and exact values for covering numbers C(m,n; k) where m ? 32, n ? 16 and k ? 8. 1.4 Scope and objectives of this dissertation Four objectives are pursued in this dissertation. Objective I: To introduce a transparant and elementary framework in which the incomplete lottery and resource utilisation problems may be investigated. The foundations of such an environment should include establishing the boundedness (and hence existence) as well as growth properties (with respect to variations in their arguments) of incomplete lottery and resource utilisation numbers; Objective II: To establish both analytical and algorithmic approaches toward solving (or at least ap- proximating solutions to) the incomplete lottery and resource utilisation problems and to be able to compare the qualities and efficiencies of such approaches; Objective III: To develop and implement a technique for distinguishing between structurally different (optimal) solutions to the incomplete lottery and resource utilisation problems; Objective IV: To pose a number of questions and open problems that may spawn future research on the incomplete lottery and resource utilisation problems. 1.5 Preview of dissertation layout The existence and certain basic properties of the parameters L?(m,n; k) and ?`(m,n; k) are derived in Chapter 2 of this dissertation. More specifically, growth properties (?2.2) and specific values in some sim- ple special cases (?2.3) are established. The chapter is concluded with a discussion on a possible solution approach to both the incomplete lottery and resource utilisation problems, using integer programming (?2.4). 1.5. Preview of dissertation layout 11 Chapter 3 opens with a brief background on basic concepts from graph and complexity theory, in ?3.1. Most of the basic graph theoretic results and terminology used throughout this dissertation are described in this section. The chapter also contains a detailed description (in ?3.2) of a graph theoretic solution approach that will be used to attack the incomplete lottery and resource utilisation problems. A char- acterisation is provided of when L1(m,n; k) = 1, 2 or 3. As a case study, lotteries of the form ?m,n; k? where 1 ? k ? n ? m ? 10 are considered in ?3.4 with a section devoted to the symmetric graphical representation of lottery graphs in ?3.3. A further study of larger (typical) lottery parameter values is conducted in Chapter 4, with several theoretical bounds from the literature presented in a comparative manner. In particular, lower and upper bounds on complete lottery numbers from graph theory (?4.1) and other related disciplines (?4.2) are discussed. The main focus of Chapter 5 is on the improvement of analytic upper bounds on incomplete lottery numbers, using a variety of algorithms. Lower bounds on resource utilisation numbers are found in the same way. Seven heuristic and greedy algorithms that were implemented are discussed, and analyses of their relative complexities, performances, advantages and disadvantages are given. In Chapter 6 two algorithmic characterisation techniques for {L?(m,n; k),?`(m,n; k)}?set overlapping structures is given. The first characterisation algorithm (?6.1.1) constructs evolving n?set overlapping structures in a so?called lottery tree, while the second characterisation algorithm (?6.1.2) uses a graph theoretic approach of representing playing sets in conjunction with a graph automorphism package, called nauty, to construct a so?called nauty tree. All structurally different {L?(m,n; k),?`(m,n; k)}?sets for 1 ? k ? n ? m ? 10, satisfying m + k > 2n and n ? bm2 c, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 are determined, using these techniques. This constitutes another original contribution of this dissertation with respect to lottery sets. An inquiry into the characteristics of the number of structurally different solutions with respect to variations of the parameters m, n, k and ? is launched in ?6.2. A number of new complete lottery numbers L1(m,n; k) are also established in ?6.4. The dissertation is concluded (in Chapter 7) with a summary in ?7.1 of the achievements of this dis- sertation and some proposals with respect to possible future work related to the lottery and resource utilisation problems, in ?7.2. The source code to algorithms described and implemented in the dissertation is included in Appendix A. Best available bounds (obtained from the Internet) on the complete lottery number L1(m,n; k), are given in Appendix B. Finally, Appendix C contains tables of optimal overlapping structure encodings as a reference. 12 CHAPTER 1. INTRODUCTION Chapter 2 Properties of L? and ?` ?Everything actual must first have been possible, before having actual existence.? Albert Pike (1809?1891) ?If you have built castles in the air, your work need not be lost; that is where they should be. Now put the foundations under them.? Henry D Thoreau (1817?1861) [244] In this chapter the focus will be on establishing the existence of solutions to the incomplete lottery and resource utilisation problems in general, as well as deriving some of their basic properties and, where possible, providing explicit values for incomplete lottery and resource utilisation numbers. 2.1 Boundedness of L?(m,n; k) and ?`(m,n; k) The existence of solutions to the incomplete lottery and resource utilisation problems is established in Theorem 2.1, by giving both lower and upper bounds on the incomplete lottery number L?(m,n; k) and resource utilisation number ?`(m,n; k) in closed form for all feasible values of the parameters m, n, k, ? and `. However, the following preliminary result is necessary in order to prove the theorem. Lemma 2.1 The number of n?sets from Um that have at least one k?subset in common with some n?set v ? ?(Um, n) (excluding v itself) is given by r = |N [v]| ? 1 = n?1? i=k ( n i )( m? n n? i ) , (2.1) for all 1 ? k ? n ? m. Proof Consider any n?set, v, from Um in the lottery ?m,n; k?. The number of n?sets from Um that have exactly i elements in common with v is ( n i )( m?n n?i )(the first factor indicating the number of ways in which the coinciding i?set may be fixed and the second factor counting the number of combinations in which the remainder of the n?set may be completed). The number of n?sets that have at least one k?subset in common with v is obtained by letting i vary between k and n?1 inclusively, yielding the result presented in (2.1). It is now possible to derive the boundedness (and hence existence) of incomplete lottery and resource utilisation numbers in the following theorem. 13 14 CHAPTER 2. PROPERTIES OF L?(m,n; k) AND ?`(m,n; k) Theorem 2.1 (Existence of L?(m,n; k) and ?`(m,n; k)) The incomplete lottery number L?(m,n; k) and the resource utilisation number ?`(m,n; k) exist and, in fact,? ?(m n ) r + 1 ? ? L?(m,n; k) ? P (m,n; k) ? C(m,n; k) ? ( m k ) (2.2) and r + `( m n ) ? ?`(m,n; k) ? min{1, (r + 1)`(m n ) } , (2.3) for all 1 ? k ? n ? m, 0 < ? ? 1 and all 0 < ` ? L1(m,n; k), where r is given in (2.1). Proof Suppose L? = {l1, l2, . . . , lL?(m,n;k)} is an L?(m,n; k)?set for the lottery ?m,n; k? and that the set Vi contains all n?sets, ?n, from ?(Um, n) such that ?(?n, k) ? ?(li, k) 6= ?, excluding li itself, for i = 1, . . . , L?(m,n; k). Then |Vi| = r according to Lemma 2.1 for all i. At best, the sets {Vi ? li} and {Vj ? lj} each contain (r + 1) mutually disjoint elements of ?(Um, n) for all i 6= j, in which case (r + 1)L?(m,n; k) ? ?(mn), from which the first inequality in (2.2) follows. For the second inequality in (2.2) it suffices to show that every packing set is also an incomplete lottery set. Suppose P is a packing set of cardinality P (m,n; k) for ?m,n; k?. Then, for every ? ? ?(Um, n)\P , it holds that ?(?, k)??(??, k) 6= ? for some ?? ? P , implying that P is indeed also a (possibly non?minimal) incomplete lottery set for any 0 < ? ? 1. Therefore the second inequality in (2.2) holds. Let C be a covering set of cardinality C(m,n; k) for ?m,n; k?, but suppose, to the contrary, that P (m,n; k) > C(m,n; k). Then there exists a ??n ? ?(Um, n) \ C such that ?(??n, k) ? ?(c, k) = ? for all c ? C, contradicting the fact that C is a covering set for ?m,n; k? and therefore yielding the third inequality P (m,n; k) ? C(m,n; k) in (2.2). The final upper bound in the inequality chain (2.2) is achieved by the existence of a covering set C of cardinality ( m k ) for ?m,n; k? where the first k entries of set elements consist of all (mk) different, unordered k?sets from Um and by randomly adding (n? k) elements to every n?set from the remaining (m ? k) elements in Um. C is a (possibly non?minimal) covering set by construction and therefore C(m,n; k) ? (mk). The lower bound on ?`(m,n; k) in (2.3) for ?m,n; k? may be obtained by constructing a playing set L = {l1, l2, . . . , l`} ? ?(Um, n) of cardinality 0 < ` ? L1(m,n; k) as follows: Select any n?set l1 ? ?(Um, n), and suppose l1 shares k?subsets with a subset V1 of elements from ?(Um, n), excluding l1 itself. Now L? = ?(Um, n) \ V1 is clearly a complete lottery set for ?m,n; k?. This is true because if the winning n?set, w, is an element of L?, then certainly there exists an element l? ? L? such that ?(l?, k) ? ?(w, k) 6= ? (namely the element l? = w). Otherwise, if w ? V1, then ?(l1, k) ? ?(w, k) 6= ?. Therefore ` ? L1(m,n; k) ? |L?| = (mn)? r. Hence there exist at least (` ? 1) elements in the set ?(Um, n) \ {V1 ? {l1}}. Choose any (` ? 1) elements l2, l3, . . . , l` from this last set to complete the construction of L. Then the resource utilised by L is at least r+`(mn) . The trivial upper bound ?`(m,n; k) ? 1 in (2.3) is obtained by any L1(m,n; k)?set (i.e., by letting ` = L1(m,n; k)) for the lottery ?m,n; k?. The non?trivial upper bound ?`(m,n; k) ? (r + 1)`/(mn) in(2.3) is attained (in a best possible case) if it is possible to construct a playing set L = {l1, . . . , l`} for the lottery ?m,n; k? with the property that {Vi ? li} ? {Vj ? lj} = ? for all i 6= j = 1, . . . , ` where Vi denotes the set of all n?sets from Um that share a k?subset with li (excluding li itself), i = 1, . . . , `. In this case, the resource utilised by L is[?` i=1 |Vi ? {li}| ] / (m n ) = [?` i=1 (r + 1) ] / (m n ) = (r + 1)`( m n ) , by Lemma 2.1. In cases where it is not possible to construct the playing set L in a manner that all sets V1, . . . ,V` are pairwise disjoint, it follows by the inclusion?exclusion principle that the resource utilised by L is strictly less than (r+1)`(mn) . 2.2. Growth properties of L?(m,n; k) and ?`(m,n; k) 15 These bounds on L?(m,n; k) and ?`(m,n; k) serve the purpose of establishing existence of solutions to the incomplete lottery problem and the recourse utilisation problem, but are typically very weak (wide apart) for large values of m, prompting an investigation into methods for improving both lower and upper bounds. Analytic and algorithmic improvements of bounds on L?(m,n; k) and ?`(m,n; k) will be considered in Chapters 4 and 5 of this dissertation respectively. 2.2 Growth properties of L?(m,n; k) and ?`(m,n; k) A number of growth properties of incomplete lottery and resource utilisation numbers with respect to their arguments, may also be established. Theorem 2.2 (Growth properties of L?(m,n; k) and ?`(m,n; k)) (a) L?(m?, n; k) ? L?(m,n; k), for all 1 ? k ? n ? m? < m and 0 < ? ? 1. (b) L?(m,n?; k) ? L?(m,n; k), for all 1 ? k ? n? < n ? m and 0 < ? ? 1. (c) L?(m,n; k?) ? L?(m,n; k), for all 1 ? k? < k ? n ? m and 0 < ? ? 1. (d) L??(m,n; k) ? L?(m,n; k), for all 1 ? k ? n ? m and 0 < ?? < ? ? 1. (e) ?`(m?, n; k) ? ?`(m,n; k), for all 1 ? ` < L1(m?, n; k) and 1 ? k ? n ? m? < m. (f) ?`(m,n?; k) ? ?`(m,n; k), for all 1 ? ` < L1(m,n; k) and 1 ? k ? n? < n ? m. (g) ?`(m,n; k?) ? ?`(m,n; k), for all 1 ? ` ? L1(m,n; k?) and 1 ? k? < k ? n ? m. (h) ?`?(m,n; k) ? ?`(m,n; k), for all 1 ? `? < ` ? L1(m,n; k) and 1 ? k ? n ? m. Proof (a) Suppose L? is an L?(m,n; k)?set for ?m,n; k?, and that m? < m, for some 0 < ? ? 1. Consider the following reduction method to obtain a (possibly non?minimal) 100(1? ?)%?incomplete lottery set for ?m? 1, n; k? from L?. Reduction method: Consider a two?dimensional tabular representation of L?, consisting of L?(m,n; k) rows (denoting the n?sets in L?) and m columns (denoting the elements of Um) in which the (i, j)?th cell contains a cross if j ? Um is an element of the i?th n?set of L? , and is otherwise empty. The remaining part of L?, obtained by temporarily disregarding some j?th column in the above tabular representation (some resulting rows will represent n?subsets of Um \ {j} and some might represent (n? 1)?subsets of Um \ {j}), will collectively share k?subsets of Um \ {j} with a proportion, ?j , of elements from ?(Um \{j}, n). Note that an n?set that has a k?match with L?, will have a k?match with exactly m ? n of the m possible reductions (when not considering (n? 1)?sets for k?matches with L?, of course). Hence, counting the total number of n?sets with a k?match over all possible reductions, we have ?m j=1 ( m?1 n )?j = (mn)??(m?n). The average of the proportions ?1, . . . , ?m (i.e., when removing columns 1, . . . ,m) is given by ?m j=1 ?j m = ?m j=1 ( m?1 n )?j( m?1 n ) m = ( m n )?(m? n)( m?1 n ) m = ?. Thus there exists a j? ? Um such that ?j? ? ?. Now permanently remove column j? from the tabular representation of L? and place a cross in any empty cell of each row that now contains only n ? 1 crosses as a result of the permanent column deletion. The result is a tabular representation of a 100(1??j?)%?incomplete lottery set for ?m?1, n; k?, which is also a 100(1? ?)%?incomplete lottery set for ?m? 1, n; k?. By (possibly repeated) application of the above reduction method to L?, a (possibly non?minimal) 100(1??)%?incomplete lottery set for ?m?, n; k?may be obtained. Hence we conclude that L?(m?, n; k) ? L?(m,n; k) = |L? |. (b) Suppose L?? is an L?(m,n?; k)?set for ?m,n?; k?, and that n? < n for some 0 < ? ? 1. It will be shown, by considering the construction method outlined below, that a (possibly non?minimal) 100(1 ? ?)%? incomplete lottery set for ?m,n? + 1; k? may be constructed from L?? = {T ?1, . . . , T ?L?(m,n?;k)}. 16 CHAPTER 2. PROPERTIES OF L?(m,n; k) AND ?`(m,n; k) Construction method: Append, to each n??set, T ?i ? L?? , an arbitrary element of Um \T ?i to form an (n? + 1)?set, Ti, for each i = 1, . . . , L?(m,n?; k). Define the set L? = L?(m,n?;k)? i=1 Ti. It is easy to see that if any w ? ?(Um, n?) has a k?match with L??, then w also has a k?match with L? . By definition of L??, it follows that at least 100?% of the elements of ?(Um, n?) have a k?match with L??. It remains to be shown that at least 100?% of the elements of ?(Um, n? + 1) also have a k?match with L?? and hence with L? . Append to each ?n? ? ?(Um, n?) all possible single elements from Um\?n? to formm?n? new (n?+1)?sets. Now, if a particular n??set, ?n? , has a k?match with L??, then each of its m? n? associated (n? + 1)?sets will also have a k?match with L??. Therefore at least 100?% of all the appended (n? + 1)?sets have a k?match with L?? . Note that every element of ?(Um, n?+1) occurs exactly n?+1 times amongst the set of appended (n? + 1)?sets, because each of the elements of ?(Um, n? + 1) is constructed from a different n??set ?n? ? ?(Um, n?). Therefore, if we remove all duplicates amongst the appended (n? + 1)?sets, the proportion of (n? + 1)?sets that have a k?match with L?? remains unchanged. Hence, at least 100?% of the elements of ?(Um, n? + 1) have a k?match with L?. Therefore, L? is a 100(1 ? ?)%?incomplete lottery set for ?m,n? + 1; k?. By (possibly repeated) application of the above construction method to the set L?? , a (possibly non? minimal) 100(1 ? ?)%?incomplete lottery set for ?m,n; k? may be obtained. Hence we conclude that L?(m,n; k) ? L?(m,n?; k) = |L??|. (c) Suppose L? is an L?(m,n; k)?set for the lottery ?m,n; k? and that k? < k for some 0 < ? ? 1. Therefore, there exists a subset V? ? ?(Um, n) of cardinality at least ??(mn)?with the property that, for any ?n ? V? ? ?(Um, n), there exists an l ? L? such that ?(?n, k) ? ?(l, k) 6= ?. But for any ?k ? ?(?n, k) ? ?(l, k) it holds that ?(?k, k?) ? ?(l, k?) 6= ? (or equivalently that ?(?n, k?) ? ?(l, k?) 6= ?), implying that L? is also a 100(1 ? ?)%?incomplete lottery set for the lottery ?m,n; k??. Hence L?(m,n; k?) ? L?(m,n; k). (d) Suppose L? is an L?(m,n; k)?set for the lottery ?m,n; k? and that 1 ? k ? n ? m and 0 < ?? < ? ? 1. Therefore, there exists a subset V? ? ?(Um, n) of cardinality at least ??(mn)?with the property that, for any ?n ? V? ? ?(Um, n), there exists an l ? L? such that ?(?n, k) ? ?(l, k) 6= ?. This condition also holds for any ??n ? V ?? ? V? (where V ?? has a cardinality of at least ?? ( m n )), implying that L? is a (possibly non?minimal) 100(1???)%?incomplete lottery set for the lottery ?m,n; k?. Hence L??(m,n; k) ? L?(m,n; k). (e) Suppose, to the contrary, that ?`(m?, n; k) < ?`(m,n; k) for somem? < m. Then, according to Propo- sition 1.1, L?`(m,n;k)(m?, n; k) > `. However, due to the (trivial) inequality ?`(m,n; k) ? ?`(m,n; k) it also follows that L?`(m,n;k)(m,n; k) ? ` by Proposition 1.1. Therefore L?`(m,n;k)(m,n; k) ? ` < L?`(m,n;k)(m?, n; k), which contradicts the result of Theorem 2.2(a). This implies that ?`(m?, n; k) ? ?`(m,n; k). (f) Suppose, to the contrary, that ?`(m,n?; k) > ?`(m,n; k) for some n? < n. Then, according to Propo- sition 1.1, L?`(m,n?;k)(m,n; k) > `. However, due to the (trivial) inequality ?`(m,n?; k) ? ?`(m,n?; k) it also follows that L?`(m,n?;k)(m,n?; k) ? ` by Proposition 1.1. Therefore L?`(m,n?;k)(m,n?; k) ? ` < L?`(m,n?;k)(m,n; k), which contradicts the result of Theorem 2.2(b). This implies that ?`(m,n?; k) ? ?`(m,n; k). (g) Consider a ?`(m,n; k)?set L for the lottery ?m,n; k? and suppose ` ? L1(m,n; k?) with k? < k. From (2.1) it follows that r is a decreasing function of k, implying that every l ? L shares a common k ??subset with more n?sets from ?(Um, n) than it shares k?subsets with n?sets from ?(Um, n). Consequently ?`(m,n; k?) ? ?`(m,n; k). (h) Let L? be a ?`?(m,n; k)?set for the lottery ?m,n; k? and suppose that `? < ` ? L1(m,n; k). By adding any `? `? n?sets l 6? ?l?L?N [l] to L?, a new playing set L (of cardinality `) is constructed with at least one more element in ?l?LN [l] than in ?l??L?N [l?] (i.e., ?`(m,n; k) ? ?`?(m,n; k) + 1/(mn)). Hence ?`?(m,n; k) ? ?`(m,n; k). 2.3. Explicit values for L?(m,n; k) and ?`(m,n; k) 17 ? ? ??? ? ????? ? ????? ? ? ? ? ??? ? ????? ? ? ? ? ?fiffffifl ? ??! ?#" $ ? ??? ? % ? ?&? ? ?'? ? Figure 2.1: Counting the number of n?sets w sharing a common t?subset of Um with u and an s?subset of Um with v, which in turn share at most an i?subset of Um. The following results are direct consequences of Theorem 2.2(a)?(c) and correspond to known growth property results for the complete lottery problem by Li [136]1. Corollary 2.1 (Growth properties of L1(m,n; k)) (a) L1(m?, n; k) ? L1(m,n; k), for all 1 ? k ? n ? m? ? m. (b) L1(m,n?; k) ? L1(m,n; k), for all 1 ? k ? n? ? n ? m. (c) L1(m,n; k?) ? L1(m,n; k), for all 1 ? k? ? k ? n ? m. Growth results regarding a change in a combination of the parameters of the complete lottery number (such as L1(m,n; k) ? L1(m+ 1, n+ 1; k), L1(m,n; k) ? L1(m+ 1, n; k + 1) and L1(m,n; k) ? L1(m+ 1, n+ 1; k + 1)) are also due to Li [134] and their proofs will not be repeated here. Similar results may be established for the incomplete lottery number. It is interesting to note that no direct comparison between the values of L1(m,n; k) and L1(m,n + 1; k + 1) has yet been established. In some instances the inequality L1(m,n; k) ? L1(m,n+1; k+1) is observed, while for other combinations of values of m, n and k the opposite is observed [136]. 2.3 Explicit values for L?(m,n; k) and ?`(m,n; k) In order to determine explicit values for the resource utilisation number in certain special cases, the following intermediate result is necessary. Lemma 2.2 The number of n?sets in ?(Um, n) having at least a k?subset in common with any two specified n?sets in ?(Um, n), which in turn share a common i?subset of Um but no common (i+1)?subset of Um (m > 2n? i), is given by ?i2(m,n; k) = n?1? t=k n?1? s=k i? j=0 ( n? i t? j )( i j )( n? i s? j )( m? 2n+ i n? s? t+ j ) . (2.4) Proof Let u, v ? ?(Um, n) share an i?subset of Um, with 0 ? i ? n, but not an (i + 1)?subset of Um. Define the sets x = u \ v, y = u? v and z = v \ u (see Figure 2.1). Then |x| = n? i, |y| = i and |z| = n? i. The number of sets w ? ?(Um, n) that share a t?subset of Um with u and an s?subset of Um with v. If w shares a j?subset of Um with y, then it shares a (t? j)?subset of Um with x and an (s? j)?subset of Um with z. Hence the (s+ t ? j) elements of Um that w shares with u ? v may be chosen in (n?it?j)(ij)(n?is?j) different ways. But then the remaining n? (s+ t? j) elements of w \ (u?v) may be chosen in (m?2n+i n?s?t+j ) different ways (note that in the case where s+ t? j > n, this factor evaluates to 0). Finally, both s and t should be at least k (and of course at most n ? 1), and j must be at least zero and not exceed i, in which case the formula in (2.4) is obtained for ?i2(m,n; k). 1The growth property results for the incomplete lottery numbers presented in Theorem 2.2(a)?(c) were determined by the author independently from Li [136], and before the author became aware of the work of Li. 18 CHAPTER 2. PROPERTIES OF L?(m,n; k) AND ?`(m,n; k) In certain special cases, incomplete lottery and resource utilisation numbers may be determined explicitly. These special cases are summarised in the following theorem. Theorem 2.3 (Special cases of L?(m,n; k) and ?`(m,n; k)) (a) L?(m,m; k) = 1, for all 1 ? k ? m and all 0 < ? ? 1. (b) L?(m,n;n) = ??(mn)?, for all 1 ? n ? m and all 0 < ? ? 1.(c) L?(m,n; k) = 1, for all 1 ? k ? n ? m such that 2n ? m+ k and all 0 < ? ? 1. (d) ?`(m,n;n) = `/(mn), for all 1 ? n ? m and all 1 ? ` ? (mn).(e) L?(m,n; k) = 1, for all 1 ? k ? n ? m and all 0 < ? ? (r + 1)/(mn).(f) If 1 < ` ? bm n c, n < 3k and all 1 ? k ? n ? m, then ?`(m,n; k) = [ (r + 1)`? ( ` 2 ) n?1? t=k n?1? s=k ( n s )( n t )( m? 2n n? s? t )] / (m n ) , where r is given in (2.1). (g) For all 1 ? n ? m and 0 < ? ? 1, L?(m,n; 1) = ` is the smallest integer solution to the inequality n?1? i=0 (m? `n? i) ? m!(1? ?)(m? n)! . (2.5) Proof (a) Consider the set L? = {l}, with l = {1, . . . ,m}. L? is an L?(m,m; k)?set for the lottery ?m,m; k?, since ?(Um,m) = {Um}, and clearly ?(Um, k) ? ?(l, k) 6= ?, so that the desired result follows for all 1 ? k ? m and 0 < ? ? 1. (b) In order to guarantee that, for any element ?n in some set V? ? ?(Um, n) of cardinality at least ?(mn)(as given in Definition 1.2), there exists an element l ? L? such that ?(?n, n) ? ?(l, n) 6= ?, L has to consist of at least 100?% of all possible n?sets from Um in order to be a 100(1??)%?incomplete lottery set for ?m,n;n?, implying that L?(m,n;n) ? ??(mn)?. Any additional elements considered for inclusion in L?, render an unnecessary increase in the cardinality of L?. Therefore L?(m,n;n) ? ??(mn)?and the desired result holds. (c) If 2n ?m ? k, then any two n?sets of Um have at least k elements in common. Therefore any one n?set l from Um forms a complete lottery set and the desired result holds by (2.2). (d) Because r = 0 in the lottery ?m,n;n? (according to (2.1)), no n?set shares a common k?subset with any other n?set. Hence, the resource utilised by any n?set, is exactly 1/(m n ) and the result follows. (e) ?1(m,n; k) = (r+1)/(mn), where r is given in (2.1). For any 0 < ?? ? (r+1)/(mn), 1 ? L??(m,n; k) ? L?(m,n; k) = 1, according to (2.2) and Theorem 2.2(d), from which the result follows. (f) Let L be a playing set of ?m,n; k? consisting of ` disjoint n?sets from ?(Um, n). Such a set exists, because ` ? bm n c. Every v ? L shares a common k?subset with itself and r (as defined in (2.1)) other n?sets from ?(Um, n), although some n?sets are counted twice when considering all possible elements v ? L. No n?set is counted three (or more) times, since no n?set may consist of 3 (disjoint) k?subsets (n < 3k). Since L consists of disjoint n?sets (sharing no common i?subset from Um), the expression in (2.4) in Lemma 2.2 reduces to ?02(m,n; k) = ?n?1t=k ?n?1 s=k ( n s )( n t )( m?2n n?s?t ) , summed over all (` 2 ) pairs of n?sets. (g) Let L be an L?(m,n; 1)?set for ?m,n; 1? of cardinality `. Every additional (distinct) element of Um incorporated into an n?set of L (utilised by L) necessarily increases the probability of winning a 1?prize via L. Therefore, choosing disjoint n?sets from Um is the optimal way of constructing L for lotteries of the form ?m,n; 1?. Furthermore, the number of elements of Um not utilised by L (there are m ? ` n such elements) should not be so large that the probability of winning a 1?prize via L drops below ?. Equivalently stated, ( m? ` n n ) ? ( m n )( 1? ?), (2.6) which simplifies to (2.5), from which ` may, in principle, be solved. 2.3. Explicit values for L?(m,n; k) and ?`(m,n; k) 19 The following special cases are a direct consequence of Theorem 2.3. Corollary 2.2 (Special cases of L?(m,n; k) and ?`(m,n; k)) (a) ?1(m,m; k) = 1, for all 1 ? k ? m. (b) ?1(m,n; k) = (r + 1)/(mn), for all 1 ? k ? n ? m, where r is given in (2.1).(c) ?1(m,n; k) = 1, for all 1 ? k ? n ? m such that 2n ? m+ k. (d) L1(m,n; 1) = bmn c, for all 1 ? n ? m.(e) For all 0 < ? ? 1, L?(m,n; 1) = ? ??????? ??????? d?me , if n = 1 ? m? 2m?1? ? 1+4m(m?1)(1??) 4 ? , if n = 2 ? m? 2m?3? q 5+4 ? 1+m(m?1)(m?2)(m?3)(1??) 8 ? , if n = 4 ? m. (2.7) Proof (a) This result follows as a direct consequence of Theorem 2.3(a) when ? = 1. (b) This result follows as a direct consequence of Theorem 2.3(c) when ` = 1. (c) This result follows as a direct consequence of Theorem 2.3(c) when ? = 1. (d) In this special case (? = 1) of Theorem 2.3(g), we seek the smallest ` ? ( , ` = `? say, for which (m? ` n)(m? ` n? 1)(m? ` n? 2) ? ? ? (m? ` n? n+ 1) ? 0. (2.8) The lefthand side of (2.8) vanishes for any ` ? {m?n+1 n , m?n+2 n , . . . , m?2 n , m?1 n , m n } = I. Hence, (2.8) is satisfied in the intervals m+ 2s? 1 n ? 1 ? ` ? m+ 2s n ? 1, for all s = 1, 2, . . . , n 2 , when n is even, or in the intervals m+ 2s? 1 n ? 1 ? ` ? m+ 2s n ? 1, for all s = 1, 2, . . . , n? 1 2 , or ` ? m n , when n is odd. The set I contains at most one integer, since m n ? m?n+1 n = n?1 n < 1. To see that I contains at least one integer, observe that the elements of I may be written as m?i n , i = 0, . . . , n ? 1. Now, if m ? i (mod n), then m?i n is integer. And since m ? i (mod n) for some i ? {0, . . . , n ? 1} it follows that `? = L1(m,n; 1) ? I. Moreover, this unique integer element of I is exactly m?in = bmn c (in accordance with a result in [13]). (e) For n ? {1, 2, 4} the roots of the n?th degree polynomial F (n)(`) = n?1? i=0 (m? ` n? i)? m!(1? ?)(m? n)! , (2.9) derived from (2.5), are given by `? = ?m if n = 1 ? m, `?? = 2m?1? ? 1+4m(m?1)(1??) 4 if n = 2 ? m, `? ?,? = 2m?3? q 5?4 ? 1+m(m?1)(m?2)(m?3)(1??) 8 `?+,? = 2m?3+ q 5?4 ? 1+m(m?1)(m?2)(m?3)(1??) 8 ? ?? ?? if n = 4 ? m. 20 CHAPTER 2. PROPERTIES OF L?(m,n; k) AND ?`(m,n; k) ) * +,+.-0/ 132 46587 90:8/ ; ) <=) >@? 9 1A2 4B587 9C:EDAF (a) F(1)(`) with real root ` ? {`?} G=H I'JEJ.K@LCM N3O PRQ8S T0U8M PWV XZY [ \]H \=HH ^@_ X ^@_ ` H T NAO PWQ8S TCUEaAb (b) F(2)(`) with real roots ` ? {`? ? , `?+} >0 < 0 >0 `? ?,+ 0 `?+,+ 0 Roots: F(4)(`): 2m?3 8 2m?3? ? 5 8 2m?3+ ? 5 8 ` F(4)(`)=0 (c) F(4)(`) with real roots ` ? {`? ?,+, `?+,+} and complex roots ` ? {`? ?,? , `?+,?} ced ced fedfed cgd hRijZk l d h@ijZk j d h@ilmk j d hRilmk l d n'oEo.p@qCr s3t u@v8w x0y8r zW{ j&|}j?~ ? ? zW{ j&|@l?~ ? ? zW{ j&| ? x sAt uRv8w xCyE?A? (d) F(4)(`) with real roots ` ? {`? ?,+, `??,?, `?+,?, `?+,+} Figure 2.2: Qualitative schematic representation of the polynomial F (n)(`) given in (2.9) for determining (a) L?(m, 1; 1), (b) L?(m, 2; 1) and (c)?(d) L?(m, 4; 1). The formula for L?(m,n; 1) for n ? {1, 2, 4} is given in (2.7). For n = 1 the polynomial satisfies F(1)(`) { > 0 if ` < `? < 0 if ` > `? in a neighbourhood of `? (see Figure 2.2(a)). Hence, we immediately have that L?(m, 1; 1) = d?me. Now consider the case n = 2 (see Figure 2.2(b)). For any fixed m ? 2 the interval [`? ? , `?+] is smallest when ? = 1, in which case [`? ? , `?+]min = [m2 , m+12 ], which contains the integer d`??e for both equivalence classes of m (mod 2). Hence, for 0 < ? ? 1, the interval [`? ? , `?+] contains the integer d`??e, from which the formula in (2.7) follows for L?(m, 2; 1). Finally, consider the case n = 4. First observe that `? ?,+, `?+,+ ? ? for all m ? 4 and 0 < ? ? 1. Now we distinguish between two different subcases, depending on whether `? ?,? , `?+,? are real or complex. Suppose `? ?,? , `?+,? ? ? \ ? (see Figure 2.2(c)). This occurs when 0 < ? < 1? 916m(m?1)(m?2)(m?3) and implies that F(4)(`) ?? ? > 0 if ` < `? ?,+ < 0 if `? ?,+ < ` < `?+,+ > 0 if ` > `?+,+. For any fixed m ? 4 the width of the interval [` ? ?,+, `?+,+ ] is `?+,+ ? `??,+ = ? 5 + 4 ? 1 +m(m? 1)(m? 2)(m? 3)(1? ?) 4 . 2.4. Binary programming solution approaches 21 This width is smallest when ? = 1, in which case [` ? ?,+, `?+,+ ] min = [ m?3 4 , m 4 ] , which clearly contains an integer for all equivalence classes of m (mod 4), since m?14 , m?24 ? [ m?3 4 , m 4 ] . Moreover, this integer is given by d`? ?,+e, from which the formula in (2.7) follows for L?(m, 4; 1). Now suppose `? ?,? , `?+,? ? ? (see Figure 2.2(d)). It has been established (above) that the interval[` ? ?,+, `?+,+ ] contains an integer. Furthermore, the width of the interval (` ? ?,? , `?+,? ) is `?+,? ? `??,? = ? 5? 4 ? 1 +m(m? 1)(m? 2)(m? 3)(1? ?) 4 . This width is largest when ? = 1, in which case (` ? ?,? , `?+,? ) max = ( m?2 4 , m?1 4 ) clearly does not contain an integer for any equivalence class of m (mod 4). Hence, for all 1 ? 916m(m?1)(m?2)(m?3) ? ? ? 1 the interval [` ? ?,+, `?+,+ ]\ (` ? ?,? , `?+,? ) contains the integer d`? ?,+e, from which the formula in (2.7) follows for L?(m, 4; 1). The reader might question the absence of the special cases for n = 3 and n > 4 in Theorem 2.2(e). This is due to the fact that the theoretical manipulation of the roots determined from (2.9) are far more intricate than those for the cases n = 1, 2, 4, even in the small case of n = 3. If it were possible to factor the polynomial in (2.9) analytically for general values of n ? m and 0 < ? ? 1, we would have an explicit, closed?form formula for the incomplete lottery number L?(m,n; 1). However, such a factorisation seems to be a very hard problem. In contrast, the polynomial in (2.9) is immediately factored for any n ? m if ? = 1. This situation seems to indicate that, for the class of incomplete lottery numbers L?(m,n; 1) at the very least, the incomplete lottery problem is harder to resolve than the complete lottery problem. This case will be argued further in the next section, for more general classes of lottery numbers. Finally, note that the bounds in (2.2) on L?(m,n; k) are best possible for general values of the parameters m, n, k, ? and `: the lower bound is achieved when 2n ? m+k by Theorem 2.3(c) (since then r+1 = (m n )), while the upper bound is achieved when k = n by Theorem 2.3(b). Similarly, the lower and upper bounds in (2.3) are equal when ` = 1, while the trivial upper bound in (2.3) is achieved when ` = L1(m,n; k), by definition. 2.4 Binary programming solution approaches The construction of L?(m,n; k)?sets and ?`(m,n; k)?sets for ?m,n; k?, such as those presented in Ex- amples 1.1 and 1.2, is not a trivial task. One intuitive solution approach towards the incomplete lottery and resource utilisation problems is to formulate integer programming problems containing binary set construction decision variables, with the objective of minimising the number of n?sets in an incomplete lottery set or maximising the resource utilisation proportion of playing sets of a fixed cardinality. We first consider the special case of the incomplete lottery problem, where ? = 1, in an attempt to formulate an integer program for solving the complete lottery problem. Formally this may be achieved by numbering the ( m n ) n?sets from Um in increasing lexicographic order and then minimising y1 = (mn)? i=1 xi subject to (mn)? j=1 aijxj ? 1, i = 1, . . . , ( m n ) xi = 0 or 1, i = 1, . . . , ( m n ) . ? ?????? ?? ??? ????? (2.10) Here xi is a binary decision variable taking the value 1 if the i?th n?set should be included in the complete lottery set and xi = 0 otherwise, aij is an adjacency parameter taking the value 1 if the i?th and j?th n?set share a common k?subset or if i = j, and taking the value 0 otherwise. The non? trivial constraint requires that, given any n?set w ? ?(Um, n), there should be at least one n?set from 22 CHAPTER 2. PROPERTIES OF L?(m,n; k) AND ?`(m,n; k) ?m,n; k? `m n ? Branches traversed Execution time (dd:hh:mm:ss) L1(m,n; k) ?7, 3; 2? 35 19 00:00:00:01 4 ?8, 3; 2? 56 6 00:00:00:03 5 ?9, 4; 3? 126 39 972 00:00:13:52 9 ?11, 3; 2? 165 274 781 00:03:32:28 10 ?10, 5; 4? 252 18 504 408 51:13:20:41 14 (a) Solutions to the complete lottery problem binary formulation in (2.10) ?m,n; k? ? `m n ? Branches traversed Execution time (dd:hh:mm:ss) L?(m,n; k) L1(m,n; k) ?7, 4; 3? 0.8 35 4 00:00:00:01 ? 3 4 ?8, 3; 2? 0.6 56 13 00:00:00:01 ? 4 5 ?9, 5; 4? 0.7 126 3 695 00:00:01:45 ? 7 9 ?11, 3; 2? 0.9 165 819 385 00:08:14:48 ? 10 10 ?10, 5; 4? 0.7 252 1 047 142 04:16:19:36 ? 12 14 (b) Solutions to the incomplete lottery problem binary formulation in (2.11) Table 2.1: Execution times of and branches traversed during the binary programming approach toward solving (a) the complete lottery problem formulation in (2.10) and (b) the incomplete lottery problem formulation in (2.11), using LINGO [139] (all executions were performed on an AMD Athlon 1.8 GHz personal computer with 256 MB memory). Boldface entries represent previously undetermined results. ?(Um, n), corresponding to a non?zero decision variable, sharing a common k?subset with w. If an optimal solution to (2.10) is found, then L1(m,n; k) = y1. Although it is possible to achieve global optima for small values of the parameters m and n via the binary programming problem (2.10), realistic parameter values (m = 49 and n = 6, for instance) render this approach practically infeasible. Table 2.1(a) gives an indication of the execution time of this approach, using the linear/integer programming solver LINGO [139] (all executions were performed on an AMD Athlon 1.8 GHz personal computer with 256 MB memory). LINGO employs the well?known branch?and?bound optimisation method for searching through the solution space. The number of branches traversed during the solution of (2.10) for certain values of m, n and k are also shown in Table 2.1(a). One attempt at generalising the integer program in (2.10) to incorporate the incomplete version of the lottery problem (i.e., when 0 < ? < 1), would rather be to consider minimising y?? = (mn)? i=1 xi subject to (mn)? j=1 aijxj ? 1, i = 1, . . . , ??(m n )? xi = 0 or 1, i = 1, . . . , ( m n ) , ? ???? ???? ? ??????? (2.11) using a similar notation as above. The difference between the formulation in (2.11) as opposed to that in (2.10) is that only the lexicographic first ??(m n )? n?sets from ?(Um, n) are required to share a common k? subset with w. An optimal solution to (2.11) will, however, only yield an upper bound L?(m,n; k) ? y?? to the incomplete lottery number, because a different selection of fewer than y?? elements from ?(Um, n) may, in fact, share a common k?subset with a (possibly completely) different set of ??(m n )? elements of ?(Um, n) than merely the lexicographic first ??(mn)? elements of ?(Um, n). In fact, the formulation in(2.11) should be performed (ab)times (where a = (mn)and b = ??(mn)?) in order to pinpoint the value of L?(m,n; k), each time requiring that a different subset of ??(mn)?n?sets from ?(Um, n) share a common k?subset with w. However, this approach is not practically feasible in view of the prohibitively large values of ( a b ) (where a = (m n ) and b = ??(m n )?), as shown in Table 2.2. Table 2.1(b) gives a similar indication of the execution times of above approach to establishing upper bounds on L?(m,n; k) (for 2.4. Binary programming solution approaches 23 m n ? 5 10 15 0.1 or 0.9 5.000 ? 100 1.221 ? 106 3.201 ? 1063 0.2 or 0.8 5.000 ? 101 8.861 ? 108 3.555 ? 1097? m 6 ? 0.3 or 0.7 1.000 ? 101 1.668 ? 1011 3.181 ? 10119 0.4 or 0.6 1.000 ? 101 1.715 ? 1012 3.726 ? 10131 0.5 1.000 ? 101 4.116 ? 1012 3.474 ? 10135 0.1 or 0.9 1.000 ? 101 4.065 ? 1028 1.049 ? 10423 0.2 or 0.8 4.500 ? 101 2.981 ? 1044 1.314 ? 10651? m 3 ? 0.3 or 0.7 1.200 ? 102 3.090 ? 1054 8.291 ? 10794 0.4 or 0.6 2.100 ? 102 1.364 ? 1060 1.109 ? 10876 0.5 2.520 ? 102 9.049 ? 1061 1.432 ? 10902 0.1 or 0.9 1.000 ? 101 1.781 ? 1035 1.587 ? 10907 0.2 or 0.8 4.500 ? 101 8.316 ? 1053 3.644 ? 101 396? m 2 ? 0.3 or 0.7 1.200 ? 102 5.480 ? 1065 2.470 ? 101 705 0.4 or 0.6 2.100 ? 102 2.514 ? 1072 7.279 ? 101 878 0.5 2.520 ? 102 3.633 ? 1074 1.335 ? 101 935 Table 2.2: An estimate of the number of formulations ( a b )(where a = (m n ) and b = ??(m n )?) to be solved when using the formulation in (2.11) to determine the exact value of L?(m,n; k). different values of the parameters m, n, k and ?) as well as the number of branches traversed during the solution of (2.11), when using LINGO (all executions were performed on an AMD Athlon 1.8 GHz personal computer with 256 MB memory). To determine an exact integer programming formulation of the incomplete lottery problem, a different (certainly non?trivial and non?linear) constraint is required. One solution approach might be to consider minimising y? = (mn)? i=1 xi subject to (mn)? p=1 (?1)p+1 ? ?? ( m n)? 1?i1 2n. (f) g(G?m,n; k?) = 3, for all 1 ? k < n < m. (g) The only class strongly regular lottery graphs are G?m, 2; 1? with parameters ((m2), r,m? 2, 4)for all m ? 2n, where r is given in (2.1). Proof (a) Two vertices in G?m,n; k? are adjacent if and only if they share a common i?subset for all k ? i ? n ? 1, yielding the degree of regularity r as in (2.1), according to the argument used to prove Lemma 2.1. (b) Define ? as the set of all possible permutations of the elements of Um. The function pi(v) (with pi ? ? and v ? ?(Um, n) = V (G?m,n; k?)) permutes the elements of v = {v1, . . . , vn} according to the elements of pi (i.e., pi(v) = {pi(v1), . . . , pi(vn)}). The set of all possible functions pi(v) with pi ? ?(Um) and v ? V (G?m,n; k?) form an automorphism group on V (G) (i.e., adjacency between any two vertices in G?m,n; k? is preserved, given any permutation of the elements of Um). This follows by the ubiquity of the roles of the numbers in Um, which may be seen as arbitrary symbols. Therefore G?m,n; k? is vertex?transitive. 34 CHAPTER 3. THE LOTTERY GRAPH ? ????? ?????? ????? ? ????? ? ? ????? ????? ????? ???ffi? ??????????A???????????? ? ? ?]?m???}?8? ??? ? ????????????????????? ? ?????}? ?.?????????&?8???C??? ? ?fiffffifl ?"!8?$#C?&% '( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (* + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (, ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( - ?????=?m???}?8? ??? ? ?.?/???.?????0? ? ?1???}? ?0? ???????&?@???C??? ? ?2ffffifl ?"!8?$#C?&% ? ? Figure 3.6: All possible configurations of [non]adjacent vertices in G?m,n; k?. (c) From (3.1) we have that the density of the lottery graph G?m,n; k? of order p and size q is given by q(p 2 )= 12 ?pi=1 degG?m,n;k?(vi)p(p?1) 2 = ( m n ) r( m n )(( m n ) ? 1 )= r(m n ) ? 1 . (3.3) (d) The first equality in (3.2) follows from the fact that the lottery graph G?m,n; k? is vertex?transitive (yielding equal eccentricities for all vertices). Furthermore, suppose the two vertices v0 and v are furthest apart in G?m,n; k? and that their labels have x elements of Um in common. Then x = 0 if m > 2n and x = 2n ?m if m < 2n. Therefore, construct a shortest path W : v0, v1, v2, . . . , vl?1, v in the following way: For any vi select a neighbouring vertex vi+1 in G?m,n; k? whose label has the most elements of Um in common with vi. Because the labels of any two neighbouring vertices in G?m,n; k? differ in at most n ? k elements of Um, it follows that the labels vi and v have exactly x + i(n ? k) elements of Um in common, for all 0 ? i ? l ? 1. Because vl?1 ? N(v) (and therefore shares a common k?subset with v), it follows that x+ (l ? 1)(n? k) ? k. This yields l ? bn/(n? k)c if m ? 2n and l ? b(m? n)/(n? k)c if m < 2n. Since l is minimal, the desired result follows. Note that G?m,n;n? contains (m n ) isolated vertices and therefore no edge. It therefore follows that rad(G?m,n;n?) =?. (e) Let u? and v? be vertex complements of u and v respectively in G?m,n; k?. It remains to be shown that u and v share a k?subset if and only if u? and v? share a (m + k ? 2n)?subset. Suppose the labels of u and v have k elements in common. The number of elements common to the labels of u? and v? is m ? |{elements common to u and v} + {elements unique to u} + {elements unique to v}| = m? [k + (n? k) + (n? k)] = m+ k ? 2n. A similar argument may be used to prove to converse. Hence two vertices in G?m,n; k? are adjacent if and only if the complements of these vertices are adjacent in G?m,m? n;m+ k ? 2n?. (f) It is shown that the labels of at least 3 vertices share a common k?subset in G?m,n; k?, if 1 ? k < n < m. For this we require that ( m?k 3 ) > 0 when considering (say) the lexicographic ordered vertex labels {1, . . . , n?1, n}, {1, . . . , n?1, n+1} and {1, . . . , n?1, n+2} (sharing at least a k?subset). This condition holds if k ? m ? 3. The special (worst) case where k = m ? 2 results in G?m,m ? 1;m ? 2? ' Km, having girth 3. (g) Consider all the possible [non]adjacent configurations of vertices in G?m,n; k?, as shown in Figure 3.6. A unique configuration is required for both adjacent and nonadjacent vertices, because the common neighbourhood shared by any two [non]adjacent vertices (say u and v) in G?m,n; k? is dependent on (an increasing function of) the common elements between u and v, as will be argued later in this section. Requiring a unique [non]adjacent vertex configuration (i.e., [k = 1] n ? k = 1) applies only to lotteries of the form ?m, 2; 1?. In the case of the vertices u and v being adjacent (sharing k = 1 element), the common neighbourhood cardinality is given by ?12(m, 2; 1) = m ? 2 in (2.4). In the case were u and v are nonadjacent, the equation in (2.4) reduces to ?02(m, 2; 1) = 4. The graph G?7, 3; 2? in Figure 3.4 of Example 3.1 is r = (32)(41)= 12?regular according to (2.1), a radius and diameter of 3 according to (3.2) (attained by the path {1, 2, 3}, {1, 2, 5}, {2, 5, 6}, {5, 6, 7}). The girth is given by g(G?7, 3; 2?) = 3 with a 3?cycle being {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 2, 3}. According 3.2. Definition and properties of the lottery graph 35 to Theorem 3.3(e), G?7, 3; 2? ' G?7, 4; 3?, implying that L1(7, 3; 2) = L1(7, 4; 3) = 4 by Example 1.1, so that no search for minimal (partial) dominating sets in the lottery graph G?7, 4; 3? is necessary, if such sets are known for G?7, 3; 2?. The following corollary is a direct consequence of Theorem 2.3 and Theorem 3.3. Corollary 3.1 (Properties of the lottery graph G?m,n; k?) (a) The lottery graph G?m,n; k? is edge?transitive for all 1 ? k ? n ? m. (b) The lottery graph G?m,n; k? is connected for all 1 ? k < n ? m. (c) The lottery graph G?m,n; k? ' K(mn) for all 1 ? k < n ? m satisfying 2n ? m+ k. Proof (a) For any permutation ? ? ?(Um) the automorphism defined by pi?(vu) = pi?(v)pi?(u) acts transitively on E(G?m,n; k?) for all 1 ? k ? n ? m. (b) Rad(G?m,n; k?) = diam(G?m,n; k?) is finite for all 1 ? k < n ? m. (c) The proof of this result is similar to the proof of Theorem 2.3(e). Finally, it is possible to characterise completely when the complete lottery number L1(m,n; k) takes any one of the values 1, 2 or 3, as is established7 in the following theorem. However, before this characterisation may be achieved, it is necessary to introduce a notation able to capture the overlapping structure of a playing set for the lottery ?m,n; k?. Given a vertex subset L? ? ?(Um, n) = V (G?m,n; k?) of the lottery graph G?m,n; k?, it is possible to interchange the roles of elements in Um, thereby yielding different vertex subsets (of the same cardinality) for G?m,n; k?. This merely constitutes a relabelling of the vertices of G?m,n; k?, with the relabelled graph being isomorphic to G?m,n; k?. Although these subsets may be considered different, they still inherit the same structure regarding the overlappings of their vertex label (n?set) elements. The (n?set) overlapping structure of a vertex subset L` = {T1, T2, . . . , T`} may be captured by defining the function x (`) (t`t`?1???t2t1)2 = ????? ?` i=1 { Ti if ti = 1 T ?i if ti = 0 ????? , where (t`t`?1 ? ? ? t2t1)2 denotes the binary representation of an integer in the range {0, 1, . . . , 2`? 1} and where T ?i denotes the complement Um \ Ti. This function induces the 2`?vector ~X(`) = ( x (`) (000???00)2 , x (`) (000???01)2 , . . . , x (`) (111???11)2 ) , which represents all the information required to describe the n?set overlapping structure of any vertex subset of cardinality ` for G?m,n; k? (and therefore also any 100?%?partial dominating set [{L?(m,n; k), ?`(m,n; k)}?set] for G?m,n; k? [?m,n; k?]). The entries of the vector ~X(`) add up to m and may be interpreted as follows: ? there are x(`)(000???00)2 elements of Um contained in no label of L`, ? there are x(`)(000???01)2 elements of Um contained in the single label T1 of L`, ? there are x(`)(000???10)2 elements of Um contained in the single label T2 of L`, ? there are x(`)(000???11)2 elements of Um contained in the overlapping labels of T1 and T2 of L`, etc. It may sometimes be more convenient to write the subscripts of entries in the vector ~X(`) in decimal form. The multiplicity of an overlapping n?set structure ~X(`) (i.e., the number of different vertex subsets of G?m,n; k? conforming to the structure ~X(`)), given by M ( ~X(`) ) = m!?2`?1 j=0 x (`) j ! , (3.4) 7To the best knowledge of the author, no such characterisation of when the complete lottery numbers L1(m,n; k) = 2, 3 has ever been attempted. However, the characterisation of when L1(m,n; k) = 1 is known [234]. 36 CHAPTER 3. THE LOTTERY GRAPH 3547698;:9<9=9>5?@3?AB3.3C3D4E3?6?3F8 GIH GKJ GKL G$M N OFP Q L N OFP Q J N O?P Q J N OFP Q MH H H REHSM (a) Graphical representation of the set L in Example 3.2 TVU TVW TYX T?Z [ X?Z (b) Overlapping 6?set structure of the set L in Example 3.2 Figure 3.7: Graphical representations of complete lottery set structures for the lottery ?14, 6; 3?. represents the actual number of structurally similar overlappings that are possible when interchanging the roles of the elements of Um8. The following example is presented to clarify the above notation. Example 3.2 Consider the lottery graph G?14, 6; 3?, for which the lower domination number [complete lottery number] is known as ?(G?14, 6; 3?) = L1(14, 6; 3) = 4. A minimum dominating set [L1(14, 6; 3)? set] for G?14, 6; 3? [?14, 6; 3?] is given by L = {T1, T2, T3, T4} where the vertex labels are given by T1 = {1, 2, 3, 4, 5, 8}, T2 = {2, 3, 4, 6, 7, 8}, T3 = {5, 6, 7, 8, 13, 14} and T4 = {9, 10, 11, 12, 13, 14}. Figure 3.7(a) represents the set L in tabular format, while Figure 3.7(b) captures the overlapping 6?set structure of L in Venn?diagram format. From Figure 3.7(b) it is clear that x (4) (0001)2 = x (4) 1 = 1, x (4) (0011)2 = x (3) 3 = 3, x (4) (0101)2 = x (4) 5 = 1, x (4) (0110)2 = x (4) 6 = 2, x (4) (0111)2 = x (4) 7 = 1, x (4) (1000)2 = x (4) 8 = 4 and x (4) (1100)2 = x (4) 12 = 2 and that x(4)(t4t3t2t1)2 = 0 for all other combinations of the bits t1, t2, t3 and t4. This implies that ~X(4) = (0, 1, 0, 3, 0, 1, 2, 1, 4, 0, 0, 0, 2, 0, 0, 0). Note that the notation ~X(4) and the Venn?diagram representation in Figure 3.7(b) are unique for any given overlapping structure of the vertex labels T1, T2, T3 and T4 as opposed to the tabular form presented in Figure 3.7(a). If we choose the elements of U14 in a different order, a different table results. In fact, there are M( ~X(4)) = 14!/(3!2!4!2!) = 151 351 200 different ways to form a table such as the one shown in Figure 3.7(a) from the overlapping 6?set structure shown in Figure 3.7(b), if the order of the 6?set listing is not altered. To pinpoint a unique tabular representation for the given lottery set structure, we may consider all permutations of U14 and choose, for example, the lexicographic first one. We are now in a position to characterise exactly when the complete lottery number assumes the values 1, 2 or 3. Theorem 3.4 (Characterisation of small values of L1(m,n; k)) For all 1 ? k ? n ? m, (a) L1(m,n; k) = 1 if and only if 2n ? m+ k. (b) L1(m,n; k) = 2 if and only if 2k ? 1 + max{m? 2n, 0} ? n ? m? n+ k ? 1. (c) L1(m,n; k) = 3 if and only if n ? min{2k ? 2 + max{m? 2n, 0},m? n+ k ? 1} (3.5) and n ? { 3k ? 2 + max{m? 3n, 0} if m ? 2n 3 2k ? 1 + max{m? 32n, 0} if m < 2n. (3.6) 8A different way of determining the multiplicity of the structure ~X(`) is to consider the number of ways (combi- nations) in which the structure ~X(`) may be fixed when choosing elements from Um. Consider, for example, ~X(4) = (0, 1, 0, 3, 0, 1, 2, 1, 4, 0, 0, 0, 2, 0, 0, 0). There are `141 ?`133 ?`101 ?`92?`71?`64?`22? = 151 351 200 ways in which to choose such a vector from the elements of U14. 3.2. Definition and properties of the lottery graph 37 Proof (a) If 2n ? m+ k, then G?m,n; k? ' K(mn) (by Corollary 3.1(c)) for which the lower domination number is known to be 1. Hence L1(m,n; k) = 1. The converse is proved by means of a contra?positive argument. Consider an arbitrary vertex subset L? = {T ?} of G?m,n; k? of cardinality one, but suppose 2n < m+k. Then 2n?m ? k ? 1 < k, implying that there exist two vertex labels sharing at most a (k ? 1)?subset of Um. Hence ?(G?m,n; k?) = L1(m,n; k) 6= 1 and the desired result follows. (b) Suppose 2k ? 1 + max{m? 2n, 0} ? n. Let L? = {T ?1 , T ?2 } be a vertex subset of cardinality two of the lottery graph G?m,n; k?, for which x(2)(00)2 is a minimum. Then x(2)(00)2 = max{m? 2n, 0} and hence ?(T ?i , k) ? ?(w, k) 6= ? for at least one i ? {1, 2}, where w is an arbitrary winning vertex in G?m,n; k?, since n ? max{m? 2n, 0}+ (2k ? 1) (i.e., w is adjacent to either T ?1 or T ?2 ). Hence, L1(m,n; k) = 2. Conversely, suppose L1(m,n; k) = 2; an L1(m,n; k)?set being L? = {T ?1 , T ?2 }. Then n ? m+ k ? n? 1 from part (a) of this theorem. It remains to be shown that n > 2(k? 1) +max{m? 2n, 0}. Suppose, to the contrary, that n ? 2(k?1)+max{m?2n, 0}. Hence, by choosing at most (k?1) elements from each of the vertex labels T ?1 and T ?2 and the remainder from Um \ (T ?1 ?T ?2 ), a winning vertex label w may be constructed such that ?(T ?i , k)??(w, k) = ? (for i ? {1, 2}), implying that G?m,n; k? is not dominated. This contradiction, however, implies that n > 2(k?1)+max{m?2n, 0}, and the desired result follows. (c) It follows, by parts (a) and (b) of this theorem, that L1(m,n; k) 6= 1, 2 if and only if n ? m?n+k?1 and n ? 2(k ? 1) + max{m? 2n, 0}. Therefore L1(m,n; k) > 2 if and only if n ? min{2(k ? 1) + max{m? 2n, 0},m? n+ k ? 1}. (3.7) We first prove the theorem for the case m ? 2n. Suppose that (3.5) and the first inequality in (3.6) hold. Then it follows, by (3.7), that L1(m,n; k) > 2. We now show that L1(m,n; k) ? 3. Choose a vertex subset L = {T 1 , T 2 , T 3 } of cardinality three of G?m,n; k?, for which x(3)(000)2 is a minimum. Then x(3)(000)2 = max{m ? 3n, 0} and hence w is adjacent to T i for at least one i ? {1, 2, 3}, where w is an arbitrary winning vertex in G?m,n; k?, since n > max{m ? 3n, 0} + 3(k ? 1). Therefore, L is a dominating set for G?m,n; k?, and we conclude that L1(m,n; k) = 3. Conversly, suppose L1(m,n; k) = 3. Then (3.5) follows from (3.7). We show that n > 3(k?1)+max{m? 3n, 0} by proving that, for any dominating set, max{m? 3n, 0} ? x(3)(000)2 ? n? 3k + 2. (3.8) The first inequality in (3.8) is obvious. To prove the second inequality in (3.8), suppose, to the contrary, that x(3)(000)2 > n ? 3k + 2 for some minimum dominating set L  = {T 1 , T 2 , T 3 } for G?m,n; k?. In this case, if the winning vertex, w, consists of (at least) n? 3(k? 1) elements of Um \ (T 1 ? T 2 ? T 3 ) and (at most) k? 1 elements of each of T 1 \ (T 2 ?T 3 ), T 2 \ (T 1 ?T 3 ) and T 3 \ (T 1 ?T 2 ), it follows that w is not adjacent to any element in L, contradicting the fact that L is a dominating set for G?m,n; k?. Note that in the proof we assume x(3)(001)2 , x (3) (010)2 , x (3) (100)2 ? k?1. However, if this is not the case, the following possible ?worst case? is considered: we may have (say) x(3)(100)2 = n and x(3)(010)2 = x(3)(001) = k ? 1 ? y, where x(3)(000)2 = n?3(k?1)+y > n?3(k?1) for some y > 0. When constructing w to contain k?1?y, k ? 1 ? y, y, k ? 1 and n? 3(k ? 1) + y elements from respectively T 1 \ T 2 , T 2 \ T 1 , T 1 ? T 2 , T 3 and Um \ (T 1 ? T 2 ? T 3 ), it follows that ?(T i , k) ? ?(w, k) = ? for all i ? {1, 2, 3}. Again this contradicts the fact that L is a dominating set for G?m,n; k?. This completes the proof for the case m ? 2n. For the case m < 2n, we consider the complementary complete lottery problem ?m?, n?; k?? ? ?m,m ? n;m+ k ? 2n? by virtue of the isomorphism result in Theorem 3.3(e). We then have m? > 2n?, which is the first case, proved above. Therefore L1(m?, n?; k?) = 3 if and only if n? ? min{2k? ? 2 + max{m? ? 2n?, 0},m? ? n? + k? ? 1} (3.9) and n? ? 3k? ? 2 + max{m? ? 3n?, 0}. (3.10) We only have to show that (3.10) is equivalent to the second inequality in (3.6). From (3.10) we have m? n ? 3(m+ k ? 2n)? 2 + max{m? 3(m? n), 0}. 38 CHAPTER 3. THE LOTTERY GRAPH \ ] ^ _ `ba c dfehgjiEk?lnmodfehgjl prq ^jsut?vxw;y ejghiEk?l k y ejghiEk?l z {}| ~?? ? y ehgjl z}? y ehghl k ? pffiq ^jv ? ? ? ???b?????.?F?0?1? Figure 3.8: Graphical representation of the vertex subsets L(i) and L(i+1) in Lemma 3.1. This inequality simplifies to 2n ? 3k ? 2 + max{2m? 3n, 0}, which is equivalent to the second inequality in (3.6). It is also possible to determine explicitly the impact (difference in the number of common neighbours in G?m,n; k?) of an increment in the number of common elements between any two n?set vertex labels (i.e., x (2) (11)2) in a vertex subset of G?m,n; k?. From the next lemma, it follows that the resource utilised by a vertex subset of cardinality two in G?m,n; k? decreases as x(2)(11)2 increases, as long as L1(m,n; k) ? 3. Lemma 3.1 Suppose L1(m,n; k) ? 3 and let L(i+1) = {T (i+1)1 , T (i+1)2 } be any cardinality 2 vertex subset of G?m,n; k?, where the labels of L(i+1) share a common (i+1)?subset of Um (i.e., 0 < x(2)(11)2 = i+1 < n). Additionally, let L(i) = {T (i)1 , T (i)2 } be any cardinality 2 vertex subset of G?m,n; k?, where the labels of L(i) share a common i?subset of Um (i.e., x(2)(11)2 = i). Then the number of vertices in G?m,n; k? adjacent to both T (i)1 and T (i) 2 is strictly less than the number of vertices adjacent to both T (i+1)1 and T (i+1)2 . This difference is given by i? j=0 ( i j )( n? 1? i k ? 1? j )2( m? 2n+ i n+ 1? 2k + j ) . (3.11) Proof Consider a tabular representation of L(i+1) comprising two rows (denoting the elements of L(i+1)) and m columns (denoting the elements of Um), in which the (x, y)?th cell contains a cross if y ? Um is an element of T (i+1)x , and is empty otherwise. We only have to move one cross, from column a to column b (say), in this representation of L(i+1) to obtain a similar representation of the vertex subset L(i), as shown in Figure 3.8. We wish to count the difference between the number of vertices adjacent to both T (?)1 and T (?) 2 in these two representations. When the cross is moved as depicted in Figure 3.8, then only the number of vertices adjacent to T (?)2 can change. We therefore count: (1) the number of vertices in G?m,n; k? adjacent to both T (i+1)1 and T (i+1)2 , but not adjacent to T (i)2 ; (2) the number of vertices in G?m,n; k? adjacent to both T (i)1 and T (i)2 , but not adjacent to T (i+1)2 . The number of adjacent vertices obtained in (1) above, less that obtained in (2) above, gives the desired quantity. Number obtained from (1): Vertices ofG?m,n; k? in (1) should contain the element a ? Um, but not b ? Um. Furthermore, they should also contain at least k ? 1 elements from T (i+1)1 (not counting a) and exactly k ? 1 elements from T (i+1)2 ; Number obtained from (2): Vertices of G?m,n; k? in (2) should contain the element b ? Um, but not a ? Um. Furthermore, they should also contain at least k elements from T (i+1)1 and exactly k ? 1 elements from T (i+1)2 (not counting b). It is easy to see that the enumeration in (1) less that of (2) is achieved by the number of vertices in G?m,n; k? with labels that share exactly k ? 1 elements of T (i+1)1 and exactly k ? 1 elements of T (i+1)2 3.3. Symmetric representation of the lottery graph 39 (recall that a and b are not counted). This number of (n? 1)?sets is given by( i j )( n? 1? i k ? 1? j )2( m? 2n+ i n+ 1? 2k + j ) , (by virtue of Lemma 2.2) where j denotes the number of common elements between the vertex labels in L(i+1) (i.e., x(2)(11)2). By allowing j to vary within the range {0, . . . , i} in the above expression, the desired result is obtained. It remains to be shown that the expression in (3.11) cannot be zero. This may be achieved by showing that there exists a j such that n ? 1 ? i ? k ? 1 ? j and that m ? 2n + i ? n + 1 ? 2k + j. That is, k?n+i ? j ? m?3n+i+2k?1. Thus, for such a j to exist, we require that k?n+i ? m?3n+i+2k?1, which simplifies to 2n < m+ k, which is exactly the requirement that the vertex subset should contain at least two vertices (n?sets), according to the characterisation in Theorem 3.4(a). It follows from Lemma 3.1 that the resource utilised by a vertex subset of cardinality two of G?m,n; k? decreases as x(2)(11)2 increases, as long as L1(m,n; k) ? 3. Therefore, all L?2(m,n;k)(m,n; k)?sets have the structure ~X(2) = (max{m? 2n, 0}, n? max{2n?m, 0}, n? max{2n?m, 0},max{2n?m, 0}) in cases where L1(m,n; k) ? 3. In such cases the corresponding resource utilisations, ?2(m,n; k), are given by( 2(r + 1)? ?max{2n?m,0}2 )/(m n ) , with r given in (2.1). 3.3 Symmetric representation of the lottery graph The lottery graph contains an inherent symmetry which becomes apparent in its graphical representation by ordering the vertices according to certain rules. These rules are described somewhat imprecisely in Algorithm 1. Algorithm 1 is illustrated with a step?by?step inspection of drawing the lottery graph G?5, 3; 2? in the following example. Algorithm 1 Symmetric representation algorithm for G?m,n; k? Input: The lottery parameters m, n and k. Output: A symmetrical representation of the lottery graph G?m,n; k? in the plane. 1: Place m vertices of an auxiliary graph on the circumference of a circle and label these vertices lexicographically, using the numbers 1, . . . ,m. 2: Draw all possible cycles Cn on a subset of n of the m vertices, excluding equivalent rotations of cycles of the resulting (m,n)?graph. The vertex labels of every non?equivalent Cn correspond to some n?subset, say Tj = {t1, t2, . . . , tn} (called a vertex generator), of the possible (mn)vertices of G?m,n; k?. 3: From every vertex generator Tj, a specified selection/partition of n?subsets (say Ti) may be generated by determining ti + j (mod m) for all ti ? Tj, i = 1, . . . , n and j = 1, . . . ,m? 1. All these vertices from a single generator are placed on the circumference of a circle of a certain radius in the lottery graph. 4: The lottery graph G?m,n; k? is drawn with vertices arranged (lexicographically) according to the different vertex generators in concentric circles of different radii. Example 3.3 Consider the lottery graph G?5, 3; 2? on (53)= 10 vertices. The only two possible (lexico- graphically first) vertex generators (up to rotation isomorphism) are shown in the large boxes in Figure 3.9(a)?(b). Here {1, 2, 3} generates T1 = {{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {1, 4, 5}, {1, 2, 5}}, {1, 2, 4} generates T2 = {{1, 2, 4}, {2, 3, 5}, {1, 3, 4}, {2, 4, 5}, {1, 3, 5}}. Arranging the elements of T1 and T2 lexicographically on the circumference of two concentric circles and adding the relevant edges, a (well?known) symmetric representation of the lottery graph [complement] G?5, 3; 2? [G?5, 3; 2?] is obtained, as shown in Figure 3.9(c) [(d)]. The labels of the vertices are shown in Figure 3.9(e). 40 CHAPTER 3. THE LOTTERY GRAPH ? ? ? ? ? generates ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (a) Vertex generator {1, 2, 3} that generates the vertex subset T1 of G?5, 3; 2? ? ? ? ? ? generates ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (b) Vertex generator {1, 2, 4} that generates the vertex subset T2 of G?5, 3; 2? (c) G?5, 3; 2? (d) G?5, 3; 2? ? ?$? ? ? ? ? ? ? ? ? ? ? ? ??? ?j? ? ? ? ? ??? ? ? ? ? ??? ? ? ? ? ? ?1??? ?.? ?1? ??? ? ? ? ? ? ?j?? ? ? ? ? ? ??? ? ? ? ? ???F? ??? ?1? ?&? ??? (e) (Partition of) 3?sets for ?5, 3; 2? Figure 3.9: Subfigures (a)?(b) represent the only two possible vertex generators for ?5, 3; 2?, while the corresponding lottery graph [complement] G?5, 3; 2? [G?5, 3; 2?] is displayed in subfigure (c) [(d)], with the corresponding vertex labels in subfigure (e). Interestingly enough, the well?known Petersen graph emerges as the symmetric representation of the lottery graph complement G?5, 3; 2?, according to Algo- rithm 1. 3.4. Analysis of small lotteries 41 (a) G?7, 3; 2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (b) 3?sets for ?7, 3; 2? Figure 3.10: Symmetric graph representation of G?7, 3; 2? obtained by Algorithm 1. Another (abbreviated) application of Algorithm 1 is presented in the following example for the lottery ?7, 3; 2?. Example 3.4 (continuation of Example 3.1) Reconsider the lottery ?7, 3; 2? of Example 3.1. Using Algorithm 1, the symmetric representation of the lottery graph G?7, 3; 2?, presented in Figure 3.10, was obtained. The construction is rather tedious, and hence only the final result is shown. The reader should note that different vertex generators (as described in Algorithm 1) would yield different (yet isomorphic) representations of G?m,n; k?. Hence, the choice of vertex generators (and therefore the placement and relative rotation of the concentric circles) might be a tedious process, which may be abbreviated somewhat through experience, although a lexicographic approach to these uncertainties was found to be best suited. Algorithm 1 was used to represent graphically some of the lottery graphs presented in the following section. 3.4 Analysis of small lotteries Graphical representations of the lottery graphsG?m,n; k? or their complementsG?m,n; k? for all lotteries ?m,n; k?, where 1 ? k < n < m ? 10, are shown in Figure 3.11. Only cases where the lesser dense of the two graphs has density not exceeding 0.5 and/or order not exceeding 35 (due to clarity of visual appearance) are shown. Emboxed vertices of different line styles were used to represent elements of one possible L?(m,n; k)?set for ?m,n; k?, yielding a sharp upper bound on L?(m,n; k) in each case, for the special separating values ? = ?i(m,n; k), where i = 1, . . . , L1(m,n; k). Table 3.1 contains the values of the complete lottery numbers L1(m,n; k) for the small feasible values of 1 ? k ? n ? m ? 10 (i.e., including cases not shown in Figure 3.11), as a summary of the results presented in this section. 42 CHAPTER 3. THE LOTTERY GRAPH (a) G?3, 2; 1? ' K3: Order: 3; Regularity: 2; Density: 1 ????? ??? ????? ??? ????? ??? (b) 2?sets for ?3, 2; 1?; : L?(3, 2; 1) = 1 (0 < ? ? 1) (c) G?4, 2; 1?: Order: 6; Regularity: 4; Density: 1115 ????? ??? ????? ??? ????? ??? ????? ??? ????? ??? ????? ??? (d) 2?sets for ?4, 2; 1?; : L?(4, 2; 1) = 1 (0 < ? ? 56 ) : L?(4, 2; 1) = 2 ( 56 < ? ? 1) (e) G?4, 3; k? ' K4: Order: 4; Regularity: 3; Density: 1 (k = 1, 2) ?ff?flfi ffi?fi ?! ?"ffi?fi #?fi ?! ?ff?flfi #?fi ?! ?ff?flfi ffi?fi #"! (f) 3?sets for ?4, 3; k? (k = 1, 2); : L?(4, 3; k) = 1 (0 < ? ? 1) Figure 3.11: Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 3.4. Analysis of small lotteries 43 (g) G?5, 2; 1? ' G?5, 3; 2?: Order: 10; Regularity: 3; Density: 1545 $&%?' (&) $?*&' (&) $?*&' +?) $,%"' *ff) $?-&' +ff) $&%?' +ff) $"(,' +ff) $&%?' -?) $?-&' (&)$ff*ff' -ff) ."/&0 1&0 2?3 ."/ff0 4ff0 2?3 .ff5"0 4&0 2?3 .?/ff0 4ff0 1ff3.&5"0 /ff0 4ff3 .ff5"0 /ff0 2?3 ."4ff0 1,0 2?3 .ff5"0 /&0 1ff3 .ff5"0 1&0 2?3 .ff5"0 4ff0 1ff3 (h) 2?sets for ?5, 2; 1?; (i) 3?sets for ?5, 3; 2?; : L?(5, 2; 1) = L?(5, 3; 2) = 1 (0 < ? ? 25 ) : L?(5, 2; 1) = L?(5, 3; 2) = 2 ( 25 < ? ? 1) (j) G?5, 3; 1? ' K10: Order: 10; Regularity: 9; Density: 1 687&9 :?9 ;8< 6&=?9 >?9 :?< 6?7ff9 =?9 ;8< 6ff=?9 :?9 ;8< 6?7ff9 >?9 ;8< 6&=?9 >?9 ;8< 6ff>?9 :?9 ;,< 6?7ff9 >?9 :?< 687&9 =89 :?< 687&9 =?9 >8< (k) 3?sets for ?5, 3; 1?; : L?(5, 3; 1) = 1 (0 < ? ? 1) (l) G?5, 4; k? ' K5: Order: 5; Regularity: 4; Density: 1 (k = 1, 2, 3) @?A"B CffB DffB E?F @?A"B DffB G&B E?F @"C?B D?B GffB E"F @ffAflB C?B D?B G?F@?A"B CffB G&B E?F (m) 4?sets for ?5, 4; k? (k = 1, 2, 3); : L?(5, 4; k) = 1 (0 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 44 CHAPTER 3. THE LOTTERY GRAPH (n) G?6, 2; 1? ' G?6, 4; 3?: Order: 15; Regularity: 8; Density: 60105 H?I"J K"L H"M?J NflL H?O"J NflL H?K?J PflL H?N"J P?L H?O"J K"L H?K"J NflL H?I"J OflL H"M?J OflL H?I"J PflL H"M?J PflL H"M?J IflL H?O"J PflL H"M?J K"L H?I"J NflL Q"R?S T"S U"S VflW Q"R?S X"S U?S YflW Q?XflS U?S V"S YflW Q"R?S TflS V"S YflW Q"R?S XflS V"S YflW Q?T"S U"S V"S YflW Q?X"S T"S U"S VflW Q?XflS T"S U?S YflW Q"R?S X"S T"S VflW Q"R?S XflS T"S YflW Q"R?S U?S VflS YflW Q"R?S X"S TflS U"W Q"R?S X"S U?S VflW Q"R?S T"S U"S YflW Q?X"S T"S VflS YflW (o) 2?sets for ?6, 2; 1?; (p) 4?sets for ?6, 4; 3?; : L?(6, 2; 1) = L?(6, 4; 3) = 1 (0 < ? ? 915 ) : L?(6, 2; 1) = L?(6, 4; 3) = 2 ( 915 < ? ? 1415 ) : L?(6, 2; 1) = L?(6, 4; 3) = 3 ( 1415 < ? ? 1) (q) G?6, 3; 1?: Order: 20; Regularity: 2; Density: 10190 Z?[fl\ ]?\ ^?_ Z?[fl\ ]?\ `"_ Z?[fl\ ]?\ a"_ Z?[?\ b?\ `"_ Z?[?\ ^?\ `"_ Z?[?\ ^?\ afl_ Z?[?\ `"\ a"_ Zfl]?\ b?\ ^?_ Zfl]"\ b"\ `fl_ Zfl]"\ b?\ a"_ Zfl]?\ ^?\ `fl_ Zfl]"\ `"\ a"_ Zflb?\ ^ff\ a"_ Zflb?\ `?\ a"_ Z?[fl\ ]?\ bfl_ Z?^ff\ `?\ a"_ Z?[?\ b"\ a"_ Z?[fl\ b?\ ^?_ Zfl]?\ ^ff\ a"_ Zflb"\ ^ff\ `"_ (r) 3?sets for ?6, 3; 1?; : L?(6, 3; 1) = 1 (0 < ? ? 1920 ) : L?(6, 3; 1) = 2 ( 1920 < ? ? 1) (s) G?6, 3; 2?: Order: 20; Regularity: 9; Density: 90190 cffd&e f,e g&h cfff,e g,e i&h c"g8e i&e jffh c,kffe i&e j&h c,kffe d&e j&h c?d,e g,e jffh c,k?e f,e iffh cffd,e g,e i&h c,kffe f&e g,h c,kffe f&e j&h cffd,e i&e j&h cffd,e f&e i&h c,k?e d,e g&h cffd&e f,e jffh c,kffe d&e i&h cfff,e i&e j&hlc,k?e g8e jffh c,kffe g,e i&h cfff&e g8e jffh c,kffe d&e f&h (t) 3?sets for ?6, 3; 2?; : L?(6, 3; 2) = 1 (0 < ? ? 12 ) : L?(6, 3; 2) = 2 ( 12 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 3.4. Analysis of small lotteries 45 (u) G?6, 4; k? ' K15: Order: 15; Regularity: 14; Density: 1 (k = 1, 2) m"n?o p"o q"o rfls m?n?o p"o q"o tfls m"n?o p"o u"o rfls m"n?o p"o u?o tfls m"n?o p"o r"o tfls m"n?o q"o u?o rfls m"n?o q"o u?o t?s m"n?o qflo r"o tfls m"n?o u?o r"o tfls m?p"o q"o u?o rfls m?p"o q"o u?o tfls m?p"o q"o r"o tfls m?p"o u?o r"o tfls m?q"o u?o r"o tfls m"n?o p"o q"o u"s (v) 4?sets for ?6, 4; k? (k = 1, 2); : L?(6, 4; k) = 1 (0 < ? ? 1) (w) G?6, 5; k? ' K6: Order: 6; Regularity: 5; Density: 1 (k = 1, . . . , 4) v,w&x y8x z8x {,x |ff} v,w&x ~,x y,x {,x |&} v,w&x ~8x y8x z?x |ff} vff~8x y8x z?x {8x |&} v,w&x ~8x z?x {8x |ff} v,w&x ~8x y8x z?x {&} (x) 5?sets for ?6, 5; k? (k = 1, . . . , 4); : L?(6, 5; k) = 1 (0 < ? ? 1) (y) G?7, 2; 1?: Order: 21; Regularity: 10; Density: 105210 ?"??? ?"? ???"? ??? ???"? ?fl? ???fl? ??? ???fl? ??? ????? ?????"??? ?fl? ???"? ??? ????? ?fl? ?"??? ?fl? ???"? ?fl? ???"? ?"? ?"??? ?fl? ?"??? ?fl? ?"??? ??? ???fl? ??? ???"? ??????"? ??? ???fl? ?fl? ???"? ?fl? ???fl? ??? (z) 2?sets for ?7, 2; 1?; : L?(7, 2; 1) = 1 (0 < ? ? 1121 ) : L?(7, 2; 1) = 2 ( 1121 < ? ? 1821 ) : L?(7, 2; 1) = 3 ( 1821 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 46 CHAPTER 3. THE LOTTERY GRAPH (aa) G?7, 3; 1? ' G?7, 4; 2?: Order: 35; Regularity: 4; Density: 70595 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (bb) 3?sets for ?7, 3; 1?; (cc) 4?sets for ?7, 4; 2?; : L?(7, 3; 1) = L?(7, 4; 2) = 1 (0 < ? ? 3235 ) : L?(7, 3; 1) = L?(7, 4; 2) = 2 ( 3235 < ? ? 1) (dd) G?7, 3; 2?: Order: 35; Regularity: 12; Density: 210595 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (ee) 3?sets for ?7, 3; 2?; : L?(7, 3; 2) = 1 (0 < ? ? 1335 ) : L?(7, 3; 2) = 2 ( 1335 < ? ? 2635 ) : L?(7, 3; 2) = 3 ( 2635 < ? ? 3235 ) : L?(7, 3; 2) = 4 ( 3235 < ? ? 1) (ff) G?7, 6; k? ' K7: Order: 7; Regularity: 6; Density: 1 (k = 1, . . . , 5) ????? ??? ??? ? ? ??? ??? ????? ??? ??? ? ? ??? ??? ????? ??? ??? ??? ??? ??? ????? ??? ? ? ??? ??? ??? ????? ??? ? ? ??? ??? ??? ????? ??? ? ? ??? ??? ??? ????? ??? ??? ? ? ??? ??? (gg) 6?sets for ?7, 6; k? (k = 1, . . . , 5); : L?(7, 6; k) = 1 (0 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 3.4. Analysis of small lotteries 47 (hh) G?8, 2; 1? ' G?8, 6; 5?: Order: 28; Regularity: 12; Density: 168378 ?fl??? ??? ???fl? ??????fl? ??? ???"? ??? ???fl? ??? ???fl? ??? ????? ??? ???fl? ??? ?fl??? ??? ???fl? ?fl? ???fl? ??? ???"? ??? ???fl? ??? ???fl? ??? ?fl??? ??? ???fl? ??? ?fl??? ?fl????fl? ??? ???fl? ??? ???"? ??? ???fl? ??? ?fl??? ??? ???fl? ??? ???"? ??? ???fl? ??? ???fl? ??? ????? ??? ?fl??? ??? ???fl? ??? ?fl? ? ? ?fl? ??? ???fl? ?"? ? ? ??? ??? ??? ????? ?fl? ? ? ?fl? ??? ??? ????? ??? ? ? ?fl? ??? ??? ????? ?fl? ??? ??? ??? ??? ?fl??? ?fl? ?fl? ?fl? ? ? ??? ????? ??? ?fl? ? ? ??? ??? ????? ??? ?fl? ? ? ?fl? ??? ????? ?fl? ? ? ??? ??? ??? ????? ??? ? ? ??? ??? ??? ????? ??? ?"? ??? ??? ??? ????? ??? ??? ?"? ??? ??? ????? ??? ?fl? ? ? ??? ??? ????? ?fl? ?fl? ? ? ??? ??? ????? ??? ? ? ??? ??? ??? ?fl??? ??? ?"? ??? ??? ??? ????? ??? ??? ?"? ??? ??? ????? ?fl? ?fl? ? ? ??? ??? ???fl? ??? ?fl? ??? ??? ??? ????? ?fl? ??? ? ? ??? ??? ????? ??? ??? ?fl? ??? ??? ????? ??? ??? ?fl? ? ? ??? ?fl??? ?fl? ?fl? ?fl? ? ? ??? ????? ??? ??? ? ? ?fl? ??? ????? ??? ?fl? ? ? ?fl? ??? ?fl??? ?fl? ?fl? ? ? ??? ??? ????? ??? ??? ? ? ?fl? ??? ????? ?fl? ?fl? ? ? ??? ??? (ii) 2?sets for ?8, 2; 1?; (jj) 6?sets for ?8, 6; 5?; : L?(8, 2; 1) = L?(8, 6; 5) = 1 (0 < ? ? 1328 ) : L?(8, 2; 1) = L?(8, 6; 5) = 2 ( 1328 < ? ? 2228 ) : L?(8, 2; 1) = L?(8, 6; 5) = 3 ( 2228 < ? ? 2728 ) : L?(8, 2; 1) = L?(8, 6; 5) = 4 ( 2728 < ? ? 1) (kk) G?8, 7; k? ' K8: Order: 8; Regularity: 7; Density: 1 (k = 1, . . . , 6) ????? ??? ??? ?fl? ? ? ??? ??? ????? ??? ??? ??? ? ? ??? ??? ????? ??? ??? ? ? ??? ??? ??? ????? ??? ?fl? ? ? ??? ??? ??? ????? ??? ??? ?fl? ??? ??? ??? ????? ??? ??? ? ? ??? ??? ??? ????? ??? ?fl? ? ? ??? ??? ??? ????? ??? ??? ??? ? ? ??? ??? (ll) 7?sets for ?8, 7; k? (k = 1, . . . , 6); : L?(8, 7; k) = 1 (0 < ? ? 1) (mm) G?9, 8; k? ' K9: Order: 9; Regularity: 8; Density: 1 (k = 1, . . . , 7) ????? ??? ??? ?fl? ? ? ??? ??? ??? ????? ??? ??? ??? ? ? ??? ??? ??? ????? ??? ?fl? ??? ? ? ??? ??? ??? ????? ??? ??? ?fl? ??? ? ? ??? ??? ????? ??? ??? ??? ??? ??? ??? ??? ????? ??? ?fl? ??? ? ? ??? ??? ??? ????? ??? ??? ??? ??? ? ? ??? ??? ????? ??? ??? ??? ? ? ??? ??? ??? ????? ??? ??? ?fl? ??? ? ? ??? ??? (nn) 8?sets for ?9, 8; k? (k = 1, . . . , 7); : L?(9, 8; k) = 1 (0 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 48 CHAPTER 3. THE LOTTERY GRAPH (oo) G?10, 9; k? ' K10: Order: 10; Regularity: 9; Density: 1 (k = 1, . . . , 8) ?"? ?fl? ?"? ????? ? ??? ?"? ?"? ??? ?"? ??? ?fl? ?"? ???fl? ? ??? ?fl? ?fl? ?"? ?"? ? ??? ?"? ?"? ??? ?"? ? ??? ?"? ?"? ??? ?"? ? ??? ?fl? ?fl? ?fl? ?"? ??? ?"? ?"? ????? ? ??? ?"? ??? ?"? ?"? ?fl? ?"? ?"? ???fl? ?fl? ?"? ?"? ????? ? ??? ?"? ??? ?"? ?"? ?fl? ?"? ?"? ????? ? ?"? ?"? ??? ?"? ?"? ?"? ?"? ?"? ????? ? ??? ?fl? ?fl? ?"? ?"? ??? ?fl? ?fl? ???fl? ?"? ?fl? ?fl? ???fl? ?"? ?fl? ?"? ?fl? ? ??? ?"? ?"? ??? ?"? (pp) 9?sets for ?10, 9; k? (k = 1, . . . , 8); : L?(10, 9; k) = 1 (0 < ? ? 1) Figure 3.11 (continued): Lottery graphs G?m,n; k? or G?m,n; k? for 1 ? k < n < m ? 10 (having density and/or order at most 0.5 and 35 respectively) and their relevant n?set ordering. Emboxed vertex labels represent L?(m,n; k)?sets for ?m,n; k? (i.e., minimal 100?%?partial dominating sets of minimum cardinality for G?m,n; k?), for the separating values of ? = ?i(m,n; k), where 1 ? i ? L1(m,n; k). 3.5 Chapter summary The chapter opened with a discussion of some basic notions from graph and complexity theory (in ?3.1), laying the basic foundation for the methodology that will be adopted in the rest of the dissertation. The lottery graph G?m,n; k? was introduced, yielding a rich structural representation of the lottery ?m,n; k?. The lottery graph was utilised to determine upper bounds on L1(m,n; k) using graph domination theory in analyses of small lotteries of the form ?m,n; k? where 1 ? k ? n ? m ? 10 (in ?3.4). An algorithm for exposing the symmetric structure of the lottery graph G?m,n; k? was discussed and used to draw some of the graphs in Figure 3.11. For the specific lottery graphs included in Figure 3.11, all (incomplete) lottery numbers L?(m,n; k), where ? = ?i(m,n; k) for i = 1, . . . , L1(m,n; k), are presented. The (complete) lottery numbers L1(m,n; k) for the small lotteries investigated are summarised in Table 3.1. 3.5. Chapter summary 49 n 1 2 1 2b 1ak 2 ? 1a (a) L1(2, n; k) n 1 2 3 1 3b 1b 1a k 2 ? 1c 1a 3 ? ? 1a (b) L1(3, n; k) n 1 2 3 4 1 4b 2b 1b 1a 2 ? 6c 1d 1ak 3 ? ? 1c 1a 4 ? ? ? 1a (c) L1(4, n; k) n 1 2 3 4 5 1 5b 2b 1b 1b 1a 2 ? 10c 2e 1d 1a k 3 ? ? 10c 1d 1a 4 ? ? ? 5c 1a 5 ? ? ? ? 1a (d) L1(5, n; k) n 1 2 3 4 5 6 1 6b 3b 2b 1b 1b 1a 2 ? 15c 2fg 1d 1d 1a 3 ? ? 20c 3e 1d 1ak 4 ? ? ? 15c 1d 1a 5 ? ? ? ? 1c 1a 6 ? ? ? ? ? 1a (e) L1(6, n; k) n 1 2 3 4 5 6 7 1 7b 3b 2b 1b 1b 1b 1a 2 ? 21c 4h 2e 1d 1d 1a 3 ? ? 35c 4e 1d 1d 1a k 4 ? ? ? 35c 3e 1d 1a 5 ? ? ? ? 21c 1d 1a 6 ? ? ? ? ? 7c 1a 7 ? ? ? ? ? ? 1a (f) L1(7, n; k) n 1 2 3 4 5 6 7 8 1 8b 4b 2b 2b 1b 1b 1b 1a 2 ? 28c 5i 2fj 1d 1d 1d 1a 3 ? ? 56c 6k 2e 1d 1d 1a 4 ? ? ? 70c 5e 1d 1d 1ak 5 ? ? ? ? 56c 4e 1d 1a 6 ? ? ? ? ? 28c 1d 1a 7 ? ? ? ? ? ? 8c 1a 8 ? ? ? ? ? ? ? 1a (g) L1(8, n; k) n 1 2 3 4 5 6 7 8 9 1 9b 4b 3b 2b 1b 1b 1b 1b 1a 2 ? 36c 7l 2fm 2e 1d 1d 1d 1a 3 ? ? 84c 9n 2e 1d 1d 1d 1a 4 ? ? ? 126c 9e 3e 1d 1d 1a k 5 ? ? ? ? 126c 7e 1d 1d 1a 6 ? ? ? ? ? 84c 4e 1d 1a 7 ? ? ? ? ? ? 36c 1d 1a 8 ? ? ? ? ? ? ? 9c 1a 9 ? ? ? ? ? ? ? ? 1a (h) L1(9, n; k) n 1 2 3 4 5 6 7 8 9 10 1 10b 5b 3b 2b 2b 1b 1b 1b 1b 1a 2 ? 45c 8n 3o 2fp 1d 1d 1d 1d 1a 3 ? ? 120c 14q 2fp 2e 1d 1d 1d 1a 4 ? ? ? 210c 14n 3e 1d 1d 1d 1a 5 ? ? ? ? 252c 14e 3e 1d 1d 1ak 6 ? ? ? ? ? 210c 8e 1d 1d 1a 7 ? ? ? ? ? ? 120c 5e 1d 1a 8 ? ? ? ? ? ? ? 45c 1d 1a 9 ? ? ? ? ? ? ? ? 10c 1a 10 ? ? ? ? ? ? ? ? ? 1a (i) L1(10, n; k) Table 3.1: Complete lottery numbers, L1(m,n; k), for the lottery ?m,n; k?, 1 ? k ? n ? m ? 10. Motivation of table entries is as follows: aTheorem 2.3(a). bTheorem 2.3(b). cTheorem 2.3(c). dTheorem 2.3(d). eTheorem 3.3(e). fTheorem 2.2(c). gL1(6, 3; 2) ? 2 (see Figure 3.11(t)). hL1(7, 3; 2) > 3 (brute force) and L1(7, 3; 2) ? 4 (see Figure 3.11(ee)). iL1(8, 3; 2) > 4 (brute force) and L1(8, 3; 2) ? 5 by the complete lottery set L = {{1, 2, 3}, {1, 2, 6}, {1, 4, 5}, {2, 5, 8}, {3, 4, 7}}. jL1(8, 4; 2) ? 2 by the complete lottery set L = {{1, 2, 3, 4},{5, 6, 7, 8}}. kL1(8, 4; 3) > 5 (brute force) and L1(8, 4; 3) ? 6 by the complete lottery set L = {{1, 2, 3, 6}, {1, 3, 5, 7}, {1, 4, 5, 8}, {2, 3, 4, 6}, {2, 6, 7, 8}, {3, 4, 6, 7}}. lL1(9, 3; 2) > 6 (brute force) and L1(9, 3; 2) ? 7 by the complete lottery set L = {{1, 3, 7}, {1, 5, 6}, {1, 6, 8}, {2, 4, 7}, {2, 4, 8}, {3, 5, 9}, {4, 6, 9}}. mL1(9, 4; 2) ? 2 by the complete lottery set L = {{1, 2, 3, 4}, {5, 6, 7, 8}}. nUsing LINGO to solve (2.10). oL1(10, 4; 2) > 2 (brute force) and L1(10, 4; 2) ? 3 by the complete lottery set L = {{1, 2, 3, 4}, {3, 7, 9, 10}, {4, 5, 6, 8}}. pL1(10, 5; 2) ? L1(10, 5; 3) ? 2 by the complete lottery set L = {{1, 2, 3, 4, 5},{6, 7, 8, 9, 10}}. qUsing a parent?child search tree technique described in ?6.1.2. Boldface entries indicate previously unknown complete lottery numbers. 50 CHAPTER 3. THE LOTTERY GRAPH Chapter 4 Analytic bounds ?In science one tries to tell people, in such a way as to be understood by everyone, something that no one ever knew before. But in poetry, it?s the exact opposite.? Paul Dirac (1902?1984) [206] In this chapter known bounds from the literature on the lower domination number ? (and hence the complete lottery number L1(m,n; k)) are presented1. In some cases, bounds on the incomplete lottery number L?(m,n; k) (and hence also bounds on the resource utilisation number ?`(m,n; k)) are also presented. These bounds are compared (in ?4.3) to give the reader an indication of the best known analytic bounds on L1(m,n; k). 4.1 Graph theoretic bounds on L?(m,n; k) The concept of domination in graphs has been studied extensively [103] and was formally introduced by Ore [197] and Berge [22]. In this section a wide range of graph domination results are presented that are related to the complete lottery problem, as stated in ?1.2. Throughout this section the parameters m, n and k are in the relation 1 ? k ? n ? m, whilst 0 < ? ? 1. This section is divided into two parts, presenting respectively lower (?4.1.1) and upper (?4.1.2) bounds on the lower domination number ?, for general graph classes, with all results chronologically ordered. These bounds are then interpreted in the context of the lottery graph G?m,n; k?. 4.1.1 Lower bounds on L1(m,n; k) A closed form general lower bound for the complete lottery number L1(m,n; k) may be found by using a well?known result from graph domination theory due to Walikar, et al. [264] in 1979. In any graph G of order p with maximal degree ?(G), any vertex can dominate at most ?(G) + 1 vertices and hence at least p/(?(G) + 1) vertices are required to dominate the entire vertex set V (G), thereby establishing the lower bound L1(m,n; k) ? ( m n ) r + 1 , (4.1) 1The reader may wonder why mainly bounds on L1(m, n; k) are presented. This is because domination in the field of graph theory has not been studied from a partial point of view ? this is a novel contribution of this dissertation, to the best knowledge of the author. Moreover, the incomplete lottery and resource utilisation problems are completely new contributions to the combinatorial literature and hence no bounds currently exist for the parameters L?(m,n; k) and ?`(m,n; k). 51 52 CHAPTER 4. ANALYTIC BOUNDS where r is the degree of regularity of the lottery graph, presented in (2.1). Note that this lower bound coincides with that given in Theorem 2.1 in the special case where ? = 1. It is also possible to obtain the lower bound in (4.1) by considering the number of vertices dominated by a given vertex subset. Suppose D is any subset of the vertex set V (G) of a graph G and let A1,A2, . . . ,A|D| denote the sets of vertices dominated by the vertices v1, v2, . . . , v|D| in D respectively. Additionally define D1 = |A1|+ |A2|+ ? ? ?+ |A|D|| D2 = |A1 ? A2|+ |A1 ? A3|+ ? ? ?+ |A|D|?1 ? A|D|| D3 = |A1 ? A2 ? A3|+ |A1 ? A2 ?A4|+ ? ? ?+ |A|D|?2 ?A|D|?1 ? A|D|| . . . = . . . D|D| = |A1 ? A2 ? ? ? ? ? A|D||, where Di denotes the number of vertices in G dominated by i elements of D. The total number of vertices in G dominated by D is given by D = |D|? i=1 (?1)i+1|Di|, (4.2) by utilisation of the inclusion?exclusion principle [153]. Note that, after each addition in (4.2), an upper bound on D is found, while a lower bound on D is established after each subtraction. Note also that the well?known domination lower bound (4.1) may be obtained from (4.2) by truncating the series (4.2) after the first term. To see this, observe that for the lottery graph G?m,n; k? D1 = |A1|+ |A2|+ ? ? ?+ |A|D|| = |D|(r + 1), (4.3) where r is defined in (2.1). Hence, to dominate the entire vertex set V (G?m,n; k?), we require that( m n ) = D ? D1 = |D|(r + 1), rendering the lower bound L1(m,n; k) ? ( m n ) r + 1 , (4.4) which is exactly the lower bound (4.1). In fact, a lower bound on L1(m,n; k) may be obtained by truncating (4.2) after any odd?numbered term, and the lower bound of course improves as the truncation is postponed. However, the calculation of |Di| for i > 2 becomes combinatorially rather complex and we therefore refrain from further investigation into this approach. 4.1.2 Upper bounds on L?(m,n; k) Ore [197] first stated in 1962 that, for any connected order p graph G with no isolated vertices, ?(G) ? p2 . This bound is obtained by including every vertex at either an even or odd distance from a specified vertex u in a spanning tree of G in a dominating set for G. In terms of the lottery numbers, this bound translates to L?(m,n; k) ? L1(m,n; k) ? 12 ( m n ) . (4.5) In a paper by Vizing [263] in 1965, it was also shown that, for any graph G of order p and size q, ?(G) ? 1+2p??8q+12 , which implies that L?(m,n; k) ? L1(m,n; k) ? 1 + 2 ( m n ) ? ? 4r ( m n ) + 1 2 (4.6) where r is the degree of regularity of the lottery graph G?m,n; k?, as defined in (2.1) and by utilisation of Theorem 3.1. Chen & Zhou [46] obtained similar results in terms of neighbourhood conditions on the dominating vertices in 1999. A contribution by Berge [21] in 1973 stated that, for any order p 4.1. Graph theoretic bounds on L?(m,n; k) 53 graph G with maximum degree ?(G), it holds that ?(G) ? p ??(G). Similar results were achieved by Sampathkumar & Latha [218]. In terms of the lottery parameters, this result translates to L?(m,n; k) ? L1(m,n; k) ? ( m n ) ? r. (4.7) A bound obtained by Arnautov [8] in 1974 (and independently by Lova?sz [147] in 1975), stating that ?(G) ? p?(G)+1 ( 1 + 12 + 1 3 + ? ? ?+ 1 ?(G)+1 ) , holds for any graph G on p vertices with minimum degree ?(G), from which it may be deduced that L?(m,n; k) ? L1(m,n; k) ? ( m n ) r + 1 r+1? i=1 1 i . (4.8) Arnautov [8] (1974) and Payan [203] (1975) both derived the asymptotic result of a well?known theorem stating that, for any order p graph G without isolated vertices, ?(G) ? p[1 + ln(?(G) + 1)]/[?(G) + 1]. In terms of the lottery parameters it therefore follows that L?(m,n; k) ? L1(m,n; k) ? ( m n ) 1 + ln(r + 1) r + 1 . (4.9) Independently, Payan [203] in 1975 and Marcu [152] in 1986 proved that ?(G) ? (p ? ?(G) ? 1)(p ? ?(G)? 2)/(p? 1) + 2, which translates to L?(m,n; k) ? L1(m,n; k) ? (( m n ) ? r ? 1 )(( m n ) ? r ? 2 )( m n ) ? 1 + 2. (4.10) In 1985, Caro & Roditty [43] proved that ?(G) ? p[1? ?(G) ((?(G) + 1)?1?1/?(G))] for any order p graph G with ?(G) ? 7. It therefore follows that L?(m,n; k) ? L1(m,n; k) ? ( m n )[ 1? r ( 1 r + 1 )1+ 1 r ] if r ? 7. (4.11) A conjecture by Vizing [263] in 1965, stating that for any order p graph G, ?(G) ? 12 (p+ 1 ? ?(G)) was proved by Flach & Volkmann [76] in 1990, implying that L?(m,n; k) ? L1(m,n; k) ? 12 (( m n ) ? r + 1 ) . (4.12) In 1965, Vizing [263] proved a theorem for any (p, q) graph G for which ?(G) = p ? ?(G). This result was generalised in 1994 by Fulman [82] for graphs that satisfy 2 ? ?(G) ? p ? ?(G) and stated that q ? b 12 [(p??(G)(p??(G)+2)??(G)(p??(G)??(G))]c. Recall that, by Theorem 3.4(a), L1(m,n; k) ? 2 if and only if 2n ? m+ k. In terms of the lottery parameters, this is equivalent to L?(m,n; k) ? L1(m,n; k) ? ( m n ) 2 +1? r 2 ? ???? ( ( m n ) 2 )2 ? r ( 3r 4 ? 3 2 ( m n ) + 1 ) + 1 if 2n ? m+k (4.13) by (4.7). McCuaig & Shepherd [155] conjectured in 1989 that if an order p graph G is connected and ?(G) ? 3, then ?(G) ? 38p. This conjecture was proved by Reed [208] in 1996, which translates to the lottery bound L?(m,n; k) ? L1(m,n; k) ? 38 ( m n ) if r ? 3. (4.14) The bound in (4.8) was improved by Clark, et al. [49] in 1998, who proved, for any graph G on p vertices, that ?(G) ? (1 ? S?(G))p where S?(G) = ??(G)+1i=1 ii+1/?(G) . With the additional constraint that G is regular, they improved this bound even further, yielding the upper bound L?(m,n; k) ? L1(m,n; k) ? ( m n )??1? r3 + r r3 + 1 r? j=1 ( 1 + 1 jr ) ?1 ?? . (4.15) 54 CHAPTER 4. ANALYTIC BOUNDS In the same paper numerous other bounds on ?(G) are given in terms of the minimum degree ?(G) and degree sequence d = (d1, d2, . . . , dp) (where di = degGvi) of an order p graph G. Harant, et al. [100] also proved bounds on ?(G) using degree sequence probability measures. Futhermore, Haynes, et al. [103] stated in 1998 that ?(G) ? ?(G) for any order p graph G with diam(G) = 2. It therefore follows that L?(m,n; k) ? L1(m,n; k) ? r if diam(G?m,n; k?) = 2. (4.16) Finally, using the same notation as in ?4.1.1 we may derive an upper bound on the complete lottery number by truncating the series in (4.2) after the second term. To dominate the entire vertex set V (G?m,n; k?) and utilising (4.3), we require that( m n ) = D ? D1 ?D2 ? |D|(r + 1)? ( |D| 2 ) x, where D2 ? (|D| 2 ) x and |Ai ? Aj | ? x for all i 6= j. Here x represents a lower bound on the minimum number of vertices collectively dominated by any pair of vertices in the dominating set D. By Lemma 3.1 it follows that the number of common elements between any two n?sets from Um, is a strictly decreasing function of the number of uniquely dominated vertices of the respective vertices. We therefore deduce that x = ?n?1 t=k ?n?1 s=k ( n s )( n t )( m?2n n?s?t )(by utilisation of Lemma 2.2) from which |D| may be solved in 2 ( m n ) ? |D|(2(r + 1) + x)? |D|2x. This yields the upper bound L?(m,n; k) ? L1(m,n; k) ? 2(r + 1) + x+ ? (2(r + 1) + x)2 ? 8x(m n ) 2x . (4.17) 4.2 Other bounds on L?(m,n; k) Bounds on L1(m,n; k) may also be obtained from a different field in combinatorics, namely design theory, and also from linear algebra. This section is devoted to presenting these results and is again divided into two subsections; one presenting lower bounds on L1(m,n; k) (?4.2.1) and one presenting upper bounds on L?(m,n; k) (?4.2.2). Throughout the following chronologically ordered results the parameters m, n and k are in the relation 1 ? k ? n ? m, whilst 0 < ? ? 1. 4.2.1 Lower bounds on L1(m,n; k) It is clear that at least C(m?1, n?1; k?1) elements of a covering set C for ?m,n; k? contain the number j ? Um. Such a number j ? Um may be chosen in m possible, different ways for any of x n?sets in C, where C(m,n; k) ? x ? dmC(m? 1, n? 1; k ? 1)/ne. Therefore C(m,n; k) ? ?m n C(m? 1, n? 1; k ? 1) ? , (4.18) which is known in design theoretic literature as Scho?nheim?s covering bound [223], and dates from 1964. A generalised recursive lower bound, from which (4.18) may be derived, was established by Li & Van Rees [138] in 1999 and states that L1(m,n; k) ? ( m n? k + 1 ) L1(m? n+ k ? 1, n; k)( m n? k + 1 ) ? ( n n? k + 1 ) if m ? 2n? k + 1. (4.19) In 1983 De Caen [59] proved a graph theoretic result giving a lower bound on the well?known Tura?n number2, T (m,n; k) ? [( m k )/ (n? 1 k ? 1 )][ m? n+ 1 m? k + 1 ] . 2The Tura?n number T (m,n; k) [256] is defined as the minimal number of n?subsets from Um such that each k?subset of Um contains one of them as subset. It is known that T (m,n; k) = C(m,m? n;m? k). 4.2. Other bounds on L?(m,n; k) 55 This, together with a result by Bate [13, 234] in 1978 and Brouwer & Voorhoeve [37] in 1979, stating that L1(m,n; k) ? T (m,n; k)/(nk), establishes the lower bound on the lottery number L1(m,n; k) ? ( m k ) ( n? 1 k ? 1 )( n k )m? n+ 1 m? k + 1 . (4.20) Schrijver [225] (in 1979) reported two bounds on L1(m,n; k) due to Sterboul [236]3, in 1978, stating that L1(m,n; k) ? max n?a?m ? ????? ????? (a? n+ 1) ( m a ) n? i=k ( n i )( m? n a? i ) (i ? k + 1) ? ????? ????? (4.21) and L1(m,n; k) ? max n?a?m ? ????? ? ??? ? ? ? ? ?? ? ? ? a? n+ 1 n? k + 1 ? ( m a ) n? i=k ( n i )( m? n a? i ) ? ? ? ? ?? ? ? ? ????? ? ??? . (4.22) A lower bound on L(m,n; k), established by Nurmela & ?Osterg?ard [194] in 1993, states that L1(m,n; k) ? ( m n ) n? i=k ( n i )( m? n n? i ) . (4.23) This bound is, in fact, the same as the graph theoretic lower bound given in (4.1), by utilisation of (2.1). All of the above mentioned bounds are general. A theorem of Hanani, et al. [99] in 1964, proved for the specific class of lottery numbers L1(m,n; 2), states that L1(m,n; 2) ? m(m? n+ 1) n(n? 1)2 . (4.24) The same class of lottery numbers was also considered in a paper by Fu?redi, et al. [83] in 1996, who additionally proved that L1(m,n; 2) ? min a1+...+an?1=m ? n?1? i=1 ai n ? ai ? 1 n? 1 ?? . (4.25) 4.2.2 Upper bounds on L?(m,n; k) A well?known upper bound for an ?m,n; k? packing design (with a similar proof to that of (4.18)) was formulated by Scho?nheim [223] in 1964. This result states that P (m,n; k) ? ?m n P (m? 1, n? 1; k ? 1) ? , (4.26) which, when applied recursively (together with (2.2)), yields the closed form upper bound L?(m,n; k) ? L1(m,n; k) ? m n ? m? 1 n? 1 ? ? ? ? ? m? k + 1 n? k + 1 ? ? ? ? ?? . (4.27) 3The author could not obtain a copy of [236] to verify this claim by Schrijver [225]. Consequently the author cannot provide the reader with an idea of the nature of the arguments used to obtain the bounds (4.21) and (4.22). 56 CHAPTER 4. ANALYTIC BOUNDS A formula for a certain class of packing numbers (giving an upper bound on the same class of complete lottery numbers), established in 1978 by Brouwer [34], is given by P (m, 4; 3) = m(m2 ? 3m ? 6)/24, where m is a multiple of 6, implying that L?(m, 4; 3) ? L1(m, 4; 3) ? m(m2 ? 3m? 6)/24 if m ? 0 (mod 6). (4.28) Let ? denote the largest multiplicity of an eigenvalue of the adjacency matrix AG of a graph G. In 1994, Rowlinson [52, 214] improved a result by Van Nuffelen [259] (in 1982) relating eigenvalues of AG and ?(G), which translates to L?(m,n; k) ? L1(m,n; k) ? ( m n ) ? ?. (4.29) In 1996 Godbole, et al. [91] used probabilistic techniques (extending a result of Erdo?s & Spencer [72]) to obtain a general upper bound on C(m,n; k), which translates to the bound L?(m,n; k) ? L1(m,n; k) ? ( m n ) log ( n k )( n k ) (4.30) via utilisation of (2.2). Finally, two recursive bounds on L1(m,n; k), established by Li & Van Rees [138] in 1999, state that L?(m,n; k) ? L1(m,n; k) ? L1(m? 1, n? 1; k ? 1) + L1(m? 1, n; k) (4.31) and L?(m,n; k) ? L1(m,n; k) ? ? 2? n? 1 m? 1 L1(m? 1, n? 1; k) ? + L1(m? 1, n; k). (4.32) 4.3 Comparison of analytic bounds on L1(m,n; k) Known complete lottery numbers and, in cases of yet undetermined complete lottery numbers, a selection of the best known bounds on L1(m,n; k) for 2 ? k ? n ? 6 and m ? 50 (obtained from literature and presented in ?4.1 and ?4.2), are given in Table 4.1. Table 4.2 contains a comparison of the best upper and lower bounds on the (realistic cases of the) complete lottery number L1(m, 6; 3) for all 6 ? m ? 50. As may be seen from Table 4.2, the upper and lower bounds for realistic values of m are typically far apart. In fact, the construction of specific playing sets (using algorithmic techniques) yield far better upper bounds than any of the analytic approaches. With this in mind, the focus in Chapter 5 will be on the evaluation and comparison of playing set construction algorithms. Although the graph theoretic lower bound (given in (4.1)) does not perform as well in comparison to the best lower bounds (in ?4.2.1), it presents a closed?form lower bound which has the potential of significant improvement via the method outlined in ?4.1. For realistic cases of the complete lottery problem, the design and graph theoretic Tura?n bound in (4.20) yields the best lower bound on L1(m,n; k) (e.g., for the realistic case of the South African National Lottery Lotto, (4.20) yields the lower bound L1(49, 6; 3) ? 87, as shown in Table 4.2). A small improvement of the Arnautov upper bound (4.8), with the additional regularity condition, represents the best analytic upper bound on L1(m,n; k), established by Clark, et al. (4.15) (e.g., for the realistic case of the South African National Lottery Lotto, (4.15) yields the upper bound L1(49, 6; 3) ? 700, as shown in Table 4.2). 4.4 Chapter summary This chapter contains a survey of known bounds on the complete lottery number L1(m,n; k) from the graph theoretic literature in ?4.1 and other areas of combinatorics in ?4.2. The best known analytic bounds on L1(m,n; k) for 1 ? k ? n ? 6 and 3 ? m ? 50 are given in Table 4.1, while bounds on the specific class of complete lottery numbers L1(m, 6; 3) are compared in Table 4.2 for all 6 ? m ? 50. 4.4. Chapter summary 57 m L1(m, 3; 2) L1(m, 4; 2) L1(m, 4; 3) L1(m, 5; 2) L1(m, 5; 3) L1(m, 5; 4) 3 1a ? ? ? ? ? 4 1a 1a 1o,r ? ? ? 5 2a 1a 1o,r 1o,r 1o,r 1o,r 6 2a 1a 2o,g : 3s 1o,r 1o,r 1o,r 7 4a 2a 3o,g : 7n 1o,r 1o,r 2g,j,k,l,o : 5m,n,q,t 8 5a 2a 5o,l : 12n 1o,r 2o,j,k,l : 3p,s 4k,l,o : 10n 9 7a 2a 9o,k,l : 20n 2o,p 2o,j,k,l : 7m,n 6g,k,l,o : 20n 10 8a 3a 9o,g,k,l : 30n 2o : 4p 2g,o,j,k,l : 10m,n 10k,l,o : 35n 11 10c 3a 13g : 42n 2o : 7m,n 3g,o,j,k,l : 14m,n 15g,k,l,o : 56n 12 11a 3a 17g : 58n 2o : 9m,q 4o,k,l : 19m,n 22g,k,l,o : 87n 13 13a 5a 22g : 77n 3j,k : 10m,n 5o,l : 25m,n 33g : 129n 14 14a 5a 28g : 100n 3j,k : 12m,n 6g,j : 32m,n 46g : 184n 15 18a 7a 35g : 127n 3j,g : 14m,n 7g,j : 40m,n 63g : 256n 16 19a 7a 44g : 160n 3j,g : 16m,n 9j : 50m,n 84g : 347n 17 23a 9a 53g : 197n 4j,k : 18m,q 10g : 61m,n 111g : 461n 18 24a 9a 64g : 240n 4j,g : 20m,n 12g : 73n 143g : 601n 19 29a 11a 76g : 289n 4j,g : 22m,n 15g : 88m,n 182g : 771n 20 31a 12a 90g : 344n 4j,g : 25m,n 17g : 104m,n 228g : 976n 21 36a 12a : 14a 105g : 406n 6f : 27m,n 20g : 122m,n 283g : 1 219n 22 38a 13a,f : 14a 122g : 475n 6f : 30m,n 24g : 142n 347g : 1 505n 23 43c,f 14a,f : 17a 141g : 551n 7f : 33m,n 27g : 165m,n 421g : 1 840n 24 45a 16a : 18a 161g : 636n 7f : 36m,n 31g : 189n 506g : 2 228n 25 50a 17a,f : 18a 184g : 729n 8f : 39m,n 35g : 216n 604g : 2 676n 26 52a 18a,f : 21a 208g : 832n 9f : 43m,n 40g : 246m,n 715g : 3 189n 27 59a 20a : 22a 234g : 943n 9f : 46m,n 45g : 278n 841g : 3 773n 28 61a 21a,f : 22a 263g : 1 065n 10f : 50m,n 51g : 313n 983g : 4 435n 29 68a 23a : 25a 294g : 1 196n 11f : 54m,n 57g : 351n 1 142g : 5 181n 30 70a 24a : 27a 327g : 1 338n 11f : 58m,n 63g : 392n 1 320g : 6 019n 31 78a 26a,f : 27a 362g : 1 492n 12f : 62m,n 70g : 436n 1 518g : 6 956n 32 81a 28a : 29a 400g : 1 657n 12f,g,h : 67m,n 78g : 484m,n 1 736g : 8000n 33 89a 30a : 31a 440g : 1 834n 14f : 71m,n 86g : 535m,n 1 978g : 9 158n 34 92a 32a,f 484g : 2 023n 14f : 76m,n 94g : 589n 2 244g : 10 439n 35 100c,f 33a,f : 34a 529g : 2 225n 14f,g,h : 81m,n 103g : 647n 2 537g : 11 852n 36 103a 35a 578g : 2 441n 15f,g,h : 86m,n 112g : 709n 2 856g : 13 405n 37 111a 37a,f 629g : 2 671n 17f : 91m,n 123g : 775n 3 206g : 15 108n 38 114a 38f 684g : 2 915n 18f : 96m,n 133g : 845n 3 586g : 16 970n 39 124a 39f,g,h 741g : 3 174n 18f,g,h : 102m,n 145g : 919n 3 999g : 19 002n 40 127a 44a,f 802g : 3 447n 19f : 108m,n 156g : 998m,n 4 446g : 21 212n 41 137a 45f 866g : 3 737n 21f : 113m,n 169g : 1 080n 4 931g : 23 612n 42 140a 46f,g,h 933g : 4 043n 22f : 119m,n 182g : 1 168n 5 453g : 26 213n 43 151a 51a,f 1 004g : 4 365n 23f : 126m,n 196g : 1 260n 6 017g : 29 025n 44 155a 52f 1 078g : 4 705n 23f : 132m,n 211g : 1 357n 6 622g : 32 061n 45 166a 53f,g,h 1 155g : 5 062n 26f : 139m,n 226g : 1459n 7 273g : 35 331n 46 170a 58a,f 1 237g : 5 437n 26f : 145m,n 242g : 1 566n 7 970g : 38 848n 47 181c,f 59f 1 322g : 5 831n 27f : 152m,n 259g : 1 679n 8 716g : 42 624n 48 185a 60f,g,h 1 410g : 6 243n 27f,g,h : 159m,n 276g : 1 797n 9 513g : 46 673n 49 196a 66a,f 1 503g : 6 675n 30f : 166m,n 294g : 1 920n 10 364g : 51 006n 50 200a 67f 1 600g : 7 128n 30f : 174m,n 314g : 2 049n 11 270g : 55 638n Table 4.1: Known complete lottery numbers and analytic bounds (using the notation lower bound : upper bound) on L1(m,n; k), 1 ? k ? n and 3 ? m ? 50 for n = 3, 4 and 5. Motivation for table entries are as follows: aClass of complete lottery numbers L1(m, 3; 2), (1.2), and L1(m, 4; 2) due to Bate & Stanton [15]. bClass of complete lottery numbers L1(m, 6; 2) due to Bate & Van Rees [17]. cActual bound on L1(m, 3; 2) for the casem ? 11 (mod 12) that differs from that derived by Bate & Stanton [15]. dDue to Colbourn [50]. eThe Payan asymptotic upper bound, (4.9) [203]. fThe Fu?redi lower bound, (4.25) [83]. gThe Tura?n lower bound, (4.20) [59]. hThe Hanani lower bound, (4.24) [99]. iThe recursive lower bound, given in Theorem 2.2(a). jThe generalised Scho?nheim lower bound, (4.19) [138]. kThe Sterboul lower bound, (4.21) [236]. lThe Sterboul lower bound, (4.22) [236]. mThe Arnautov upper bound, (4.8) [8]. nThe Clark, et al. [49] upper bound, (4.15). oThe graph theoretic lower bound, (4.1) [264]. pThe Payan and Marcu upper bound, (4.10) [152]. qThe Caro & Roditty upper bound, (4.11) [43]. rThe Vizing upper bound, (4.6) [263]. sThe Fulman upper bound, (4.13) [82]. tThe Reed upper bound, (4.14) [208]. 58 CHAPTER 4. ANALYTIC BOUNDS m L1(m, 6; 2) L1(m, 6; 4) L1(m, 6; 5) 6 1o,r 1o,r 1o,r 7 1o,r 1o,r 1o,r 8 1o,r 1o,r 3l,o : 6m,n 9 1o,r 2j,k,l,o : 6e,m,n,p,q,s 5k,l,o : 14n 10 1o,r 2j,k,l,o : 9m,n 9k,l,o : 30n 11 2o,p,s 3o,l,k : 14m,n 15k,l,o : 56n 12 2f,j,k,l,o : 3p,s 4o,l,k : 21m,n 25k,l,o : 100n 13 2f,j,k,l,o : 8m,n 5o,l,k : 30m,n 40l,o : 166n 14 2f,j,k,l,o : 9m,n 7o,l : 42n 62l,o : 264n 15 2f,j,k,l,o : 10m,n 9o,l : 58m,n 91g,l,o : 403n 16 3f,j,k,l : 11m,n 11g,k,l,o : 77n 134g : 597n 17 3f,k,l : 13e,m,n,q 14g,l,o : 101n 191g : 858n 18 3f,j,k,l : 14m,n 18g,l,o : 131m,n 266g : 1 205n 19 3f,j,k,l : 15m,n 23g : 167m,n 362g : 1 657n 20 3f,j,k,l : 17m,n 29g : 209n 485g : 2 236n 21 4f,j,k,l : 18m,n 36g : 259n 639g : 2 968n 22 4f,j,k,l : 20m,n 44g : 319m,n 830g : 3 880n 23 4f,j,k,l : 22m,n 54g : 387n 1 063g : 5 007n 24 4f,g,j,k,l : 24m,n 65g : 467n 1 346g : 6 383n 25 4f,g,j,k,l : 26m,n 77g : 559m,n 1 687g : 8 048n 26 5f,g,k,l : 28m,n 91g : 663n 2 093g : 10 045n 27 5f,g,k,l : 30m,n 108g : 782n 2 574g : 12 425n 28 5f,g,h,j,k,l : 32m,n 126g : 916n 3 140g : 15 238n 29 5f,g,h,j,k,l : 34m,n 147g : 1 068n 3 801g : 18 543n 30 5f,g,h,j,k,l : 37m,n 170g : 1 237n 4 568g : 22 401n 31 7f : 39m,n 195g : 1 427n 5 454g : 26 882n 32 7f : 42m,n 224g : 1 637n 6 473g : 32 057n 33 7f,g,h : 44m,n 255g : 1 871n 7 639g : 38 006n 34 8f : 47m,n 290g : 2 129n 8 967g : 44 813n 35 8f : 50m,n 328g : 2 413n 10 472g : 52 570n 36 9f : 53m,n 369g : 2 725n 12 174g : 61 372n 37 10f : 56m,n 415g : 3 066n 14 090g : 71 325n 38 10f : 59m,n 464g : 3 440n 16 240g : 82 537n 39 11f : 62m,n 518g : 3 847n 18 644g : 95 127n 40 11f : 66m,n 577g : 4 290n 21 325g : 109 219n 41 12f : 69m,n 640g : 4 770n 24 305g : 124 945n 42 13f : 73m,n 708g : 5 290n 27 610g : 142 445n 43 13f : 76m,n 782g : 5 853n 31 264g : 161 866n 44 13f : 80m,n 861g : 6 459n 35 296g : 183 365n 45 13f : 84m,n 946g : 7 112n 39 732g : 207 106n 46 15f : 88m,n 1 038g : 7 813n 44 604g : 233 261n 47 15f : 91m,n 1 136g : 8 567n 49 943g : 262 012n 48 15f : 96m,n 1 240g : 9 374n 55 780g : 293 549n 49 16f : 100m,n 1 352g : 10 238n 62 151g : 328 074n 50 16f : 104m,n 1 470g : 11 161n 69 090g : 365 795n Table 4.1 (continued): Known complete lottery numbers and analytic bounds (using the notation lower bound : upper bound) on L1(m,n; k), k = 2, 4 and 6, n = 6 and 3 ? m ? 50. Motivation for table entries are as follows: aClass of complete lottery numbers L1(m, 3; 2), (1.2), and L1(m, 4; 2) due to Bate & Stanton [15]. bClass of complete lottery numbers L1(m, 6; 2) due to Bate & Van Rees [17]. cActual bound on L1(m, 3; 2) for the casem ? 11 (mod 12) that differs from that derived by Bate & Stanton [15]. dDue to Colbourn [50]. eThe Payan asymptotic upper bound, (4.9) [203]. fThe Fu?redi lower bound, (4.25) [83]. gThe Tura?n lower bound, (4.20) [59]. hThe Hanani lower bound, (4.24) [99]. iThe recursive lower bound, given in Theorem 2.2(a). jThe generalised Scho?nheim lower bound, (4.19) [138]. kThe Sterboul lower bound, (4.21) [236]. lThe Sterboul lower bound, (4.22) [236]. mThe Arnautov upper bound, (4.8) [8]. nThe Clark, et al. [49] upper bound, (4.15). oThe graph theoretic lower bound, (4.1) [264]. pThe Payan and Marcu upper bound, (4.10) [152]. qThe Caro & Roditty upper bound, (4.11) [43]. rThe Vizing upper bound, (4.6) [263]. sThe Fulman upper bound, (4.13) [82]. tThe Reed upper bound, (4.14) [208]. 4.4. Chapter summary 59 m ` m 6 ? r L1 L2 L3 L4 L5 L6 L L1 L2 L3 L4 L5 6 1 0 1 1 1 1 ? 1 1 1 1 ? 1 1 7 7 6 1 1 1 1 ? 1 1 2 2 ? 2 1 8 28 27 1 1 1 1 ? 1 1 3 3 4 4 1 9 84 83 1 1 1 1 ? 1 1 4 5 5 5 1 10 210 194 2 2 2 2 2 1 2 6 6 6 6 ? 11 462 380 2 2 2 2 2 1 2 7 7 8 8 ? 12 924 661 2 2 2 2 2 1 2 9 9 10 10 2 13 1 716 1 057 2 2 2 2 2 2 2 12 12 12 12 4 14 3 003 1 588 2 2 3 3 3 2 4 14 15 15 15 6 15 5 005 2 274 3 3 3 3 3 2 4 18 18 19 19 9 16 8 008 3 135 3 3 3 3 3 3 5 22 22 23 23 13 17 12 376 4 191 3 3 3 4 3 3 6 26 26 27 27 18 18 18 564 5 462 4 4 4 4 5 4 7 31 31 32 32 24 19 27 132 6 968 4 4 4 5 5 4 ? 36 36 38 38 31 20 38 760 8 729 5 5 5 5 6 5 ? 42 42 44 44 39 21 54 264 10 765 6 6 6 6 7 6 ? 49 49 51 51 49 22 74 613 13 096 6 6 6 7 6 7 ? 57 57 59 59 60 23 100 947 15 742 7 7 7 8 6 8 ? 65 65 68 68 72 24 134 596 18 723 8 8 8 8 7 9 ? 74 74 77 77 86 25 177 100 22 059 9 9 9 9 8 10 ? 84 84 88 88 102 26 230 230 25 770 9 9 9 10 8 12 ? 95 95 99 99 120 27 296 010 29 876 10 10 10 11 9 13 ? 107 107 111 112 139 28 376 740 34 397 11 11 11 13 10 15 ? 120 120 125 125 161 29 475 020 39 353 13 13 13 14 11 17 ? 134 134 139 139 184 30 593 775 44 764 14 14 14 15 13 19 ? 149 149 155 155 210 31 736 281 50 650 15 15 15 17 14 21 ? 165 165 171 172 238 32 906 192 57 031 16 16 16 18 16 23 ? 183 183 189 189 269 33 1 107 568 63 927 18 18 18 20 18 25 ? 201 201 209 209 302 34 1 344 904 71 358 19 19 19 21 20 28 ? 221 221 229 229 337 35 1 623 160 79 344 21 21 21 23 22 30 ? 242 242 251 251 376 36 1 947 792 87 905 23 23 23 25 24 33 ? 265 265 274 274 417 37 2 324 784 97 061 24 24 24 27 26 36 ? 288 288 298 298 461 38 2 760 681 106 832 26 26 26 29 29 39 ? 314 314 325 325 507 39 3 262 623 117 238 28 28 28 32 31 42 ? 340 340 352 352 557 40 3 838 380 128 299 30 30 30 34 34 46 ? 369 369 381 381 611 41 4 496 388 140 035 33 33 33 36 37 50 ? 398 399 412 412 667 42 5 245 786 152 466 35 35 35 39 40 54 ? 430 430 445 445 727 43 6 096 454 165 612 37 37 37 42 43 58 ? 463 463 479 479 790 44 7 059 052 179 493 40 40 40 44 47 62 ? 498 498 515 515 857 45 8 145 060 194 129 42 42 42 47 51 66 ? 535 535 552 552 927 46 9 366 819 209 540 45 45 45 51 55 71 ? 573 573 592 592 1 001 47 10 737 573 225 746 48 48 48 54 59 76 ? 613 613 633 633 1 080 48 12 271 512 242 767 51 51 51 57 63 81 ? 655 655 677 677 1 162 49 13 983 816 260 623 54 54 54 61 67 87 ? 700 700 722 722 1 248 50 15 890 700 279 334 57 57 57 64 72 92 ? 746 746 770 770 1 338 Table 4.2: Bounds on the complete lottery number L1(m, 6; 3) for all 6 ? m ? 50 in a comparative fashion. The table shows the order of the lottery graph, ( m 6 ) ; the degree of regularity of the lottery graph, r given in (2.1); the lower bound, L1, from classical graph domination theory according to (4.1)(also given in (4.4) and (4.23)); the combinatorial lower bound, L2, (4.23); the Sterboul lower bound, L3, (4.22); the Sterboul lower bound, L4, (4.21); the generalised Scho?nheim lower bound, L5, (4.19); the Tura?n lower bound, L6 (4.20); the known complete lottery number L1(m, 6; 3), L; the Clark, et al. upper bound, L1, (4.15); the Arnautov upper bound, L2, (4.8); the Caro & Roditty upper bound, L3, (4.11); the asymptotic upper bound, L4, (4.9); and the upper bound, L5, according to the generalised domination result (4.2), truncated after the second term, (4.17). The complete lottery number L1(18, 6; 3) = 7 was previously unknown and is determined in [39]. A question mark (?) denotes that the complete lottery number L1(m, 6; 3) is not known. 60 CHAPTER 4. ANALYTIC BOUNDS Appendix B is given as reference and contains similar tables to that of Tables 4.1 & 4.2, but also contains the best known bounds obtained from Internet repository tables [19, 44, 133, 237]. It is evident that the analytic bounds in Table 4.2 are typically weak or far apart. This prompts an inquiry into using an algorithmic approach for better (or even optimal) lottery sets for ?m,n; k?. This will be the point of departure for Chapter 5. Chapter 5 Algorithmic bounds ?The difference between art and science is that science is what we understand well enough to explain to a computer.? Donald E Knuth (1938?) [206] ?I think the problem is not to find the best or most efficient method to proceed to a discovery, but to find any method at all.? Richard P Feynman (1918?1988) [189] In this chapter, a number of algorithms1 are presented to obtain bounds on both L?(m,n; k) and ?`(m,n; k) for small values of 1 ? k ? n ? m, 0 < ? ? 1 and 2 ? ` ? L1(m,n; k). Upper bounds and lower bounds were obtained on L?(m,n; k) and ?`(m,n; k) respectively. A total of seven algorithms were implemented, and this chapter has been organised into sections accordingly, presenting the algorithms in order of increasing quality of performance. In each section a description of the relevant algorithm is given, together with a discussion of the possible advantages and/or disadvantages of the algorithm with respect to the others, the performance of the algorithm and complexity considerations of the specific algorithmic approach. Each section is concluded with an illustrative example of the algorithm implementation. The lottery ?20, 4; 3?, for which the lottery number is known to satisfy 111 ? L1(20, 4; 3) ? 148 [133], was chosen as example to demonstrate the working and efficiency of the algorithms throughout this chapter. The chapter is concluded with a section containing a more complete comparison of algorithm results for small lotteries, followed by a section considering specifically the class of lotteries ?m, 5; 2? for 5 ? m ? 30, and finally the realistic and popular lottery ?49, 6; 3?. The main approaches behind the different algorithms presented in this chapter may be classified as follows: ? Repetitive generation of elements in a playing set L(i) of cardinality ` performed independently from preceding playing sets L(i?1) (Classical random algorithm in ?5.1 and Distributed random algorithm in ?5.2). ? Iterative construction of a playing set L(i) of cardinality i from a previous playing set L(i?1) of cardinality i? 1 (Minimal overlapping algorithm in ?5.3 and Neighbourhood removal algorithm in ?5.4). ? Successive modification of a playing set L of cardinality ` (Tabu search algorithm in ?5.5 and (classical/intelligent) Genetic algorithms in ?5.6). The numerical work presented in this chapter was in certain instances computationally rather taxing, and hence all implemented algorithms were run on a Linux?based stand?alone personal computer or MOSIX cluster. MOSIX is a set of enhancements of the Linux kernel for supporting cluster computing. 1Each of the implemented algorithms is included for further reference (either in C++ or Microsoft Visual Basic for Applications, a macro/application extention to Microsoft Excel, code) in Appendix A. 61 62 CHAPTER 5. ALGORITHMIC BOUNDS The core of MOSIX consists of adaptive (on?line) resource sharing (load?balancing, memory ushering and I/O optimisation) algorithms and a pre?emptive process migration mechanism that allows a cluster of workstations and servers (nodes) to work cooperatively as if part of a single system. The cluster may include a large number (up to 65 535) of nodes, which can be any combination of workstations, servers, single?processors, etc. of any speed. MOSIX is implemented within the Linux kernel and it maintains 100% compatiblity with standard Linux, hence there is no need to modify any user?level files, programs or binaries. When activated, normal Linux processes may be allocated and migrate automatically and transparently to other nodes within the cluster in order to achieve a better resource usage of the cluster. As the demands for resources change across the cluster, processes may migrate again, as many times as necessary, to continue optimising the overall resource usage. User manual?control of process migration is also available [12]. More specifically, the MOSIX cluster used for the numerical work in this chapter consisted of more than 50 CPUs that included Celeron 900 MHz and Intel Celeron 1 GHz processors (each with 256 MB memory) as well as a single Intel Pentium IV 1.5 GHz master node processor (with 512 MB memory), while the collection of stand?alone computers consisted of a Pentium III 800 MHz dual processor and a Pentium III 600 MHz dual processor (each with 512 MB memory), a Celeron 700 MHz (with 256 MB memory) and 59 Pentium 133 MHz processors (each with 64 MB memory). In order to derive bounds on the (worst case) complexity measure of the algorithms in this chapter, an upper bound on the complexity of determining the resource utilisation ?`(m,n; k) of a given playing set of cardinality ` needs to be invesitigated. To determine whether two n?sets share a common k?subset, n comparisons are necessary. In a possible worst case scenario, it might be necessary to examine all ` elements of a playing set in search of a k?subset intersection. We therefore deduce that the number of comparisons performed in order to determine the resource utilisation ?`(m,n; k) of a playing set of cardinality ` in a possible worst case is given by ??`(m,n;k) = O ( n ` ( m n )) . (5.1) 5.1 Classical random algorithm Description The Classical random algorithm (presented in pseudocode as Algorithm 2 and in C++ code in Ap- pendix A.1) consists of repeatedly generating a random playing set of (user) prespecified cardinality `. In the event that a cardinality ` playing set yields a resource utilisation of 1, an upper bound on L1(m,n; k) is obtained (the upper bound being L1(m,n; k) ? `), otherwise a lower bound on ?`(m,n; k) (or equivalently, the upper bound on L?(m,n; k) ? `) is established. Performance and complexity The implementation of Algorithm 2 is intuitive and elementary. With the reasonable assumption that the generation of a random playing set of cardinality ` has a worst case complexity O(`), the worst case complexity of Algorithm 2 is O(` ??`(m,n;k)Iterations), with ??`(m,n;k) given in (5.1). Example 5.1 Consider the lottery ?20, 4; 3?. Algorithm 2 was initialised with Iterations = 1 000, generating playing sets of cardinality ` = 100. The best resource utilisation was achieved at iteration 173, yielding the lower bound ?100(20, 4; 3) ? 3 7524 845 ? 77.4247%. The graph in Figure 5.1 presents the(percentage) resource utilisation of the random playing sets (of cardinality 100) generated by Algorithm 2 at every iteration. No convergence is observed, as expected. The main advantage of this implementation is the fast unconditional playing set generation, although from Figure 5.1 the independence of successive iterations is evident, yielding no visible improvement trend during application of the algorithm. Furthermore, this method does not exploit the lottery graph structure, and is therefore not expected to yield very good results in general. 5.2. Distributed random algorithm 63 Algorithm 2 Classical random algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `, the number of iterations Iterations. Output: LruBest(m,n; k) ? ` or ?`(m,n; k) ? ruBest. 1: index? 1, ruBest? 0. 2: Generate random playing set L of cardinality `. 3: Determine the resource utilisation ru of L. 4: if (ru = 1) then 5: print L1(m,n; k) ? `. stop. 6: end if 7: if (ru > ruBest) then 8: ruBest? ru. 9: end if 10: index? index + 1. 11: if (index < Iterations) then 12: goto (2). 13: else [index ? Iterations] 14: print LruBest(m,n; k) ? `. 15: print ?`(m,n; k) ? ruBest. stop. 16: end if PSfrag replacements % Resourc e utilisatio n ? 10 0(2 0,4 ;3 ) Iteration 0 65 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 Figure 5.1: Lower bound on the resource utilisation for ?20, 4; 3? using a hundred 4?sets from U20 at every iteration of Algorithm 2. The upper, middle and lower solid (?) lines respectively represent the maximum, mean and minimum resource utilisation over all iterations. 5.2 Distributed random algorithm Description As a possible improvement to the Classical random algorithm in ?5.1, the generation of playing sets (Step (2) in Algorithm 2) may be constrained. Let fL(i) denote the frequency of occurence of the element 64 CHAPTER 5. ALGORITHMIC BOUNDS 1 ? i ? m in a playing set L. Then the constraint of generating a playing set L such that fL(i) may only take the value ? m n ? ? 1, ? m n ? or ? m n ? + 1 (depending on the divisibility properties of m by n) may be added to Algorithm 2, thus forcing the elements 1, . . . ,m to be approximately equally utilised in L. This constraint on the generation of n?sets seems intuitively verifiable, due to the fact that ?spreading out? n?sets (and hence distributing the elements of Um across the n?sets of L) in a playing set L is intuitively expected to yield a greater resource utilisation. For completeness, this alternative algorithm is presented in pseudocode as Algorithm 3 and in C++ code in Appendix A.2. Algorithm 3 Distributed random algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `, the number of iterations Iterations. Output: LruBest(m,n; k) ? ` or ?`(m,n; k) ? ruBest. 1: index? 1, ruBest? 0. 2: Generate random playing set L of cardinality ` such that fL(i) ? {?mn ?? 1, ?mn ? , ?mn ?+ 1} for all 1 ? i ? m. 3: Determine the resource utilisation ru of L. 4: if (ru = 1) then 5: print L1(m,n; k) ? `. stop. 6: end if 7: if (ru > ruBest) then 8: ruBest? ru. 9: end if 10: index? index + 1. 11: if (index < Iterations) then 12: goto (2) 13: else [index ? Iterations] 14: print LruBest(m,n; k) ? `. 15: print ?`(m,n; k) ? ruBest. stop. 16: end if Performance and complexity The Distributed random algorithm performs marginally better than the Classical random procedure presented in Algorithm 2, in the sense that it yields a higher mean resource utilisation at a fractional increase in the worst order complexity measure. Assuming the choice of an element for inclusion in any n?set is of worst case complexity O(m) (i.e., examining all elements 1 ? i ? m in search of a minimum fL(i)), the worst case complexity measure of Algorithm 3 is O(m` ??`(m,n;k)Iterations), with ??`(m,n;k) given in (5.1). Example 5.2 (continuation of Example 5.1) Reconsider the lottery ?20, 4; 3? (in Example 5.1). Al- gorithm 3 was initialised with Iterations = 1 000, generating playing sets of cardinality ` = 100. The best resource utilisation was achieved at iteration 715, yielding the lower bound ?100(20, 4; 3) ? 3 8054 845 ? 78.5346% in comparison to the bound ?100(20, 4; 3) ? 77.4247% yielded by Algorithm 2. The graph in Figure 5.2 represents the (percentage) resource utilisation of the conditionally generated random playing sets (of cardinality 100) at every iteration of Algorithm 3. Once again no convergence is observed, as expected. Although conditions are imposed on the random generation of playing sets in Algorithm 3, there is still no improvement trend in successively generated playing sets during the algorithm implementation. 5.3. Minimal overlapping algorithm 65 PSfrag replacements % Resourc e utilisatio n ? 10 0(2 0,4 ;3 ) Iteration 0 65 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 Figure 5.2: Lower bound on the resource utilisation for ?20, 4; 3? using a hundred 4?sets from U20 at every iteration of Algorithm 3. The upper, middle and lower solid (?) lines respectively represent the maximum, mean and minimum resource utilisation over all iterations. 5.3 Minimal overlapping algorithm Description According to Lemma 3.1, the more elements any two labels [n?sets] in G?m,n; k? [?(Um, n)] have in common, the more vertices ofG?m,n; k? [n?sets] are collectively dominated by the two vertices in question (and hence the resource utilisation is weakened). It is therefore reasonable to assume that, in order to maximise the resource utilised by a given set L, the elements (n?sets) in L should be chosen so that the intersection between any two n?sets in L is minimised. Equivalently stated, this implies that the vertices in L are forcibly spread out over the topology of G?m,n; k?. This is the principle behind the following heuristic algorithm (presented in pseudocode as Algorithm 4 and given in C++ code in Appendix A.3). The main components of Algorithm 4 are the maintenance of the frequencies fL(i)(j) (j = 1, . . . ,m) and the overlapping function oL(i)(vl1 , vl2) (where vl1 , vl2 ? L(i)). Here the function oL(i)(vl1 , vl2) returns the number of common elements shared between the sets vl1 , vl2 ? L(i) (i.e., oL(i)(vl1 , vl2) = |vl1 ? vl2 | where vl1 , vl2 ? L(i)). A playing set L(i) (of cardinality `) is constructed from a playing set L(i?1) (of cardinality ` ? 1) by adding an n?set vi to L(i?1) such that vi is ?as mutually disjoint as possible? from any v ? L(i?1) (i.e., for any u, v ? L(i), |u ? v| is minimised). In the event that vi shares one (or more) element(s) with any v ? L(i?1), any single element overlapping is preferred above a double element overlapping, which in turn is preferred above a triple element overlapping, etc. The described procedure (intuitively) leads to an approximately even distribution of the frequency occurences fL(i)(j) (j = 1, . . . ,m). Performance and complexity Consider the following example that builds on the previous examination of the lottery ?20, 4; 3?. 66 CHAPTER 5. ALGORITHMIC BOUNDS Algorithm 4 Minimal overlapping algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `. Output: LruBest(m,n; k) ? ` or ?`(m,n; k) ? ruBest. 1: index? 0, ruBest? 0, L(0) ? {}, ovrlps? 0. 2: vindex?{}, ovrlps?min1?j @ A BDC E =F> @ A GHC E .I:<587(7(795I587(7(795;. .65J:J587(7(79587(7(795;. .6587(7(795I587(7(795J:K. =?> @ A E. / 0 243 (b) Flip move LMLMLML LMLMLML NMNMNMN NMNMNMN OMOMOMO OMOMOMO PMPMPMP PMPMPMP QMQMQ QMQMQ RMRMR RMRMR SMSMSMS SMSMSMS TMTMTMT TMTMTMT UMUMUMUMU UMUMUMUMU VMVMVMV VMVMVMV WMWMWMW WMWMWMW WMWMWMW XMXMXMX XMXMXMX XMXMXMX Y[Z]\"^`_ba?c?d e f g1h e f i?h j j j e f?k l k h m n o prq e (c) Swap move Figure 5.5: An illustration of the three defined moves for the tabu search algorithm. In Algorithm 6, the specific candidate solution neighbourhood (given any of the defined moves) of a candidate L? is denoted N (L?). Also, the function RU ( L(i)j ) represents the resource utilisation of the j?th neighbouring candidate solution at iteration i of the algorithm. Performance and complexity The following example illustrates the consequences and effectiveness of each individual move and inves- tigates some combined attributes of the tabu search algorithm. Example 5.6 (continuation of Example 5.5) Reconsider the lottery ?20, 4; 3? of Example 5.5. As asperation criterion for Algorithm 6, the tabu status of a trial solution was overridden (and hence chosen) if it improved on the best solution obtained up to that particular point in the implementation. Algorithm 6 was further initialised with Iterations = 1 000 and TabuTenure = b(204)/20c = 242, generating playing sets of cardinality ` = 100 and was executed for the following different cases: Case 1: The selection of neighbouring moves was restricted to the Shift move with the best re- source utilisation obtained at iteration 98, yielding the lower bound ?100(20, 4; 3) ? 3 7694 845 ? 77.7915%. See Figure 5.6(a). Case 2: The selection of neighbouring moves was restricted to the Flip move with the best resource util- isation obtained at iteration 701, yielding the lower bound ?100(20, 4; 3) ? 4 1584 845 ? 85.8204%. See Figure 5.6(b). Case 3: The selection of neighbouring moves was restricted to the Swap move with the best resource utilisation obtained at iteration 96 (with an average of 2 600 possible neighbouring candidate solutions per iteration), yielding the lower bound ?100(20, 4; 3) ? 3 8064 845 ? 78.5552%. See Figure 5.6(c). 5.5. Tabu search algorithm 73 Algorithm 6 Tabu search algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `, number of iterations Iterations, the tabu tenure TabuTenure. Output: LruBest(m,n; k) ? ` or ?`(m,n; k) ? ruBest. 1: index ? 1, ruBest ? 0, L(0) ? an `?set consisting of random n?sets in ?(Um, n) (using uniform distribution). 2: Select neighbouring move (according to prespecified distribution). 3: for all ( L(index+1)j ? N ( L(index) )) do 4: Update RU ( L(index+1)j ) . 5: end for 6: j? ? argmaxL(index+1)j ?N(L(index))RU ( L(index+1)j ) [i.e., determine neighbouring candidate with largest resource utilisation, taking into consideration aspiration criteria and tabu considerations]. 7: if ( RU ( L(index+1)j? ) > ruBest ) then 8: ruBest? RU ( L(index+1)j? ) . 9: end if 10: if (ruBest = 1) then 11: print L1(m,n; k) ? `. stop. 12: end if 13: L(index+1) ? L(index+1)j? and add tabu move to tabu list. 14: index? index + 1. 15: if (index ? Iterations) then 16: goto (2). 17: else [index > Iterations] 18: print LruBest(m,n; k) ? `. 19: print ?`(m,n; k) ? ruBest. stop. 20: end if Case 4: A uniform distribution between all three neighbouring moves was utilised with the best resource utilisation at iteration 1 000, yielding the lower bound ?100(20, 4; 3) ? 3 8404 845 ? 79.2570%. See Figure 5.6(d). Case 5: A 0.5%, 99% and 0.5% weighted distribution between the respective Shift, Flip and Swap neighbouring moves was utilised with the best resource utilisation obtained at iteration 902, yielding the lower bound ?100(20, 4; 3) ? 4 1694 845 ? 86.0475%. See Figure 5.6(e). From the results obtained, it is clear that the Flip move (Case 2) represents a good intensification strategy, while the Shift and Swap moves (Cases 1 and 3) may represent possible diversification strategies. This hypothesis is validated by the incorporation of a weighted distribution of both strategies (evident in Case 5) yielding the marginal improvement in resource utilised. Although the best lower bound on the resource utilisation ?100(20, 4; 3) obtained by Algorithm 6 is slightly weaker than that obtained by Algorithm 5, this is not the case in general, as will be argued later. It is assumed that a tabu tenure of ? is used throughout the following complexity considerations. Ad- ditionally, the generation of any neighbouring candidate is considered constant due to the operations performed (AND, OR and XOR) being bit?related. First consider the worst case complexity of determining the next locally optimal non?tabu candidate so- lution when only the Shift move is utilised as a possible neighbouring move. Trivially only two possible neighbouring candidates exist. For both these candidates, a search through ? tabu moves is performed (in a possible worst case or due to the incorporation of aspiration criteria) and their respective resource utilisation is determined. Therefore, the worst case complexity of the Shift move is O(? ??`(m,n;k)). Secondly, consider the worst case complexity given that only the Flip move is applied to generate neigh- 74 CHAPTER 5. ALGORITHMIC BOUNDS PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Iteration 065 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 (a) Shift move PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Iteration 065 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 (b) Flip move PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Iteration 065 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 (c) Swap move PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Iteration 065 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 (d) Evenly distributed combined moves PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Iteration 065 70 75 80 85 90 100 200 300 400 500 600 700 800 900 1 000 (e) Weighted distribution combined moves Figure 5.6: Lower bound on the resource utilisation for ?20, 4; 3? at every iteration of Algorithm 6 using the (a) Shift move, (b) Flip move, (c) Swap move and (d) a uniformly distributed and (e) weighted (0.5% Shift, 99% Flip, 0.5% Swap) random combination of the Shift, Flip and Swap moves. 5.6. Genetic algorithm 75 Program Evolution Begin t? 0 Initialise P (t) Evaluate Fitness(P (t)) While (Fitness(P (t)) < Tolerance) Do Begin t? t? 1 Select P (t) from P (t? 1) Change P (t) [Crossover & Mutation] Evaluate Fitness(P (t)) End End Figure 5.7: Typical structure of an evolution program and also the form of a genetic algorithm in pseudocode [161, 162]. bouring candidate solutions. In a (highly unlikely, yet possible) worst case scenario, the binary vector b may be completely unbalanced (i.e., the distribution of 1?bit values are clustered at either or both ends). Then, only one specific set of (m n ) ? (`+1) neighbouring candidates exists for which their respec- tive resource utilisation requires evaluation (each O(??`(m,n;k))) as well as the search through ? possible tabu moves. It therefore follows that the worst case complexity of the Flip move is O(?(m n ) ??`(m,n;k)). Finally, we consider the worst case complexity when only the Swap move is employed as a possible tabu search move for generating neighbouring candidate solutions. The maximum number of neighbouring candidates in a possible worst case is 5 000 (therefore constant), and similar complexity arguments to when the Flip move is used, holds for the Swap neighbouring move. We are able to deduce that the worst case complexity of the tabu search Swap move is therefore O(? ??`(m,n;k)). 5.6 Genetic algorithm Methodological background Charles R Darwin (1809?1882), known as the father of evolution, published an article in 1859, entitled On the Origin of Species [114], in which he described his observations of nature during an expedition visiting an island [226]. Many of his successors attached the phrase ?survival of the fittest? to his theory, which combined the process of natural selection7 with that of evolution. Based on Darwin?s evolution theory, genetic algorithms (or evolution programs) may be described as learning methods simulating biological evolution, where individuals of a species procreate in order to produce better offspring. The underlying terminology used to describe the components of a genetic algorithm, was accordingly derived from genetics. For example, individual solutions are sometimes referred to as chromosomes, consisting of genes from a certain genepool. A selection of chromosomes form part of a generation (or population). This general notion of evolution is captured in pseudocode in Figure 5.7, where the parameter t represents time and P (t) represents a population of chromosomes at time t. Similar to natural processes, a measure of fitness is used to distinguish between good and bad solution candidates when a genetic algorithmic approach is taken to solve a combinatorial optimisation problem approximately. This (problem specific) fitness measure incorporates a mechanism for defining a ranking between any two individuals with respect to the optimisation problem objective. Candidate selection for 7The process of natural selection describes the way in which any population of individuals (or candidates) adapts to its surrounding environment. The characteristics of the fitter individuals are necessarily carried over to successive generations. As the environment progressively changes, fitter offspring are produced from fitter individuals, hence the phrase ?survival of the fittest.? 76 CHAPTER 5. ALGORITHMIC BOUNDS transition operations between successive generations of approximate solutions to the optimisation prob- lem is usually performed stochastically relative to candidate fitness (i.e., fitter candidates are paired for transition operations). This choice of pairing fitter solution candidates for certain transition operations serves as a filtering process in which a successive generation of solution candidates consists of fitter can- didates8. Two basic genetic transition operators, propogation (also called crossover) and mutation, represent the process of evolution. The crossover operator yields, as output, new solution candidates (called children) inheriting properties of candidates taking part in the process (called parents). Children typically replace parent candidates in order to maintain a constant population cardinality at every iter- ation of the genetic algorithm. The mutation operator, on the other hand, is specifically incorporated to perturb a solution generation away from local optima (in the solution space) when an essentially stagnant population of candidate solutions is encountered. Mutation therefore typically involves the exploration of different (possibly new) areas of the solution space. It should be evident that mutations might also lead to less fit candidate solutions (as with the case of the crossover operator), although such weakening mutations are usually corrected by similar mutation and/or crossovers with fitter candidates during successive generations. Both definitions of the genetic operators as well as the fitness measure are problem specific and therefore vary from application to application. The importance of suitably defined crossover and mutation operators should be noted, as these may well distinguish between efficient and inefficient genetic algorithms. Traditionally, genetic algorithms are used in multi?dimensional optimisation problems with large solution spaces in which the following two (possibly contradicting) goals are present: (i) an effective search through the whole solution space (or at least a representative part thereof) and (ii) the progressive improvement of specific good solutions9. Efficient genetic algorithms maintain a good balance between scouting (of the solution space) and local improvement (of successive specific solutions). Two variations of a genetic algorithm were implemented in this dissertation, the main difference being in the way the crossover procedure between chromosomes was performed. The first implementation (classical genetic algorithm, in ?5.6.1) utilises no intelligent method of exchanging genes between par- ent/candidate solutions. In contrast, the second implementation (intelligent genetic algorithm, in ?5.6.2) gives preference to fitter offspring by incorporating an evaluation procedure to decide which offspring will be produced during propagation. 5.6.1 Classical genetic algorithm Description Genetic algorithms may be employed in search of (upper and lower) bounds on L?(m,n; k) and ?`(m,n; k) (respectively). Candidates in a population are represented by playing sets of cardinality ` and there- fore consist of subsets from ?(Um, n). The chromosome population is initialised with a collection of ` randomly selected n?sets from ?(Um, n). The number of vertices in the lottery graph G?m,n; k? dominated by a playing set lends itself as an intuitive and realistic fitness measure. Chromosomes are paired (for the genetic crossover procedure) at random (using a population fitness distribution) relative to their individual fitness (i.e., the fitter [weaker] candidates in a population possess the propensity to pair with other fit [less fit] candidates). The classical genetic crossover procedure is defined as a single exchange of any individual gene between two paired candidate solutions (say Parent A and Parent B). More specifically, any gene from Parent A [B] is exchanged with any gene from Parent B [A], generating a pool of 2 candidate offspring (say Child A and Child B). Child A [B] necessarily replaces Parent A [B] in the genetic algorithm crossover procedure. The genetic mutation procedure alters a random proportion of genes in a random proportion of solution candidates (using a uniform distribution). An illustrative example of the crossover [mutation] operation performed on chromosomes for ?7, 3; 2? is shown in Figure 5.8(a) [(b)]. This process is iterated for a (user) prespecified number of generations or until a certain fitness tolerance 8Due to the stochastic nature of the selection procedure and criteria, it may well occur (although the chances are small relative to fitter candidates) that less fit offspring result from paired transition candidates. 9Similar to the intensification and diversification strategies incorporated in tabu searches. 5.6. Genetic algorithm 77 sts9utv?wxv?y9z9v s?wxv?{6v?|9z9v sr{6v"}xv"|9ztz sts9utv"wxv"{?z9v s9utv?{6v[~?z9v s?wxv?{6v"~?ztz ? ?6????? u sts9utv?wxv?y9z9v s9utv?{6v[~?z9v sr{6v"}xv"|9ztz ? ?6????? w sts9utv?{6v[~?z9v s?wxv?{6v[~?z9v sr{6v"}xv?|9ztz ???4???H?9? u ???4???H?9? w ? ?"?t???"?r???H? ?(?J? ?F?9?[?F???"? ?"?x? ?(?J? ?F?9?[?F???"? ?"?x? ?(?J? ?F?9?[?????"? ?"??? ?(?J? ?F?9?[??????? ?"??? (a) Crossover procedure ?t?9?t?[?x???9?9? ???x???6???9?9? ?r?6?"?x?"?9?t? ? ?6????? ?t?9?t?[?x???9?9? ?9?t?"?x?"???9? ?r?6?"?x?"?9?t? ???4???H?9? ?(?J? ?F?9?[?F???"? ?"?x? ?(?J? ?F?9?[?F????? ?"?x? ???x?"??? ??? ? (b) Mutation procedure Figure 5.8: Illustration of (a) the crossover procedure performed on two parent chromosomes yielding two (fitter) children (Child 1 [2] is obtained from Parent 1 [2] by the exchange of gene 2 [3] from Parent 2 [1] with gene 2 [1] from Parent 1 [2]) and (b) the mutation procedure on a single chromosome yielding a (weaker) child (the Child is obtained from the Parent by replacing gene 2 with the random gene {1, 2, 4}) for ?7, 3; 2?. is obtained (for this specific implementation, the tolerance may be given by some minimally acceptable average population fitness or if one candidate represents a L1(m,n; k)?set for ?m,n; k?). Performance and complexity Consider the complexity of performing the classical crossover procedure between any two individual candidates of a population M. A single gene exchange is considered in the generation of child can- didates, which may be performed in |M| operations. For each of the 2 future offspring, the resource utilisation is calculated, leading to a complexity of O ( Generations|M|??`(m,n;k) ) . Consider, on the other hand, the complexity of performing the mutation procedure on a generation of candidate solu- tions. A random selection of gMutate ? ` genes in cMutate ? |M| individuals is mutated (replaced by random n?sets). The choice of candidates and relevant genes may each be considered of constant complexity. This leads to the conclusion that the mutation procedure is O(` gMutate ? |M|cMutate) per generation. With both procedures being performed independently (and hence being of complexity O(Generations (|M|??`(m,n;k) + ` gMutate|M|cMutate))), we are able to deduce that the worst case complexity of the Classical genetic algorithm is O ( Generations|M|??`(m,n;k) ) . The implemented classical genetic algorithm was found to exhibit far slower convergence than that of the intelligent genetic algorithm ? possibly due to the inferior change in resource utilisation incurred by not exchanging specifically bad genes for better ones that would improve the fitness of the chromosome the most. Therefore, the discussion involving genetic algorithms in this section will henceforth only focus on the intelligent genetic algorithm. However, the C++ code for the classical genetic algorithm is presented in Appendix A.6. 5.6.2 Intelligent genetic algorithm Description As stated, the only difference between the Intelligent and Classical genetic algorithm approach, is in the way the crossover procedure is performed. For the intelligent genetic crossover procedure, a single exchange of all individual genes between two paired candidate solutions (say Parent A and Parent B), is considered. More specifically, all genes from Parent A [B] are exchanged with all genes from Parent B [A], generating a pool of `2 candidate offspring. These `2 offspring are then evaluated (according to the fitness of the resulting chromosome) with the choice of the fittest offspring (Child A [B]) replacing the parent (Parent A [B]). 78 CHAPTER 5. ALGORITHMIC BOUNDS Algorithm 7 (Classical/intelligent) Genetic algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `, a candidate population M, the percentage of chromosomes to mutate per generation cMutate, the percentage of genes to mutate per chromosome gMutate, number of generations Generations. Output: LruBest(m,n; k) ? ` or ?`(m,n; k) ? ruBest. 1: index? 1, ruBest? 0. 2: for all j = 1, . . . ,|M| do 3: L(0)j ? `?set consisting of random n?sets in ?(Um, n) (using uniform distribution). 4: end for 5: for all j = 1, . . . ,|M| do 6: Update RU ( L(index)j ) . 7: end for 8: if ( RU ( L(index)j ) > ruBest ) then 9: index? ? argmaxj?{1,...,|M|}RU ( L(index)j ) , ruBest? RU ( L(index ?) j ) . 10: end if 11: if (ruBest = 1) then 12: print L1(m,n; k) ? `. stop. 13: end if 14: Perform transition procedures: (Classical/intelligent) Crossover & Mutation (according to the pa- rameters gMutate and cMutate). 15: index? index + 1. 16: if (index < Generations) then 17: goto (2). 18: else [index = Generations] 19: print LruBest(m,n; k) ? `. 20: print ?`(m,n; k) ? ruBest. stop. 21: end if Algorithm 7 presents the description of the (classical/intelligent) genetic algorithm in pseudocode, while the corresponding C++ code is given in Appendix A.7. In Algorithm 7, chromosome i of a population M and its resource utilisation is represented by L(i) and RU(L(i)), respectively. The mutation procedure proportions (as mentioned in the description of the Classical genetic algorithm in ?5.6.1) are given respectively by the parameters gMutate and cMutate in Algorithm 7. Performance and complexity Consider the complexity of performing the intelligent crossover procedure between any two individual candidates of a population M. The number of operations required to perform every possible gene ex- change for every solution candidate is `2|M|. For each of the possible future offspring, the resource utilisation is calculated in order to extract those children that are fittest, leading to a complexity O ( Generations `2|M|??`(m,n;k) ) . Because there is no change in the way mutation of solution can- didates is concerned, we deduce that the worst case complexity of the Intelligent genetic algorithm is O ( Generations `2|M|??`(m,n;k) ) . One of the (most probable) disadvantages of the intelligent genetic algorithm implementation in deter- mining lower bounds on the resource utilisation ?`(m,n; k), as opposed to the tabu search optimisation heuristic of Algorithm 6, is the crossover procedure that makes an enormous contribution to the com- putational complexity. Tabu search implementations for finding dominating sets in graphs are known to become less attractive as the order of the graphs increase [56]. This constraint may be even worse in the case of Algorithm 7. In the following example, the impact of individual parameter variations is considered. This sheds light on the effectiveness of genetic algorithms in the context of maximising resource utilisation or finding incomplete lottery sets. 5.7. Comparison of algorithms for small lotteries 79 Example 5.7 (continuation of Example 5.6) Reconsider the lottery ?20, 4; 3? of Example 5.6. Three independent parameter variations were considered (for every case the parameter Generations was ini- tialised to be 200): Case 1: Algorithm 7 was initialised with a random population consisting of |M| = 20 candidate solutions, each representing a playing set L(0)j (j = 1, . . . , 20) of ` = 100 genes (4?sets). In every generation, cMutate = 5% of the population candidates are subjected to muta- tion. The parameter gMutate was initialised to take the values (i) 1%, (ii) 2%, (iii) 5%, (iv) 10% and (v) 25% respectively. The maximum population fitness (and hence the best re- source utilisation) per generation is presented in Figure 5.9(a). The best resource utilisation was obtained with a gene mutation percentage of gMutate = 2%, yielding the lower bound ?100(20, 4; 3) ? 4 2504 845 ? 87.7193%. Case 2: The parameter cMutate was initialised to take the values (i) 5%, (ii) 10%, (iii) 25% and (iv) 50% respectively. Algorithm 7 was further randomly initialised with a population consisting of |M| = 20 candidate solutions, each representing a playing set L(0)j (j = 1, . . . , 20) of ` = 100 genes (4?sets). Every candidate subjected to mutation, had gMutate = 5% of its respective genes mutated. The maximum population fitness (and hence the best re- source utilisation) per generation is presented in Figure 5.9(b). The best resource utilisation was obtained with a candidate mutation percentage of cMutate = 10%, yielding the lower bound ?100(20, 4; 3) ? 4 2614 845 ? 87.9463%. Case 3: The number of candidate solutions |M| in a population was varied to take the values (i) 6, (ii) 10 and (iii) 20. A single chromosome (cMutate = 1|M|) of the |M| candidates in the population, were subjected to a mutation of gMutate = 5% genes. The maximum population fitness (and hence the best resource utilisation) per generation is presented in Figure 5.9(c). The best resource utilisation was obtained with a candidate population of |M| = 20, yielding the lower bound ?100(20, 4; 3) ? 4 2604 845 ? 87.9257%. Using these results, the following additional case is considered. Case 4: Algorithm 7 was intialised with gMutate = 2%, cMutate = 10% in a population of |M| = 20 candidate solutions, thus utilising the best empirically obtained parameter values from Cases 1?3. Figure 5.9(d) represents the minimum, mean and maximum generation fitness (or equivalently the resource utilisation ?100(20, 4; 3)) as a function of the population genera- tion. The best resource utilisation was obtained in generation 99, yielding the lower bound ?100(20, 4; 3) ? 4 2774 845 ? 88.2766%. Although the best lower bound on the resource utilisation ?100(20, 4; 3) obtained by Algorithm 7 is slightly weaker than that obtained by Algorithm 5, this is not the case in general as will be argued later. 5.7 Comparison of algorithms for small lotteries Consider the small lotteries ?m,n; k? where 1 ? k < n < m ? 10 for which the complete lottery numbers L1(m,n; k) are given in Table 3.1. Algorithms 2?7 were applied to determine lower bounds on ?`(m,n; k) in these cases for 2 ? ` ? L1(m,n; k), as presented in Table 5.2. Algorithms 2?4 and 6 [7] were each initialised to perform 1 000 iterations [generations], retaining the best resource utilisation obtained (no additional initialisation is required for Algorithm 5). In all cases Algorithms 6 and 7 perform at least as well as the other four algorithms, often yielding strictly better results than these four alternatives. And of Algorithms 6 and 7, only Algorithm 7 was able to achieve a value of ?`(m,n; k) = 1 for ` = L1(m,n; k) in all cases considered. 80 CHAPTER 5. ALGORITHMIC BOUNDS Algorith m ` 2 3 2 1415 1 3 1415 1 4 1415 1 5 1415 1 6 1415 1 7 1415 1 (a) Lower bounds on ?`(6, 2; 1) = ?`(6, 4; 3) (2 ? ` ? 3 = L1(6, 2; 1) = L1(6, 4; 3)) Algorith m ` 2 3 2 1821 1 3 1821 1 4 1821 1 5 1821 1 6 1821 1 7 1821 1 (b) Lower bounds on ?`(7, 2; 1) = ?`(7, 5; 4) (2 ? ` ? 3 = L1(7, 2; 1) = L1(7, 5; 4)) Algorith m ` 2 3 4 2 2635 32 35 1 3 2635 32 35 1 4 2635 31 35 34 35 5 2635 31 35 34 35 6 2635 32 35 1 7 2635 32 35 1 (c) Lower bounds on ?`(7, 3; 2) = ?`(7, 4; 3) (2 ? ` ? 4 = L1(7, 3; 2) = L1(7, 4; 3)) Algorith m ` 2 3 4 2 2228 27 28 1 3 2228 27 28 1 4 2228 27 28 1 5 2228 27 28 1 6 2228 27 28 1 7 2228 27 28 1 (d) Lower bounds on ?`(8, 2; 1) = ?`(8, 6; 5) (2 ? ` ? 4 = L1(8, 2; 1) = L1(8, 6; 5)) Algorith m ` 2 3 4 5 2 3256 44 56 50 56 54 56 3 3256 44 56 50 56 54 56 4 3256 44 56 49 56 54 56 5 3256 44 56 49 56 54 56 6 3256 44 56 50 56 1 7 3256 44 56 50 56 1 (e) Lower bounds on ?`(8, 3; 2) = ?`(8, 5; 4) (2 ? ` ? 5 = L1(8, 3; 2) = L1(8, 5; 4)) Algorith m ` 2 3 4 5 6 2 3470 47 70 57 70 63 70 68 70 3 3470 47 70 60 70 64 70 67 70 4 3470 43 70 52 70 57 70 62 70 5 3470 47 70 60 70 63 70 66 70 6 3470 47 70 60 70 64 70 1 7 3470 47 70 60 70 64 70 1 (f) Lower bounds on ?`(8, 4; 3) (2 ? ` ? 6 = L1(8, 4; 3)) Table 5.2: A comparison between the performances of Algorithms 2?7 in the determination of lower bounds on the resource utilisation number ?`(m,n; k) (2 ? ` ? L1(m,n; k)) for the small lotteries ?m,n; k?, where 1 ? k < n < m ? 10. Boldfaced values of ` represent exact values of L1(m,n; k) [19, 44, 133]. 5.7. Comparison of algorithms for small lotteries 81 Algorith m ` 2 3 4 2 2636 33 36 1 3 2636 33 36 1 4 2636 33 36 1 5 2636 33 36 1 6 2636 33 36 1 7 2636 33 36 1 (g) Lower bounds ?`(9, 2; 1) = ?`(9, 7; 6) (2 ? ` ? 4 = L1(9, 2; 1) = L1(9, 7; 6)) Algorith m ` 2 3 2 8384 1 3 8384 1 4 8384 1 5 8384 1 6 8384 1 7 8384 1 (h) Lower bounds on ?`(9, 3; 1) = ?`(9, 6; 4) (2 ? ` ? 3 = L1(9, 3; 1) = L1(9, 6; 4)) Algorith m ` 2 3 4 5 6 7 2 3884 57 84 65 84 73 84 79 84 81 84 3 3884 57 84 65 84 73 84 78 84 81 84 4 3884 57 84 64 84 71 84 78 84 79 84 5 3884 57 84 64 84 71 84 78 84 79 84 6 3884 57 84 65 84 75 84 80 84 1 7 3884 57 84 65 84 75 84 80 84 1 (i) Lower bounds on ?`(9, 3; 2) = ?`(9, 6; 5) (2 ? ` ? 7 = L1(9, 3; 2) = L1(9, 6; 5)) Algorith m ` 2 3 4 5 6 7 8 9 2 42126 63 126 80 126 93 126 100 126 109 126 114 126 119 126 3 42126 63 126 80 126 93 126 101 126 106 126 112 126 117 126 4 42126 48 126 65 126 82 126 90 126 100 126 108 126 112 126 5 42126 63 126 80 126 93 126 103 126 110 126 116 126 120 126 6 42126 63 126 80 126 93 126 104 126 115 126 121 126 125 126 7 42126 63 126 80 126 93 126 104 126 115 126 121 126 1 (j) Lower bounds on ?`(9, 4; 3) = ?`(9, 5; 4) (2 ? ` ? 9 = L1(9, 4; 3) = L1(9, 5; 4)) Algorith m ` 2 3 4 5 2 3045 39 45 44 45 1 3 3045 39 45 44 45 1 4 3045 39 45 44 45 1 5 3045 39 45 44 45 1 6 3045 39 45 44 45 1 7 3045 39 45 44 45 1 (k) Lower bounds on ?`(10, 2; 1) = ?`(10, 8; 7)(2 ? ` ? 5 = L1(10, 2; 1) = L1(10, 8; 7)) Algorith m ` 2 3 2 116120 1 3 116120 1 4 116120 1 5 116120 1 6 116120 1 7 116120 1 (l) Lower bounds on ?`(10, 3; 1) = ?`(10, 7; 5)(2 ? ` ? 3 = L1(10, 3; 1) = L1(10, 7; 5)) Table 5.2 (continued): A comparison between the performances of Algorithms 2?7 in the determination of lower bounds on the resource utilisation number ?`(m,n; k) (2 ? ` ? L(m,n; k)) for the small lotteries ?m,n; k?, where 1 ? k < n < m ? 10. Boldfaced values of ` represent exact values of L1(m,n; k) [19, 44, 133]. 82 CHAPTER 5. ALGORITHMIC BOUNDS Algorith m ` 2 3 4 5 6 7 8 2 44120 66 120 80 120 91 120 100 120 106 120 112 120 3 44120 66 120 80 120 92 120 100 120 107 120 111 120 4 44120 66 120 80 120 90 120 100 120 108 120 111 120 5 44120 66 120 80 120 92 120 102 120 107 120 112 120 6 44120 66 120 80 120 92 120 102 120 110 120 1 7 44120 66 120 80 120 92 120 102 120 110 120 1 (m) Lower bounds on ?`(10, 3; 2) = ?`(10, 7; 6) (2 ? ` ? 8 = L1(10, 3; 2) = L1(10, 7; 6)) Algorith m ` 2 3 2 194210 1 3 194210 1 4 194210 1 5 194210 1 6 194210 1 7 194210 1 (n) Lower bounds on ?`(10, 4; 2) = ?`(10, 6; 4) (2 ? ` ? 3 = L1(10, 4; 2) = L1(10, 6; 4)) Algorith m ` 2 3 4 5 6 7 8 9 10 11 12 13 14 2 50210 75 210 100 210 117 210 131 210 145 210 156 210 169 210 178 210 184 210 189 210 191 210 200 210 3 50210 75 210 100 210 121 210 134 210 148 210 161 210 169 210 174 210 182 210 188 210 193 210 201 210 4 50210 75 210 96 210 117 210 127 210 141 210 155 210 167 210 177 210 185 210 193 210 198 210 201 210 5 50210 75 210 96 210 117 210 138 210 151 210 164 210 175 210 185 210 193 210 198 210 202 210 204 210 6 50210 75 210 100 210 125 210 139 210 156 210 170 210 180 210 191 210 198 210 201 210 206 210 208 210 7 50210 75 210 100 210 125 210 139 210 156 210 170 210 181 210 193 210 199 210 204 210 208 210 1 (o) Lower bounds on ?`(10, 4; 3) = ?`(10, 6; 5) (2 ? ` ? 14 = L1(10, 4; 3) = L1(10, 6; 5)) Algorith m ` 2 3 4 5 6 7 8 9 10 11 12 13 14 2 52252 78 252 104 252 126 252 144 252 162 252 176 252 185 252 198 252 203 252 212 252 221 252 230 252 3 52252 78 252 104 252 126 252 144 252 159 252 170 252 184 252 197 252 203 252 210 252 220 252 232 252 4 52252 74 252 96 252 115 252 134 252 150 252 166 252 181 252 196 252 208 252 224 252 232 252 236 252 5 52252 78 252 104 252 130 252 156 252 170 252 184 252 198 252 209 252 220 252 229 252 235 252 240 252 6 52252 78 252 104 252 130 252 156 252 170 252 188 252 203 252 214 252 224 252 229 252 236 252 241 252 7 52252 78 252 104 252 130 252 156 252 170 252 192 252 203 252 220 252 226 252 234 252 239 252 1 (p) Lower bounds on ?`(10, 5; 4) (2 ? ` ? 14 = L(10, 5; 4)) Table 5.2 (continued): A comparison between the performances of Algorithms 2?7 in the determination of lower bounds on the resource utilisation number ?`(m,n; k) (2 ? ` ? L(m,n; k)) for the small lotteries ?m,n; k?, where 1 ? k < n < m ? 10. Boldfaced values of ` represent exact values of L1(m,n; k) [19, 44, 133]. 5.8. Comparison of algorithms for larger lotteries 83 PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Generation 075 80 85 90 20 40 60 80 100 120 140 160 180 200 gMutate = 1% gMutate = 2% gMutate = 5% gMutate = 10% gMutate = 25% (a) Gene mutation parameter (gMutate) PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Generation 0 10 20 30 40 50 60 7075 80 85 90 cMutate = 5% cMutate = 10% cMutate = 25% cMutate = 50% (b) Candidate mutation parameter (cMutate) PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Generation 0 10 20 30 40 50 60 70 80 90 100 90 85 80 75 |M| = 6|M| = 10|M| = 20 (c) Population parameter (|M|) PSfrag replacements % Resourc e utilisatio n ? 10 0 (2 0, 4; 3) Generation 0 10 20 30 40 50 60 70 80 90 10065 70 75 80 85 90 Minimum fitness Average fitness Maximum fitness (d) Best parameters utilised Figure 5.9: Influence on the resource utilisation ?100(20, 4; 3) due to a change in the genetic algorithm parameters: (a) gene mutation parameter gMutate, (b) candidate mutation parameter cMutate, (c) population parameter |M| and (d) utilising the best genetic parameters (gMutate = 2%, cMutate = 10% and |M| = 20) for the lottery ?20, 4; 3?. 5.8 Comparison of algorithms for larger lotteries This section is devoted to considering the performance of Algorithms 2?7 on more realistic values of the lottery parameters ?m,n; k?. A whole lottery class ?m, 5; 2? (for 5 ? m ? 30) is considered in ?5.8.1, while in ?5.8.2 the focus is on the specific lottery ?49, 6; 3?, which seems to be the single most popular lottery scheme world wide (according to Table 1.1). 5.8.1 The lottery class ?m, 5; 2? Algorithms 2?6 [7] were implemented with the intention of finding lottery sets for ?m, 5; 2?, where 5 ? m ? 25, in order to give the reader a better impression of the relative performance of the algorithms described in ??5.1?5.5 [?5.6]. The cardinality of a smallest lottery set cardinality determined with 1 000 iterations [generations] by all of the specific algorithms (hence upper bounds on L(m, 5; 2)) are summarised in Table 5.3. From Table 5.3, it is evident that Algorithm 7 outperforms Algorithms 2?6. For completeness, the best 84 CHAPTER 5. ALGORITHMIC BOUNDS m Bounds on L1(m, 5; 2) 5 6 7 8 9 10 11 12 13 14 15 16 17 Classical random algorithm (2) 1 1 1 1 2 2 2 3 3 3 3 4 5 Distributed random algorithm (3) 1 1 1 1 2 2 2 2 3 3 3 4 4 Minimal overlapping algorithm (4) 1 1 1 1 2 2 2 2 3 3 3 3 4 Neighbourhood removal algorithm (5) 1 1 1 1 2 2 2 2 3 3 3 3 4 Tabu search algorithm (6) 1 1 1 1 2 2 2 2 3 3 3 3 4 (Intelligent) Genetic algorithm (7) 1 1 1 1 2 2 2 2 3 3 3 3 4 m Bounds on L1(m, 5; 2) 18 19 20 21 22 23 24 25 26 27 28 29 30 Classical random algorithm (2) 6 8 10 13 13 16 19 20 25 29 30 33 36 Distributed random algorithm (3) 6 8 8 11 13 16 17 20 22 26 28 32 35 Minimal overlapping algorithm (4) 4 4 4 9 9 12 14 16 18 21 22 26 28 Neighbourhood removal algorithm (5) 4 4 4 9 9 11 15 18 18 22 22 26 27 Tabu search algorithm (6) 4 4 4 6 6 8 11 15 16 21 21 25 26 (Intelligent) Genetic algorithm (7) 4 4 4 6 6 9 11 12 15 16 18 20 22 Table 5.3: A comparison between upper bounds on L1(m, 5; 2), where 5 ? m ? 30, as determined by Algorithms 2?7. Boldfaced entries represent exact values of L1(m, 5; 2). known lower and upper bounds on L1(m,n; k) for ?m,n; k? where 2 ? k < n ? 6 and 3 ? m ? 50 (available from lottery and covering number repository cites on the Internet [19, 44, 133, 237]) are presented in Tables B.2 and B.3. 5.8.2 The lottery ?49, 6; 3? In this subsection the most widely used lottery, namely the lottery ?49, 6; 3? (see Table 1.1), is considered. The lottery graph G?49, 6; 3? on 13 983 816 vertices is 260 623?regular and has a density of 6 061325 205 ? 0.01864 containing |E(G?49, 6; 3?)| = 1 822 252 038 684 edges. Due to the complexities of Algorithms 5?7 for this specific case, only Algorithms 2?4 could be used to determine lower bounds on ?`(49, 6; 3). These lower bounds are presented in Figure 5.10, together with the best known bound of L(49, 6; 3) ? 163, available from Internet repository tables [19]. From Figure 5.10, it is evident that Algorithms 2 and 3 perform relatively weaker than Algorithm 4, even in a realistic case such as ?49, 6; 3?. For this specific case, Algorithm 4 performs on average between 3% and 4% better than Algorithms 2 and 3. The best lower bound on the resource utilisation, namely ?163(49, 6; 3) ? 13 752 98313 983 816 ? 98.3493%, was obtained by Algorithm 4 (as opposed to the best lower bounds of ?163(49, 6; 3) ? 96.1337% and ?163(49, 6; 3) ? 96.7481% obtained by Algorithms 2 and 3, respectively), with the generated playing set given in Table B.1(a). It is expected that Algorithms 5?7 may yield much better results, although this claim could not be validated, due to the extremely high computational complexity of these algorithms. This restriction, however, may be alleviated partially with the aid of parallelisation programming techniques. 5.9 Chapter summary In this chapter, seven algorithms were investigated in order to obtain lower and upper bounds on respec- tively the resource utilisation number ?`(m,n; k) and the lottery number L?(m,n; k). These algorithms may be classified into three categories, using iterative (i) independent solution generation techniques, (ii) solution construction techniques and (iii) modification of solution candidates techniques. Algorithm 3 (Distributed random algorithm) achieves a marginal improvement on the performance of Algorithm 2 (Classical random algorithm), although neither algorithm utilises the structure of the lottery graph in terms of the way in which solution candidates are determined. As a possible improvement, 5.9. Chapter summary 85 PSfrag replacements % Resourc e utilisatio n ? `(4 9,6 ;3 ) ` Classical random algorithm (Algorithm 2) Distributed random algorithm (Algorithm 3) Minimal overlap algorithm (Algorithm 4) Theoretical resource utilisation (Theorem 2.3(f)) Best known bound on the Internet [19] 100 90 80 70 60 50 40 30 20 10 0 20 40 60 80 100 120 140 160 Figure 5.10: Lower bounds on the resource utilisation ?`(49, 6; 3) obtained as a function of `, using Algorithms 2?4. Algorithm 4 (Minimal overlapping algorithm) incorporates a mechanism for constructing interdependent playing sets. From the results obtained, no significant general improvement occurs for small values of ` > 2, although improvements upon the performance of Algorithms 2 and 3 are observed in larger, more realistic lottery cases. Algorithm 5 (Neighbourhood removal algorithm) represents an effective local optimisation strategy for relatively small values of `. The algorithm progress tends to deteriorate as the order of the vertex? induced subgraph decreases. The locally optimal decision to remove a vertex with largest (closed) neighbourhood, leaves the vertex?induced subgraph disposed to the formation of separate components and hence unnecessarily decreases [increases] the bounds on ?`(m,n; k) [L?(m,n; k)]. The performance of the optimisation techniques of Algorithms 6 (Tabu search algorithm) and 7 (Intel- ligent genetic algorithm) as compared to those of the first four algorithms, are visible in the bounds obtained in Table 5.2. More specifically, Algorithm 7 is the only algorithm that found L1(m,n; k)?sets for all the lottery numbers L1(m,n; k) where 1 ? k < n < m ? 10 (presented in Table 3.1). Algorithm 7 is therefore a potentially convincing method for finding (near?) optimal complete lottery sets. The applicability of this algorithm is, however, diminished by the computational intensity of the crossover procedure. For completeness, the best known lower and upper bounds on L1(m,n; k) (where 2 ? k < n ? 6 and 3 ? m ? 50), taken from covering and lottery repository tables on the Internet [19, 44, 133, 237], are given in Table B.2. 86 CHAPTER 5. ALGORITHMIC BOUNDS Chapter 6 Optimal solution characterisations ?Each problem that I solved became a rule which served afterwards to solve other problems.? Rene? Descartes (1596?1650) In cases where the incomplete lottery number L?(m,n; k) is known, it is possible to characterise all possible {L?(m,n; k),?`(m,n; k)}?sets. This chapter is devoted to describing two similar enumeration methods (each using a different method of structure representation) for determining all structurally different {L?(m,n; k),?`(m,n; k)}?sets for ?m,n; k?. The first enumeration method (in ?6.1.1) employs a vector representation to capture the overlapping structure of any playing set for ?m,n; k?, while the second enumeration method (in 6.1.2) utilises a simple graph together with an automorphism testing program. Both enumeration methods may also be used if L?(m,n; k) is not known in order to attempt establishing the incomplete lottery number, although the computational complexity prohibits implementation for large values of m, n, k and `. Some general properties of the charactersation sequences are derived in ?6.2 (for variations in the parameters m, n and k). The chapter also extends the computational results performed in Chapter 3 (?3.4) in the sense that all structurally different L?(m,n; k)?sets for ?m,n; k? (where 1 ? k < n < m ? 10 such that m + k ? 2n and n ? bm2 c, and 2 ? L1(m,n; k) ? 6, 7) are determined in ?6.3. This is followed by an exhibition of new complete lottery numbers and improved (upper and lower) bounds in ?6.4, found by the characterisation techniques in ?6.1. The chapter closes with a chapter summary in ?6.5. 6.1 Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures In order to describe the number of structurally different1 {L?(m,n; k),?`(m,n; k)}?sets in this Chapter, we require the following additional notation. Definition 6.1 (The incomplete lottery characterisation number ??(m,n; k)) Let the set L? = {L(1),L(2), . . . ,L(??(m,n;k))} be composed of all structurally different {L?(m,n; k),?`(m,n; k)}?sets for the lottery ?m,n; k? (where 1 ? k ? n ? m, 0 < ? ? 1 and 1 ? ` ? L1(m,n; k)). Then, we refer to ??(m,n; k) = |L? | as the incomplete lottery characterisation number for ?m,n; k?. 6.1.1 Lottery tree method In this section the objective is to find (i) the number of structurally different n?set overlapping structures of L?(m,n; k)?sets for ?m,n; k? as well as all ??(m,n; k) actual L?(m,n; k)?set structures and (ii) the 1By structurally different sets it is meant that the {L?(m,n; k),?`(m,n; k)}?sets differ in their n?set overlapping structure: two {L?(m,n; k),?`(m,n; k)}?sets may be different, but share the same overlapping structure in terms of their n?sets, as explained in Chapter 3. 87 88 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS number of different n?set overlapping structures of ?`(m,n; k)?sets for ?m,n; k? as well as all possible ?`(m,n; k) characterisations for small feasible values of 1 ? k ? n ? m ? 10, L?(m,n; k) and `. We define ??(m,n; k) to indicate the number of structurally different playing sets of minimum cardinality yielding a resource utilisation of at least 0 < ? ? 1 and use the same ~X?vector notation outlined in ?3.2 to distinguish between the structural difference of {L?(m,n; k),?`(m,n; k)}?sets. To this end, suppose that L` = {T1, T2, . . . , T`} is a playing set of cardinality ` for the lottery ?m,n; k?. One method of enumerating all {L?(m,n; k),?`(m,n; k)}?set structures for ?m,n; k?, consists of con- structing a rooted tree (henceforth referred to as the lottery tree) of evolving overlapping structures, whose nodes represent overlap specifications similar to that shown in Figure 3.7(b). Level i of the lottery tree contains all possible (non?isomorphic) overlapping n?set structures of cardinality i and is constructed from the nodes on level i? 1 of the lottery tree by appending 2i?1 integers to (i.e., doubling) each of the existing vectors ~X(i?1). These integer appendices represent all possible (new) n?set overlappings with respect to the existing overlappings {T1, T2, . . . , Ti?1} (represented by nodes on level i? 1 of the lottery tree) when adding the i?th n?set, Ti (in such a manner that |Ti ? Tj| < n for any two n?sets Ti and Tj). The lottery tree has `+1 levels in total. The first level of the tree consists of the node ~X(1) = (m?n, n) only (the root), while the nodes ~X(`) on level ` of the lottery tree represent potential ?`(m,n; k)?set structures or L?(m,n; k)?set structures of cardinality ` for ?m,n; k?. An (` + 1)?st level of nodes is added to the tree (in such a manner that |T`+1 ? Tj| ? n for all j ? `) in order to carry out a so?called domination test2 (i.e., to test which of the nodes on level ` actually represent valid L?(m,n; k)?sets of cardinality `). This domination test is achieved by testing whether all nodes on level ` + 1 of the tree overlap in at least k positions with at least one n?set of the existing ` n?set overlapping structure (represented by its parent node ~X(`)) in the tree (i.e., |Ti?T`+1| ? k for some i ? {1, . . . , `}). If this were the case, then the n?set overlapping structure represented by the parent node ~X(`) would constitute an L1(m,n; k)?set for ?m,n; k?. However, if there exists at least one node on level ` + 1 of the tree whose corresponding final n?set overlaps in fewer than k positions with all n?sets of the parent node overlapping structure, the parent node does not represent a complete lottery set (although possibly an incomplete lottery set) and hence ~X(`) will yield a probability, ? ~X(`) < 1 (say), of winning a k?prize by means of a playing set whose structure conforms to the vector ~X(`). In order to quantify this probability, define the set DT [DF] as all those structures ~X(`+1) on level ` + 1 with parent node ~X(`) in the lottery tree that yield a True [False] result in the domination test (hence DF = ? for any L1(m,n; k)?set). The probability ? ~X(`) of a parent node ~X(`) yielding a k?prize in the lottery ?m,n; k? is then given by ? ~X(`) = ? ~X(`+1)?DT M ( ~X(`+1) ) ? ~X(`+1)?{DT?DF} M ( ~X(`+1) ), (6.1) where M( ~X(`)) is given in (3.4). The enumeratation procedure described for generating a lottery tree for ?m,n; k? is given in pseudocode as Algorithm 8. For clarity of the description of the above mentioned enumeration method and parameters, construction of lottery trees for the lotteries ?5, 3; 2? and ?7, 3; 2? are reconsidered in the following examples. Example 6.1 (continuation of Example 3.3) Reconsider the lottery ?5, 3; 2? of Example 3.3. It is known that L1(5, 3; 2) = 2. Using the above mentioned method of enumerating all the possible L1(5, 3; 2)? set structures for ?5, 3; 2?, the lottery tree in Figure 6.1 is obtained. The table in Figure 6.1 contains the relevant domination test information, as obtained from the nodes on level three of the lottery tree. By utilisation of (6.1) the vector ~X(2) = (1, 1, 1, 2) yields a probability of ? ~X(2) = 60+120+120+120+60+60 60+120+120+60+120+60+60 = 9 10 of winning a 2?prize, while the corresponding probability is ? ~X(2) = 1 for the vector ~X(2) = (0, 2, 2, 1). From this it is concluded that the only L?(5, 3; 2)?set structure for 910 < ? ? 1 is given by the vector ~X(2) = (0, 2, 2, 1), implying that ??(5, 3; 2) = 1 (i.e., a unique minimum cardinality solution to the incomplete lottery problem in this case). However, ??(5, 3; 2) = 2 if 710 < ? ? 910 with the additional 2The reader should note that the domination test carried out in the lottery tree, refers to the domination of the lottery set structures in the lottery graph G?m,n; k?, and not to the conventional domination of the lottery tree itself. 6.1. Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures 89 Algorithm 8 L?(m,n; k)?set characterisation algorithm Input: The lottery parameters ?m,n; k?, a playing set cardinality `. Output: LruBest(m,n; k) = ` or ?`(m,n; k) = ruBest and ?ruBest(m,n; k) = structures. 1: level? 1, structures? 0, ruBest? 0, initialise root node ~X(1). 2: Generate 1st lexicographic child (i.e., double parent vector ~X(level)). 3: level? level + 1. 4: if (level ? `) then 5: Use pruning rules [permutation checking] to eliminate duplicate ~X(level) structures. 6: if ( ~X(level) is eliminated ) then 7: goto (18). 8: end if 9: goto (2). 10: else [(level = ` + 1)] 11: Determine ? ~X(`) (i.e., evaluate and sum all contributions of ~X(`+1)). 12: if (? ~X(`) > ruBest ) then 13: ruBest? ? ~X(`) , structures? 0. 14: else if (? ~X(`) = ruBest ) then 15: structures? structures+ 1. 16: end if 17: end if 18: while ((level > 1) and (next lexicographic sibling ~X(level) does not exist)) do 19: level? level? 1. 20: end while 21: if (level = 1) then 22: print LruBest(m,n; k) = `. 23: print ?`(m,n; k) = ruBest. 24: print ?ruBest(m,n; k) = structures. stop. 25: else [((level > 1) and (next lexicographic sibling ~X(level) exists))] 26: Generate next lexicographic sibling ~X(level). 27: goto (2). 28: end if minimum cardinality characterisation being the vector ~X(2) = (1, 1, 1, 2). Any 3?set taken from U5 necessarily yields a probability ? ~X(1) = 7 10 of winning a 2?prize (where ~X(1) = (2, 3) is given by the root of the lottery tree for ?5, 3; 2? in Figure 6.1), implying that ??(5, 3; 2) = 1 for all 0 < ? ? 710 . Example 6.2 (continuation of Example 3.4) Reconsider the lottery ?7, 3; 2? of Example 3.4. Figure 6.2(a)?(c) contains the only three nodes on level two of the lottery tree. Figure 6.2(d) [(e), (f)] contains all possible 3?set overlappings ~X(3) when an additional (winning) 3?set, T3, is added to the construction ~X(2) = (3, 1, 1, 2) [ ~X(2) = (2, 2, 2, 1), ~X(2) = (1, 3, 3, 0)] on level two of the lottery tree. Each of these constructions is accompanied by its respective (i) multiplicity (using (3.4)) and (ii) domination test results in order to determine the probabilities ? ~X(2) . From these results it is possible to deduce that L?(7, 3; 2) = 2 if 1335 < ? ? 2635 and that ??(7, 3; 2) = ?? ? 3 if 1335 < ? ? 1935 (vectors ~X(2) = (3, 1, 1, 2), ~X(2) = (2, 2, 2, 1) and ~X(2) = (1, 3, 3, 0)) 2 if 1935 < ? ? 2235 (vectors ~X(2) = (2, 2, 2, 1) and ~X(2) = (1, 3, 3, 0)) 1 if 2235 < ? ? 2635 (vector ~X(2) = (1, 3, 3, 0)). Moreover, it is clear that ?2(7, 3; 2) = 2635 , yielded by the vector ~X(2) = (1, 3, 3, 0) (recall this result from Example 3.1). With the root of the lottery tree ( ~X(1) = (4, 3)) acting as the only possible 3?set from U7, ??(7, 3; 2) = 1 for all 0 < ? ? 1335 . The previous example focussed on the determination of ??(7, 3; 2) when L?(7, 3; 2) = 2 for ?7, 3; 2?. 90 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ?;? ? ??? ??? M( ~X(3)) = 630 ??@ ??A??B M( ~X(3)) = 2 520 C?D C?EC?F M( ~X(3)) = 1 260 G?H G?IG?J M( ~X(3)) = 630 K?L K?MK?N M( ~X(3)) = 1 260 O?P O?QO?R M( ~X(3)) = 2 520 S?T S?US?V M( ~X(3)) = 1 260 W?X W?YW?Z M( ~X(3)) = 2 520 [?\ [?][*^ M( ~X(3)) = 5 040 _?` _?a_?b M( ~X(3)) = 1 260 c?d c?ec*f M( ~X(3)) = 630 g?h g?ig*j M( ~X(3)) = 1 260 k?l k?mk*n M( ~X(3)) = 1 260 (e) All 13 nodes used in the domination test for the lexicographic second node, ~X(2) = (2, 2, 2, 1), on level 3 of the lottery tree for ?7, 3; 2?, yielding a probability (according to (6.1)) of ? ~X(2) = 13 860 22 050 = 22 35 of winning a 2?prize o?p o?qo?r M( ~X(3)) = 140 s?t s?us?v M( ~X(3)) = 1 260 w?x w?yw?z M( ~X(3)) = 1 260 {?| {?}{?~ M( ~X(3)) = 140 ??? ?????? M( ~X(3)) = 420 ??? ????*? M( ~X(3)) = 1 260 ??? ?????? M( ~X(3)) = 420 (f) All 7 nodes used in the domination test for the lexicographic third (last) node, ~X(2) = (1, 3, 3, 0), on level 3 of the lottery tree for ?7, 3; 2?, yielding a probability (according to (6.1)) of ? ~X(2) = 3 640 4 900 = 26 35 of winning a 2?prize Figure 6.2: Fragmented lottery tree for ?7, 3; 2? up to level three (Example 6.2). Subfigure (a) [(b), (c)] contains the lexicographic first [second, third (last)] node on level two of the tree. The relevant nodes used in the domination test (in level three of the tree) are given in subfigure (d) [(e), (f)], together with their respective domination test results (bold [regular] emboxed structures denote that ~X(3) ? DT [ ~X(3) ? DF]) and muliplicities. 92 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ` ~X(`) ? ~X(`) ?? ~X(`) (7, 3; 2) L? ~X(`) (7, 3; 2) 1 (4, 3) 1335 1 1 (3, 1, 1, 2) 1935 3 2 (2, 2, 2, 1) 2235 2 2 (1, 3, 3, 0) 2635 1 (0, 2, 2, 0, 2, 0, 0, 1) 2735 5 (1, 1, 0, 2, 2, 0, 1, 0) 2835 4 3 (1, 1, 1, 1, 1, 1, 1, 0) 2835 3 (0, 2, 1, 1, 2, 0, 1, 0) 3135 2 (0, 1, 1, 2, 3, 0, 0, 0) 3235 1 (0, 0, 0, 1, 1, 1, 1, 0, 2, 0, 0, 1, 0, 0, 0, 0) 3335 7 (0, 0, 0, 2, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0) 3335 (0, 1, 0, 1, 0, 0, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0) 3335 4 (0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0) 3435 4 4 (0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0) 3435 (0, 0, 0, 2, 0, 1, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0) 3535 2 (0, 0, 0, 1, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0) 3535 Table 6.1: All structurally different ??(7, 3; 2) L?(7, 3; 2)?sets (0 < ? ? 1) for ?7, 3; 2?, as given in (6.2). Vertical lines between columns 3 and 4 (read top to bottom for every value of `) depict the span of structures ~X(`) that result in the value for ?? ~X(`) (7, 3; 2). Boldfaced entries indicate previously undetermined results. As an extension to this exploration, the following example wraps up the discussion by determining all ??(7, 3; 2) L?(7, 3; 2)?sets where 0 < ? ? 1, using the enumeration method described in ?6.1.1. Example 6.3 (continuation of Example 6.2) Reconsider the lottery ?7, 3; 2? of Example 6.2. Using the enumeration method (Algorithm 8), the value of ??(7, 3; 2) for all 0 < ? ? 1, is given by ??(7, 3; 2) = ? ???????? ??????????? ???? ?????????? ????? 1 if 0 < ? ? 1335 } L?(7, 3; 2) = 1 3 if 1335 < ? ? 1935 2 if 1935 < ? ? 2235 1 if 2235 < ? ? 2635 ? ?? ?? L?(7, 3; 2) = 2 5 if 2635 < ? ? 2735 4 if 2735 < ? ? 2835 2 if 2835 < ? ? 3135 1 if 3135 < ? ? 3235 ? ???? ? ?? L?(7, 3; 2) = 3 7 if 3235 < ? ? 3335 4 if 3335 < ? ? 3435 2 if 3435 < ? ? 1 ? ?? ?? L?(7, 3; 2) = 4. (6.2) The corresponding ??(7, 3; 2) non?isomorphic structures for ?7, 3; 2? are given in Table 6.1. One problem that may occur with the implementation of Algorithm 8 is in the calculation of ? ~X(`) in (6.1) for a vector ~X(`). It is well?documented that problems may arise when dealing with large numbers and fractions in a programming language [62]. Large numbers may not always be managable, while fractions may cause a loss of precision3. To counter this computational drawback, a different approach to the formula in (6.1) was used to calculate ? ~X(`) . This probability was computed in Algorithm 8 by rather 3When considering large numbers, the maximum size of a positive integer that may be used in C++ (for example) is 6.1. Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures 93 Potential Domination Contribution L?(5, 3; 2)?set structure Domination test candidate result of ~X(3) to ? ~X(2) ?????? ? ??? ??????????????????????? ~X(3) = (0, 1, 1, 0, 1, 0, 0, 2) ~X(3) = (0, 0, 1, 1, 1, 1, 0, 1) ~X(3) = (0, 1, 0, 1, 1, 0, 1, 1) ~X(3) = (0, 0, 0, 2, 1, 1, 1, 0) ~X(3) = (1, 0, 0, 1, 0, 1, 1, 1) ~X(3) = (1, 0, 1, 0, 0, 1, 0, 2) ~X(3) = (1, 1, 0, 0, 0, 0, 1, 2) True True True False True True True `(1,1,1,2) (0,1,1,0) ?/`53? = `11?`11?/10 = 110`(1,1,1,2) (0,0,1,1) ?/`53? = `11?`21?/10 = 210`(1,1,1,2) (0,1,0,1) ?/`53? = `11?`21?/10 = 210 ?`(1,1,1,2) (1,0,0,1) ?/`53? = `11?`21?/10 = 210`(1,1,1,2) (1,0,1,0) ?/`53? = `11?`11?/10 = 110`(1,1,1,2) (1,1,0,0) ?/`53? = `11?`11?/10 = 110 ?????? ? ??? ??????????????????????? ~X(3) = (0, 0, 1, 1, 0, 2, 1, 0) ~X(3) = (0, 1, 0, 1, 0, 1, 2, 0) ~X(3) = (0, 1, 1, 0, 0, 1, 1, 1) ~X(3) = (0, 0, 2, 0, 0, 2, 0, 1) ~X(3) = (0, 2, 0, 0, 0, 0, 2, 1) True True True True True `(0,2,2,1) (0,0,1,1) ?/`53? = `21?`11?/10 = 210`(0,2,2,1) (0,1,0,1) ?/`53? = `21?`11?/10 = 210`(0,2,2,1) (0,1,1,0) ?/`53? = `22?`22?/10 = 410`(0,2,2,1) (0,0,2,0) ?/`53? = `22?/10 = 110`(0,2,2,1) (0,2,0,0) ?/`53? = `22?/10 = 110 Table 6.2: Alternative approach (incorporated in Algorithm 8) toward determining the winning proba- blities of ~X(2) for ?5, 3; 2? in Example 6.4. All contributions (column 4) for a specific ~X(2) are summed, according to (6.3), in order to obtain ? ~X(2) . fixing the (`+1)?st n?set, T`+1, and counting the different possible ways of choosing the overlappings in {T1, T2, . . . , T`} when the elements of T`+1 are removed. The summed contribution of each node yields ? ~X(`) = ? ~X(`+1)?DT ??2`?1? i=0 ( x (`) i x (`+1) i )??/ (m n ) , (6.3) where ` = L?(m,n; k). The following example is presented in an attempt to illustrate the above alter- native approach to the computation of ? ~X(`) , according to (6.3). Example 6.4 (continuation of Example 6.1) Reconsider the lottery ?5, 3; 2? of Example 6.1. The (only) two vectors ~X(2) = (1, 1, 1, 2) and ~X(2) = (0, 2, 2, 1) respectively yield probabilities ? ~X(2) = 9 10 and ? ~X(2) = 1 of winning a 2?prize. These probabilities may be determined by considering the values in Table 6.2. All contributions (column 4) for a specific ~X(2) are summed, according to (6.3), in order to obtain ? ~X(2) . So, for ~X(2) = (1, 1, 1, 2), ? ~X(2) = 1+2+2+2+1+110 = 910 , while ? ~X(2) = 2+2+4+1+110 = 1 for ~X(2) = (0, 2, 2, 1). The lottery tree has an extremely large width?wise growth rate. By introducing a suitable (lexicographic) order in which new vectors on level i are inserted, duplicate structures in every lottery subtree (with roots on level i ? 1) may be eliminated, causing a reduction in the width?wise growth rate of and hence the time required for construction of the lottery tree. This procedure is referred to as pruning of the lottery tree. Alternative pruning rules are also possible with the incorporation of a (lexicographic) permutation testing method in which similar n?set overlapping structures may be avoided (yielding similar overlapping structures) down different branches of the lottery tree (refer back to the discussion of the non?unique vector ~X(4) in Example 3.2). The following example illustrates why pruning of a lottery tree is desirable. Example 6.5 (continuation of Example 3.2) Reconsider the lottery ?14, 6; 3? in Example 3.2. Fig- ure 6.3 represents the complete first and second levels of the corresponding lottery tree, together with 4 294 976 295 < 13! (using the standard data type unsigned long int). These limits may vary for different programming languages, although relatively small factorial computations commonly supercede the capacity of the standard data type available. Similarly, when dealing with fractions, rounding errors and hence a loss of precision may easily occur (for example, 103 = 3. ?3, although a computer will only allocate a fixed amount of memory to store such a value and hence only an approximation to 103 ). 94 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ?????? ?????? ?????? ?????? ?????? ??? ?????? ?????? ??? ??? ?????? ??? ?????? ? ??? ??????????????????????? ? ? ? ??? ??????????????????? ? ? ? ??? ??????????????????? ? ? ? ??? ??????????????????? ? ? ? ??? ??????????????????? ? ? ? ??? ??????????????????? ? ? ? ??? ??????????? ? ? ? ??? ??????????????????????????????????? ? ? ? ??? ??????????????????????????????????? ? ? ? ??? ??????????????????????????????????? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? ?????????????????????? Figure 6.3: Partial lottery tree for the lottery ?14, 6; 3? displaying the generation of the vectors ~X(i) as well as possible equivalent permutation structures that occur during the lottery tree generation. Only one of these duplicate structures need be considered from level four downwards in the lottery tree. the respective vectors ~X(i) (i = 1, 2). Each of the three vectors ~X(3) on level three of the lottery tree represents equivalent overlapping structures, although they result from different branches down the lottery tree. Only one of these duplicate structures has to be considered from level four downwards in the lottery tree. Pruning (width?wise growth rate reduction) is restricted to levels three to L?(m,n; k) of the lottery tree (and therefore all reductions are excluded on level L?(m,n; k) + 1, where the domination test is per- formed). Reviewing Example 6.1, it is observed that the vector pair ~X(3) = (0, 0, 1, 1, 1, 1, 0, 1) and ~X(3) = (0, 1, 0, 1, 1, 0, 1, 1) from the leftmost branch (or similarly the vector pair ~X(3) = (0, 0, 1, 1, 0, 2, 1, 0) and ~X(3) = (0, 1, 0, 1, 0, 1, 2, 0) from the rightmost branch) are duplicates. Although the vector pairs ~X(3) = (0, 0, 0, 2, 1, 1, 1, 0) (yielding a False domination test) and ~X(3) = (0, 0, 1, 1, 0, 2, 1, 0) (yielding a True domination test) are also duplicates (resulting from different branches in the lottery tree), both must be included in the domination test, because duplicate ~X(L?(m,n;k)+1)?structures may belong to either DT or DF, depending on the specific subtree from which it originates. It is therefore concluded that the enforcement of pruning rules on level L?(m,n; k) + 1 of the lottery tree should be prohibited. The following two additional rules for specifically determining L1(m,n; k)?sets for ?m,n; k? (obtained by recursive application of the specific case at level ` = L1(m,n; k)) may be implemented at any level 1 ? ` ? L1(m,n; k) to prune the lottery tree, thereby speeding up the domination test process: (1) If there are more than n elements from Um not contained in any n?set of the overlapping structure ~X(`), any winning n?set containing n of the unused elements will cause ~X(`) (by definition) to not represent an L1(m,n; k)?set for ?m,n; k?. In other words, if x(`)(000???0)2 ? (L1(m,n; k) ? ` + 1)n, 6.1. Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures 95 then the structure corresponding to the vector ~X(`) will not yield any L1(m,n; k)?sets down the subtree having ~X(`) as root and hence may be omitted from the lottery tree. (2) If the number of elements that are in at most one n?set of the structure corresponding to ~X(`) are added and found to be at least n, there exists an n?set having no k?intersection with any of the n?sets in the structure ~X(`) and hence the structure does not represent an L1(m,n; k)?set for ?m,n; k?. In other words, if min{x(`)(100???0)2 , k ? 1} + ? ? ? + min{x(`)(000???1)2 , k ? 1} + x(`)(000???0)2 ? (L1(m,n; k) ? ` + 1)n, then the structure corresponding to the vector ~X(`) will not yield any L1(m,n; k)?sets down the subtree having ~X(`) as root and hence may be omitted from the lottery tree. The following example is presented to illustrate (i) the benefit of enforcing the pruning rules outlined above, and (ii) the amount of CPU time invested in the determination of the L1(15, 6; 3)?set [L1(16, 6; 3)? set, L1(17, 6; 3)?set] structure characterisations for ?15, 6; 3? [?16, 6; 3?, ?17, 6; 3? (the largest case that could be investigated in this dissertation)]. Example 6.6 Consider the lottery ?15, 6; 3? [?16, 6; 3?, ?17, 6; 3?] with known complete lottery number L1(15, 6; 3) = 4 [L1(16, 6; 3) = 5, L1(17, 6; 3) = 6]. The characterisation algorithm (Algorithm 8) was used to determine all the possible structurally different L1(15, 6; 3)?set [L1(16, 6; 3)?set, L1(17, 6; 3)?set] structures for ?15, 6; 3? [?16, 6; 3?, ?17, 6; 3?]. These structures are shown graphically in Figure 6.4(a)(i)? (iv) [(v)?(xi), (xii)?(xiv)]. It is concluded that ?1(15, 6; 3) = 4 [?1(16, 6; 3) = 7, ?1(17, 6; 3) = 3]. Al- gorithmic statistics involved with the characterisation of the four L1(15, 6; 3)?set [seven L1(16, 6; 3)?set, three L1(17, 6; 3)?set] structures are shown in Figures 6.4(b) and (c). 6.1.2 nauty tree method The computational complexity of the lottery tree characterisation procedure (described in ?6.1.1) quickly becomes prohibitive, even for small playing set cardinalities. At every level (from level `, say) in the lottery tree, an additional 2` elements are added to the ~X?vector representation (of the playing set L). This exponential increase in the number of elements to search through in order to determine all possible overlappings of an additional n?set added to L, incurs an exponential amount of additional computation time at each new level of the lottery tree. One resolution to this computational increase may be to investigate the following alternative enumeration method. Consider a bipartite graph ?L (referred to as a nauty graph) on (m + |L|) vertices that is partitioned into two sets: the first partition contains (as labelled vertices) the elements of Um = {1, . . . ,m}, while the second partition contains the elements of the playing set L = {T1, . . . , T|L|}. There exists an edge between i ? Um and Tj ? L if i ? Tj for all j ? {1, . . . , |L|}. Given any two playing sets L and L? (or equivalently ?L and ?L?), a computer program called nauty [160] is able to distinguish between two structurally similar playing sets. nauty uses a search tree technique (as described in [158]) to determine the automorphism group of any given graph and also assists in the process of graph isomorphism testing by being able to produce canonically labelled isomorphisms of a graph4. To clarify the above mentioned setup and approach using nauty, the following example is presented. Example 6.7 (continuation of Example 6.3) Reconsider the lottery ?7, 3; 2? of Example 6.3, to- gether with three L1(7, 3; 2)?sets L = {{1, 2, 3}, {1, 5, 7}, {2, 5, 7}, {3, 4, 6}}, L? = {{1, 3, 5}, {1, 6, 7}, {2, 3, 4}, {2, 4, 5}} and L?? = {{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {5, 6, 7}}. The associated nauty graph repre- sentations (?L, ?L? and ?L??) of these L1(7, 3; 2)?sets are given in Figure 6.7(a)?(c). The canonically relabelled graphs for ?L and ?L? were found to be the same (hence ?L ' ?L? , where the set of isomor- phism pairs {(v, ?(v)) : v ? V (?L) , ?(v) ? V (?L?)} is given by {(1, 3), (2, 5), (3, 1), (4, 7), (5, 4), (6, 6), (7, 1), (T1, T ?1), (T2, T ?3), (T3, T ?4), (T4, T ?2)}), although different from that determined for ?L?? . Hence, it is 4Informally, the canonical labelling of a graph G is a unique vertex labelling of G that is invariant with respect to isomorphism (i.e., ordering of vertices and edges of G). As a result, two graphs exhibit the same canonical labelling if and only if they are isomorphic. See the nauty User?s Guide [160] for a proof of this result. 96 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ??? ??? ??? ??? (i) ??? ??? ??? ??? (ii) ??? ??? ??? ??? (iii) ??? ??? ??? ??? (iv) ??? ??? ??? ??? ??? (v) ??? ??? ??? ??? ??? (vi) ??? ??? ??? ??? ??? (vii) ??? ??? ??? ??? ??? (viii) ??? ??? ??? ??? ??? (ix) ??? ??? ??? ??ff ??fi (x) fl?ffi fl?? fl? fl?! fl?" (xi) #?$ #?% #'& #?( #?) #?* (xii) +?, +?- +'. +?/ +?0 +?1 (xiii) 2?3 2?4 2'5 2?6 2?7 2?8 (xiv) (a) (i)?(iv)The only four L1(15, 6; 3)?set overlapping structures for ?15, 6; 3?, corresponding to the result ?1(15, 6; 3)=4; (v)?(xi)The only seven L1(16, 6; 3)?set overlapping structures for ?16, 6; 3?, corresponding to the result ?1(16, 6; 3) = 7; (xii)?(xiv)The only three L1(17, 6; 3)?set overlapping structures for ?17, 6; 3?, corresponding to the result ?1(17, 6; 3)=3 Branch in Execution time (dd:hh:mm:ss) lottery tree ?15, 6; 3? ?16, 6; 3? ?17, 6; 3? 1 00:00:00:01 00:00:01:16 09:23:49:21 2 00:00:00:01 00:00:04:12 37:18:24:19 3 00:00:00:00 00:00:01:44 12:15:37:44 4 00:00:00:00 00:00:00:02 00:00:51:49 5 00:00:00:00 00:00:00:00 00:00:00:01 6 00:00:00:00 00:00:00:00 00:00:00:01 00:00:00:02 00:00:07:14 60:10:43:15 (b) Execution time for branch generation and traversal of the lottery tree for ?15, 6; 3?, ?16, 6; 3? and ?17, 6; 3?, when pruning rules are enforced Number of nodes ?15, 6; 3? ?16, 6; 3? ?17, 6; 3? Level in Pruning rules Pruning rules Pruning rules Pruning rules Pruning rules Pruning rules lottery tree enforced restrained enforced restrained enforced restrained 1 1 1 1 1 1 1 2 6 6 6 6 6 6 3 68 238 71 245 72 248 4 2 384 12 949 2 643 14 343 2 795 15 152 5 ? ? 319 813 1 965 928 368 800 2 269 307 6 ? ? ? ? 129 820 402 831 947 054 (c) The number of nodes on each level of the lottery tree for ?15, 6; 3?, ?16, 6; 3? and ?17, 6; 3?, when pruning rules are either enforced (columns 2, 4 and 6) or relaxed (columns 3, 5 and 7) Figure 6.4: Algorithmic statistics involved with the characterisation of the four L1(15, 6; 3)?set, seven L1(16, 6; 3)?set and three L1(17, 6; 3)?set structures for the lotteries ?15, 6; 3?, ?16, 6; 3? and ?17, 6; 3?, respectively (the largest case that could be investigated in this dissertation being ?17, 6; 3?) using the characterisation algorithm (Algorithm 8). Execution of the algorithm was performed on an AMD Thun- derbird 1.4 GHz processor with 512 MB memory. 6.1. Characterisation of {L?(m,n; k),?`(m,n; k)}?set structures 97 9 :?;=@ M ; N A OQP RTSURTV?WYX[Z?\^]`_ G IHE F : M = < -?=).?=,0?> < -?=)/?=*1?> ??@?AffB?C?D?E F G?H I J?K L?M N ??O)@?O*A?P N ??O)@?O,B?P N ??O)C?O*D?P ?L(3) = 2335 ?L(3) = 2235 ?L(3) = 2435 ?L(3) = 2635 Q?R?SffT?U?V?W X Y?Z [ \?] ^?_ ` Q?a)R?a*S?b ` Q?a)R?a,T?b ` S?a*Tca*U?b dfehg?ihjhkffl m n?o p q?r s?t u d?v)e?v*g?w u d?v)e?v,i?w u g?v)j?v*k?w xfyhz?{h|h}ff~ ? ??? ? ??? ??? ? x??)y??*z?? ? x??)y??,{?? ? |??)}??)~?? ?L(3) = 2635 ?L(3) = 2835 ?L(3) = 3235 (d) All 7 non?isomorphic nauty graphs ?(2)L(3) , obtained from the nauty subtree with root ? (2) L(2) , where L (2) = {{1, 2, 3}, {1, 2, 4}} (Phase 2) ?f?h???h?h?ff? ? ??? ? ??? ??? ? ???)???*??? ? ???*???*??? ? ???)???)??? ?f?h???h?h?ff? ? ??? ? ??? ??? ? ???)???*??? ? ???*???*??? ? ???*???*??? ?f?h???h?h?ff? ? ??? ? ??? ??? ? ???)???*??? ? ???*???*??? ? ???)???)??? ?L(3) = 2735 ?L(3) = 2835 ?L(3) = 3135 (e) All 3 non?isomorphic nauty graphs ?(2)L(3) , obtained from the nauty subtree with root ?(2)L(2) , where L (2) = {{1, 2, 3}, {1, 4, 5}} (Phase 2) Figure 6.6: Fragmented nauty tree for ?7, 3; 2? up to level three with root ?(1)L(1) , where L(1) = {{1, 2, 3}} (Example 6.8). Subfigure (a) [(b), (c)] contains the first [second, third (last)] non?isomorphic node ?(2)L(2) on level two of the nauty tree. All possible non?isomorphic nauty graphs ?(2)L(3) on level three of the nauty tree (obtained from the subtree with root shown in subfigure (a)?(b)) is shown in subfigure (d)? (e). No additional non?isomorphic nauty graphs were obtained from the subtree with root in subfigure (c). Bold emboxed nodes show that ?L(3) > ?2(7, 3; 2) = 2635 and were used to verify that L?(7, 3; 2) = 3(2635 < ? ? 3235 ), ?3(7, 3; 2) = 3235 and the values of ??(7, 3; 2) ( 2635 < ? ? 3235 ) in (6.2). 100 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS up to structure isomorphism. The second n?set in L may be chosen in at most n structurally different ways (by either having max{2n?m, 0},max{2n?m, 0}+1, . . . , n?2 or n?1 elements in common with the first n?set). All L?(m,n; k) ? 2 remaining n?sets in L may be chosen in at most (mn)structurally different ways, yielding the desired result. The following result is stated (without proof) as a direct consequence of Theorem 3.3(e) and of the implicit relationship between ?m,n; k?, G?m,n; k? and ??(m,n; k). Corollary 6.1 ??(m,n; k) = ??(m,m ? n;m + k ? 2n) for all 1 ? k ? n < m such that m + k > 2n and 0 < ? ? 1. In order to establish growth properties for the parameter ??(m,n; k) with respect to its arguments, we require the notion of a so?called jump sequence for each of the arguments. Informally, a jump sequence for one of the parameters m, n, k or ? is an increasing sequence of values for this parameter at which the value of the incomplete lottery number L?(m,n; k) changes as this parameter increases, if the other three parameters remain constant. More formally, define an m?jump sequence as the increasing sequence n = m (n,k,?) 1 ,m (n,k,?) 2 ,m (n,k,?) 3 , . . . of those integers m (n,k,?) i+1 satisfying L?(m(n,k,?)i+1 , n; k) > L?(m(n,k,?)i , n; k), but for which L?(m(n,k,?)i+1 ? 1, n; k) = L?(m(n,k,?)i , n; k) in cases where m(n,k,?)i and m (n,k,?) i+1 are non?adjacent integers. The notions of an n?jump sequence, a k?jump sequence and a ??jump sequence may be defined similarly. However, the ??jump sequence is of course an increasing sequence of real numbers bounded from below by zero and from above by 1, rather than a sequence of integers. It will be shown that, whilst the m?jump sequence is infinite, the n?jump sequence, the k?jump sequence and the ??jump sequence are all finite, since 1 ? k ? n ? m and 0 < ? ? 1, where m is fixed. Interesting saw?tooth growth patterns for the parameter ??(m,n; k) with respect to each of its four arguments will also be established, where the respective jump sequences separate saw?teeth, as illustrated in Figure 6.7 for the lottery ?15, 6; 3?, where ? varies over the range (0, 1]. Graphs of similar saw?teeth growth patterns, but where saw?teeth are separated by values of the m?jump sequence instead of values of the ??jump sequence, are presented in Figure 6.8. Note that, for n = k = 1, the m?jump sequence is simply the sequence of all positive multiples of d 1? e since L?(m, 1; 1) = d?me (see Theorem 2.3(b)). On the other hand, for n = k and ? = 1, the m?jump sequence is the sequence of all integers exceeding n? 1, since L1(m,n;n) = (mn)(see Theorem2.3(b)). These two cases represent two extreme growth patterns of the characterisation sequence in {??(m,n; k)}?m=n with respect to increasing m: In the former case, the saw?teeth all have maximum width (namely d 1? e), the saw?teeth are as blunt as possible (as will be shown), the m?jump sequence never reaches maximum density and the growth in saw?tooth height is positive and constant. In the latter case, the saw?teeth all have minimum width (namely 1, in other words the maximum density is achieved by the m?jump sequence right from the start), the saw?teeth have become so sharp (infinitely sharp) that the individual teeth themselves have become indistinguishable, and the growth in saw?tooth height is positive and binomial. Before determining exact values of ??(m,n; k), we first explore some properties of the jump sequences. In particular, the question of the boundedness of the jump sequences (the number of saw?teeth) is explored for all parameters m, n, k and ?, whereafter a derivation of asymptotic lower bounds on L?(m,n; k) follows for k = 1, 2. Finally, an investigation into the density of the jump sequences (the widths of the saw?teeth) as well as the relevant characterisation parameter growth properties (the shapes of the saw?teeth) is launched. We first establish the following boundedness properties of the jump sequences. Theorem 6.2 (Properties of the jump sequences) (a) The m?jump sequence is infinite, for all 1 ? k ? n and 0 < ? ? 1. 6.2. General properties of the parameter ??(m,n; k) 101 ? ? ? ? ??? ? ? ? ? ? ? ??? ? ? ??? ??? ????? ????? ? ? ? ????? ??? ? ??? ? ??? ? ??? ? ??? ? ??? ? ? ???????????c???c??????? ?c? ???????????c???c???????c?c? ? ?c? ? ? ? ???????c???c??????????? ? ?c? ? ? ? ???????c???c??????? Figure 6.7: The resource utilisation characterisation number ??(15, 6; 3), as a function of 0.4 ? ? ? 1, in increments of 1/(155)= 1/5 005 (??(15, 6; 3) = 1 for all 0 < ? < 0.4). (b) The n?jump sequence is finite, for all 1 ? k ? m and 0 < ? ? 1. (c) The k?jump sequence is finite, for all 1 ? n ? m and 0 < ? ? 1. (d) The ??jump sequence is finite, for all 1 ? k ? n ? m. Proof (a) By contradiction. First, suppose the m?jump sequence is finite for some values of 1 ? k ? n and ? = 1. Then L1(m,n; k) must be bounded from above as m ? ?. According to Corollary 2.2(d) and Theorem 2.2(c), we have that L1(m,n; k) ? L1(m,n; 1) ? bmn c, which grows without bound (as a function of m, for fixed 1 ? k ? n). This contradicts the assumption of boundedness of L1(m,n; k) as m??, hence the result follows. Now suppose the m?jump sequence is finite for some values of 1 ? k ? n and 0 < ? < 1. Then L?(m,n; k) must be bounded from above as m??. Recalling Theorem 2.3(g), the incomplete lottery number L?(m,n; 1) = ` is the smallest integer satisfying( m? ` n n ) ? ( m n )( 1? ?). Now, ` is bounded below by any ?` ? ? satisfying (m? ?` n? n+ 1)n n! ? ( m n )( 1? ?). (6.4) The value ?`? = m n ???? linear term ? logn ( n! ( m n )( 1? ?)) n ? ?? ? asymptotically sub?linear term + ( 1 n ? 1 ) ? ?? ? constant term (6.5) yields equality in (6.4) and hence ?`? ? ?` ? `. However, lim m?? logn ( n! ( m n )( 1? ?))/n m/n = limm?? ( ??(m+ 1) m! ? ??(m? n+ 1) (m? n)! ) = 0 (6.6) 102 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS PSfrag replacements ? 1 (m , 6; 1) L 1 (m , 6; 1) m ?1(m, 6; 1) L1(m, 6; 1) 150 125 100 75 50 25 0 10 15 20 25 30 35 6 5 4 3 2 1 0 (a) ?1(m, 6; 1) and L1(m, 6; 1) (6 ? m ? 35) PSfrag replacements ? 1 (m , 6; 2) L 1 (m , 6; 2) m ?1(m, 6; 2) L1(m, 6; 2) 40 35 30 25 20 15 10 5 0 10 15 20 25 30 35 6 5 4 3 2 1 0 (b) ?1(m, 6; 2) and L1(m, 6; 2) (6 ? m ? 30) Figure 6.8: The number of different L1(m, 6; k)?set structures ?1(m, 6; k) for ?m, 6; k? where (a) 6 ? m ? 35 and k = 1, (b) 6 ? m ? 30 and k = 2. In (a) the m?jump sequence m(6,1,1)i is given by 12, 18, 24, 30, 36. In (b) the m?jump sequence m(6,2,1)i is given by 11, 16, 21, 26, 31. by virtue of l?Hospital?s rule, where ?(z) = ??0 tz?1e?t dt is the well?known gamma function. Therefore the lower bound ?`? in the inequality chain ?`? ? ?` ? ` = L?(m,n; 1) ? L?(m,n; k) grows without bound (as a function of m, for fixed 1 ? k ? n and fixed 0 < ? < 1), contradicting the assumption of boundedness of L?(m,n; k) as m??. (b)?(c) Since 1 ? k ? n ? m, m is fixed and 0 < ? ? 1 for any n?jump sequence or any k?jump sequence, these (strictly increasing) sequences of integers must be finite. (d) The ??jump sequence is given by {?`(m,n; k)}L?(m,n;k)`=1 for all 1 ? k ? n ? m. This sequence is finite by virtue of the boundedness of L?(m,n; k) in Theorem 2.2. Before the densities of the jump sequences are investigated, the following intermediate result is estab- lished, for which some additional notation is required. Suppose F(m) and G(m) are functions of m. Then F(m) is said to grow asymptotically at least as fast as G(m) as m ? ?, denoted F(m) = ?(G(m)), if there exist constants c > 0 and m0 ? ? such that 0 ? cG(m) ? F(m) for all m ? m0. Proposition 6.1 (Asymptotic lower bounds on the [in]complete lottery number) (a) L?(m,n; 1) = ?(m) for any fixed n ? 1 and fixed 0 < ? ? 1. (b) L1(m,n; 2) = ?(m2) for any fixed n ? 2. Proof (a) First, consider the (special) case of the complete lottery problem where ? = 1. In this case it is known that L1(m,n; 1) = bmn c = ?(m) (see Corollary 2.2(e)). Now, consider the (general) case of the incomplete lottery problem where 0 < ? < 1. From (6.6) it follows that for any 0 <  ? 1, there exists a ? > 0, such that logn ( n! ( m n )( 1? ?)) ? m, for all m ? ?. Therefore, m? logn ( n! ( m n )( 1? ?)) ? (1? )m ? 0 for all m ? ?. Consequently, from (6.5), we have that n ?`? + n ? 1 = ?(m), or equivalently that L?(m,n; 1) = ?`? = ?(m) for any fixed n and fixed 0 < ? < 1. 6.2. General properties of the parameter ??(m,n; k) 103 (b) In 1964 Hanani, et al. [99] proved that L1(m,n; 2) ? m(m? n+ 1) n(n? 1)2 for all m ? n, and additionally showed that this bound is asymptotically best possible, in the sense that lim m?? L1(m,n; 2) n(n? 1) 2 m(m? n+ 1) = 1. Hence L1(m,n; 2) = ?(m2). The following two results are direct consequences of Proposition 6.1 and show that the saw?teeth observed in the growth pattern of ??(m,n; k) do not grow wider as m??. Corollary 6.2 (Density of the m?jump sequence for the [in]complete lottery problem) (a) The density of the m?jump sequence is asymptotically non?decreasing for all 1 ? n and 0 < ? ? 1 in the lottery ?m,n; 1?, in the sense that there exists an i(n,k,?) ? ? such that m(n,k?)i+1 ? m(n,k,?)i ? m (n,k,?) i ?m (n,k,?) i?1 for all i ? i(n,k,?).(b) The density of the m?jump sequence is asymptotically increasing for all 2 ? k ? n in the lottery ?m,n; k?, in the sense that there exists an i(n,k,1) ? ? such that m(n,k,1)i+1 = m(n,k,1)i +1 for all i ? i(n,k,1). After this point i(n,k,1) the m?jump sequence is said to have reached maximum density. Proof (a) From Proposition 6.1(a) it follows that L?(m,n; 1) = ?(m) for all n ? 1 and 0 < ? ? 1 in the lottery ?m,n; 1?. Hence, the result follows. (b) For all 2 ? k ? n ? m it follows from Proposition 6.1(b) that L1(m,n; k) ? L1(m,n; 2) = ?(m2). Hence the result follows. We are now in a position to consider the growth properties of the characterisation parameter ??(m,n; k) for ?m,n; k?, i.e., the shapes of the saw?teeth in the growth pattern of ??(m,n; k). Theorem 6.3 (Growth properties of ??(m,n; k)) (a) ??(m,n; k) ? ??(m,n; k?) for all k(m,n,?)i ? k ? k? < k(m,n,?)i+1 and all 0 < ? ? 1, where 1 ? k ? k? ? n ? m, whenever k(m,n,?)i and k (m,n,?) i+1 are non?adjacent integers.(b) ??(m,n; k)????(m,n; k) for all ?i(m,n; k) ? ? ? ?? 3n. We have max{m? 3n, 0} ? x(3)(000)2 ? n? 3k+ 2 if m ? 2n. Therefore, the first equality in (6.8) follows. For the case m < 2n, the complementary complete lottery problem ?m?, n?; k?? ? ?m,m? n;m+ k? 2n? (by virtue of the isomorphism result in Theorem 3.3(e)) may be used to obtain the second equality in (6.8), similar to the argument of Theorem 3.4(c). Note that the interesting relationship m?n? i=0 ?`(m? i, n) = n? i=0 ?`(m? i,m? n) if ` > 1 follows from the isomorphism result of Theorem 3.3(e) and Corollary 6.1. Another interesting result is that the characterisations of L?(m,m ? n;m + k ? 2n)?sets are given by the mirror images of the ~X?vectors characterising L?(m,n; k)?sets for ?m,n; k?, as dictated by the following theorem. Theorem 6.6 If an L?(m,n; k)?set for ?m,n; k? conforms to the overlapping structure ~X(L?) = ( x (L?) 0 , x (L?) 1 , . . . , x (L?) 2L??2 , x (L?) 2L??1 ) , for some 1 ? k ? n < m satisfying m+ k > 2n, then the set corresponding to the overlapping structure ~X(L?) = ( x (L?) 2L??1 , x (L?) 2L??2 , . . . , x (L?) 1 , x (L?) 0 ) is an L?(m,m? n;m+ k ? 2n)?set for ?m,m? n;m+ k ? 2n?. Proof Consider a two?dimensional tabular representation similar to that in Figure 3.7(a), but for an L?(m,n; k)? set, L, for ?m,n; k?, consisting of L?(m,n; k) rows denoting the n?sets in L and m columns denoting the elements of Um, in which the (i, j)?th cell contains a cross if j ? Um is an element of the i?th n?set of L. Then the complement of the tabular representation (where crosses are replaced by empty spaces and vice versa) represents the corresponding L?(m,m?n;m+k?2n)?set for ?m,m?n;m+k?2n?. For any spe- cific element of Um, a cross in its column indicates that the element is present in some n?set of L. These crosses correspond to 1?bits in the binary index of the ~X(L?)?vector capturing the overlapping n?set structure of L. Thus the corresponding element in the vector ~X(L?) for the L?(m,m?n;m+k?2n)?set may be obtained by taking the complement of each of the bits in the binary indices of that element. Therefore the ~X(L?)?vector for the L?(m,m ? n;m+ k ? 2n)?set is the ~X(L?)?vector for the set L in reverse order. In Chapter 3 a characterisation of the single ?2(m,n; k)?set (??2(m,n;k)(m,n; k) = 1) was presented for all lotteries ?m,n; k? where L1(m,n; k) ? 3. Note that all ??2(m,n;k)(m,n; k) ?2(m,n; k)?sets for?m,n; k? were also characterised when L1(m,n; k) = 2, because in this case a ?2(m,n; k)?set is also an L1(m,n; k)?set (see Theorem 3.4(b)). It is therefore only necessary to tabulate resource utilisations, ?`(m,n; k), and document their corre- sponding ?`(m,n; k)?set structures, for ` ? 3. However, due to the complexity of the characterisation procedures described in ?6.1, it is only possible to tabulate values of ?`(m,n; k) for ` ? 5 (as stated previously). The ranges of the parameters m, n and k in these tabulations generally follow the ranges of Li & Van Rees [136] in cases where the resource utilisations are non?trivial (i.e., entire rows and 6.3. Analysis of small lotteries 107 columns in which all resource utilisations are either undefined or 100%, are omitted), with the additional constraint that ` ? {3, . . . , min{5, L1(m,n; k)}}. The characterisations are given in Tables 6.4?6.6. As an example, the entry ?5(13, 3; 2) = 51.3986% in Table 6.4 may be interpreted as follows: when considering a playing set consisting of only five 3?sets in the lottery ?13, 3; 2?, then the best way of selecting these five 3?sets will only render a probability of 51.3986% of winning a 2?prize. The only ?5(13, 3; 2) = 2 ?5(13, 3; 2)?set structures by which this 51.3986% assurance may be achieved, is en- coded in Appendix C as ~X(3) = (0, 2, 2, 1, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) and ~X(3) = (0, 2, 1, 1, 2, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)6. No commas were used to separate entries of the ~X(`)?vectors; in the rare cases where entries were 10 or 11 the letters A and B were used instead. Finally, note that the result of Theorem 6.3(b) may be used to derive bounds for other characterisation numbers by means of interpolation between the results tabulated in Tables 6.4?6.6. For example, consider the values ?3(18, 4; 2) = 55.5882% and ?4(18, 4; 2) = 71.7647%, which may be found in Table 6.4. The characterisation number ??4(18, 4; 2) = 1 may be found in the same table, suggesting, for example, that ?0.6(18, 4; 2) = 1, in view of the growth result in Theorem 6.3(b), since ?3(18, 4; 2) < 0.6. 6.3 Analysis of small lotteries Algorithm 8 was used to determine all structurally different {L?(m,n; k),?`(m,n; k)}?sets for ?m,n; k? (where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and 1 ? L?(m,n; k) ? 6, 7). The results are presented in Figure 6.9, while the total number ??(m,n; k) of structurally different {L?(m,n; k),?`(m,n; k)}?sets for ?m,n; k?, are given in Table 6.8. Whenever possible, a graphic over- lapping structure respresentation, similar to that in Figure 3.7(b), was employed in Figure 6.9, although in some cases (typically when L?(m,n; k) ? 5) a (lexicographic first) tabular representation, similar to that in Figure 3.7(a), was used, for visual clarity. 6.4 New complete lottery numbers and improved bounds Due to the fact that neither the lottery tree, nor the nauty tree for ?18, 6; 3? could be constructed up to level to level 6 (being too deep/large to traverse in a realistic time?span), a different approach was required to determine L1(18, 6; 3), namely a construction method described below, from which the following result may then be deduced. Theorem 6.7 L1(18, 6; 3) = 7. Consider the following method for constructing complete lottery sets of the same cardinality for ?m ? 1, n; k? from any lottery set for ?m,n; k?: Construction method: Consider a tabular representation (such as in Figure 3.7(a)) of a complete lottery set for ?m,n; k?. Remove any column from this representation, and add an arbitrary element to the original n?sets that now only have n ? 1 elements as a result of the column deletion. The result is a tabular representation of a complete lottery set for ?m?1, n; k?. In order to prove Theorem 6.7, the following intermediate result, whose proof falls outside the scope of this dissertation (see [39]), is required. Lemma 6.1 If there exist complete lottery sets for ?18, 6; 3? of cardinality 6, all such sets must contain exactly one disjoint 6?set. 6Note that if ??(m,n; k) ? 50, then only one solution is listed in the appendices (indicated with an ?) in order to save space. In such cases the other ??(m,n; k)? 1 solutions are available from the author upon request. 108 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS n m ` 3 4 5 6 3 (91.4286, 11) ? ? ? 7 4 (100.000, 2?) ? ? ? 5 ? ? ? ? 3 (78.5714, 12) ? ? ? 8 4 (89.2857, 13) ? ? ? 5 (100.000, 1?) ? ? ? 3 (67.8571, 14) ? ? ? 9 4 (77.3810, 15) ? ? ? 5 (89.2857, 16) ? ? ? 3 (55.0000, 17) (100.000, 3?) ? ? 10 4 (66.6667, 18) ? ? ? 5 (76.6667, 19) ? ? ? 3 (45.4545, 110) (100.000, 1?) ? ? 11 4 (58.1818, 111) ? ? ? 5 (66.6667, 112) ? ? ? 3 (38.1818, 113) (100.000, 1?) ? ? 12 4 (50.9091, 114) ? ? ? 5 (58.6364, 115) ? ? ? 3 (32.5175, 116) (91.0490, 117) (100.000, 7?) ? 13 4 (43.3566, 118) (97.7622, 119) ? ? 5 (51.3986, 120) (100.000, 8?) ? ? 3 (28.0220, 121) (82.4176, 122) (100.000, 4?) ? 14 4 (37.3626, 123) (93.6064, 124) ? ? 5 (45.6044, 125) (100.000, 1?) ? ? 3 (24.3956, 126) (74.5055, 127) (100.000, 2?) ? 15 4 (32.5275, 128) (89.4505, 129) ? ? 5 (40.6593, 130) (94.1392, 131) ? ? 3 (21.4286, 132) (67.4176, 133) (100.000, 1?) (100.000, 14?) 16 4 (28.5714, 134) (85.9341, 135) ? ? 5 (35.7143, 136) (89.6154, 137) ? ? 3 (18.9706, 138) (61.1345, 139) (97.9800, 140) (100.000, 8?) 17 4 (25.2941, 141) (78.4874, 142) (100.000, 9?) ? 5 (31.6176, 143) (85.2521, 144) ? ? 3 (16.9118, 145) (55.5882, 146) (94.7479, 147) (100.000, 5?) 18 4 (22.5490, 148) (71.7647, 149) (100.000, 4?) ? 5 (28.1863, 150) (81.1765, 151) ? ? 3 (15.1703, 152) (50.6966, 153) (90.8411, 154) (100.000, 2?) 19 4 (20.2270, 155) (65.7379, 156) (100.000, 1?) ? 5 (25.2838, 157) (77.2962, 158) ? ? 3 (13.6842, 159) (46.3777, 160) (86.6099, 161) (100.000, 1?) 20 4 (18.2456, 162) (60.3509, 163) (100.000, 1?) ? 5 (22.8070, 164) (73.5810, 165) ? ? Table 6.4: Values of (100?`(m,n; 2), ??`(m,n; 2)) for all 7 ? m ? 20, 3 ? n ? 6 and ` = 3, . . . , min{5, L1(m,n; 2)}. Associated ~X(`)?vector structure encodings are given by superscript in Ap- pendix C. ?These characterisations may be found in Theorem 3.4. 6.4. New complete lottery numbers and improved bounds 109 n m ` 4 5 6 7 3 (91.4286, 11) ? ? ? 7 4 (100.000, 2?) ? ? ? 5 ? ? ? ? 3 (67.1429, 12) ? ? ? 8 4 (85.7143, 13) ? ? ? 5 (91.4286, 24) ? ? ? 3 (50.0000, 15) ? ? ? 9 4 (63.4921, 16) ? ? ? 5 (73.8095, 47) ? ? ? 3 (35.7143, 28) ? ? ? 10 4 (47.6190, 19) ? ? ? 5 (59.5238, 110) ? ? ? 3 (26.3636, 411) (91.3420, 112) ? ? 11 4 (35.1515, 313) (99.1342, 114) ? ? 5 (43.9394, 315) (100.000, 49?) ? ? 3 (20.0000, 516) (79.5455, 217) ? ? 12 4 (26.6667, 618) (90.9091, 119) ? ? 5 (33.3333, 820) (97.6010, 121) ? ? 3 (15.5245, 522) (15.7895, 123) ? ? 13 4 (20.6993, 1124) (79.9534, 125) ? ? 5 (25.8741, 1826) (91.1422, 127) ? ? 3 (12.2877, 528) (59.0410, 129) (99.5005, 130) ? 14 4 (16.3836, 1431) (70.3297, 132) (100.000, 26?) ? 5 (20.4795, 3333) (81.1688, 134) ? ? 3 (9.89011, 535) (50.0500, 136) (97.3027, 137) ? 15 4 (13.1868, 1538) (60.7393, 139) (100.000, 4?) ? 5 (16.4835, 4740) (71.4286, 141) ? ? 3 (8.07692, 542) (41.6209, 143) (93.2567, 144) ? 16 4 (10.7692, 1645) (52.1978, 246) (98.8761, 147) ? 5 (13.4615, 6048) (61.9505, 149) (100.000, 7?) ? 3 (6.68067, 550) (34.9548, 151) (87.8798, 152) (100.000, 7?) 17 4 (8.90756, 1653) (44.8610, 354) (93.5520, 155) ? 5 (11.1345, 6756) (53.6037, 257) (98.5456, 158) ? 3 (5.58824, 559) (29.6218, 160) (81.8197, 161) (100.000, 4?) 18 4 (7.45098, 1662) (38.6555, 263) (87.8744, 164) ? 5 (9.31373, 7065) (46.4286, 466) (95.8791, 167) ? 3 (4.72136, 568) (25.3096, 169) (72.6338, 170) (100.000, 3?) 19 4 (6.29515, 1671) (33.4365, 172) (81.7890, 173) ? 5 (7.86894, 7174) (40.3251, 675) (89.9491, 176) ? 3 (4.02477, 577) (21.7879, 178) (64.4737, 179) (100.000, 1?) 20 4 (5.36636, 1680) (29.0506, 181) (75.8101, 182) ? 5 (6.70795, 7283) (35.1522, 684) (83.7900, 185) ? Table 6.5: Values of (100?`(m,n; 3), ??`(m,n; 3)) for all 7 ? m ? 20, 4 ? n ? 7 and ` = 3, . . . , min{5, L1(m,n; 3)}. Associated ~X(`)?vector structure encodings are given by superscript in Ap- pendix C. ?These characterisations may be found in Theorem 3.4. 110 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS n m ` 5 6 7 8 3 (78.5714, 11) ? ? ? 8 4 (89.2857, 12) ? ? ? 5 (100.000, 1?) ? ? ? 3 (50.0000, 13) (100.000, 5?) ? ? 9 4 (63.4921, 14) ? ? ? 5 (73.8095, 45) ? ? ? 3 (30.9524, 36) (100.000, 3?) ? ? 10 4 (41.2698, 37) ? ? ? 5 (51.5873, 18) ? ? ? 3 (20.1299, 79) (91.3420, 110) ? ? 11 4 (26.8398, 1511) (99.1342, 112) ? ? 5 (33.5498, 2913) (100.000, 49?) ? ? 3 (13.6364, 1014) (73.4848, 115) ? ? 12 4 (18.1818, 4016) (90.4762, 117) ? ? 5 (22.7273, 22218) (95.0216, 219) ? ? 3 (9.55711, 1320) (58.3916, 121) ? ? 13 4 (12.7428, 7022) (73.0769, 123) ? ? 5 (15.9285, 77224) (81.5851, 225) ? ? 3 (6.89311, 1426) (45.6543, 127) ? ? 14 4 (9.19081, 10528) (57.7090, 129) ? ? 5 (11.4885, 166030) (68.6314, 131) ? ? 3 (5.09491, 1532) (35.6643, 133) (91.8415, 134) ? 15 4 (6.79321, 12935) (45.4146, 136) (98.8345, 137) ? 5 (8.49151, 266238) (55.8442, 139) (100.000, 26?) ? 3 (3.84615, 1540) (27.5724, 341) (81.2587, 142) ? 16 4 (5.12821, 14543) (35.8641, 144) (92.9196, 145) ? 5 (6.41026, 349346) (44.1683, 147) (97.6923, 148) ? 3 (2.95734, 1549) (21.6225, 450) (71.7195, 151) ? 17 4 (3.94312, 15352) (28.5391, 153) (83.0780, 154) ? 5 (4.92889, 406855) (35.1729, 156) (92.9761, 157) ? 3 (2.31092, 1558) (17.1784, 559) (62.2926, 160) (99.2321, 161) 18 4 (3.08123, 15762) (22.9045, 163) (73.3095, 164) (100.000, 22?) 5 (3.85154, 438865) (28.2428, 266) (85.1056, 167) ? 3 (1.83179, 1568) (13.8103, 569) (53.0146, 170) (96.1843, 171) 19 4 (2.44238, 15872) (18.4137, 373) (64.0053, 174) (100.000, 5?) 5 (3.05298, 455175) (22.8844, 176) (75.2620, 177) ? 3 (1.47059, 1578) (11.2229, 579) (44.9174, 180) (91.1090, 181) 20 4 (1.96078, 15982) (14.9639, 683) (55.4386, 184) (100.000, 1?) 5 (2.45098, 461985) (18.7049, 186) (65.6192, 187) ? Table 6.6: Values of (100?`(m,n; 4), ??`(m,n; 4)) for all 8 ? m ? 20, 5 ? n ? 8 and ` = 3, . . . , min{5, L1(m,n; 4)}. Associated ~X(`)?vector structure encodings are given by superscript in Ap- pendix C. ?These characterisations may be found in Theorem 3.4. 6.4. New complete lottery numbers and improved bounds 111 ??? ?????? ?????? (i) (ii) (iii) (a) (i) L?(4, 2; 1) = 1 for 0 < ? ? 56 = ?1(4, 2; 1); ? 56 (4, 2; 1) = 1(ii)?(iii) L?(4, 2; 1) = 2 for 56 < ? ? 1 = ?2(4, 2; 1); ?1(4, 2; 1) = 2 ??? ?????? (i) (ii) (b) (i) L?(5, 2; 1) = 1 for 0 < ? ? 710 = ?1(5, 2; 1); ? 710 (5, 2; 1) = 1(ii) L?(5, 2; 1) = 2 for 710 < ? ? 1 = ?2(5, 2; 1); ?1(5, 2; 1) = 1 ??? ?????? ??? ?????? ??? ?????? (i) (ii) (iii) (iv) (c) (i) L?(6, 2; 1) = 1 for 0 < ? ? 915 = ?1(6, 2; 1); ? 915 (6, 2; 1) = 1 (ii) L?(6, 2; 1) = 2 for 915 < ? ? 1415 = ?2(6, 2; 1); ? 1415 (6, 2; 1) = 1 (iii)?(iv) L?(6, 2; 1) = 3 for 1415 < ? ? 1 = ?3(6, 2; 1); ?1(6, 2; 1) = 2 ??ff fi?flfi?ffi ?? ??! "?#"?$ (i) (ii) (iii) (iv) (d) (i) L?(6, 3; 1) = 1 for 0 < ? ? 1920 = ?1(6, 3; 1); ? 1920 (6, 3; 1) = 1 (ii)?(iv) L?(6, 3; 1) = 2 for 1920 < ? ? 1 = ?2(6, 3; 1); ?1(6, 3; 1) = 3 Figure 6.9: Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 112 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS %?& '?('?) (i) (ii) (e) (i) L?(6, 3; 2) = 1 for 0 < ? ? 1020 = ?1(6, 3; 2); ? 1020 (6, 3; 2) = 1(ii) L?(6, 3; 2) = 2 for 1020 < ? ? 1 = ?2(6, 3; 2); ?1(6, 3; 2) = 1 *?+ ,?-,?. /?0 /?1/?2 (i) (ii) (iii) (f) (i) L?(7, 2; 1) = 1 for 0 < ? ? 1121 = ?1(7, 2; 1); ? 1121 (7, 2; 1) = 1 (ii) L?(7, 2; 1) = 2 for 1121 < ? ? 1821 = ?2(7, 2; 1); ? 1821 (7, 2; 1) = 1 (iii) L?(7, 2; 1) = 3 for 1821 < ? ? 1 = ?3(7, 2; 1); ?1(7, 2; 1) = 1 3?4 5?65?7 8?98?: (i) (ii) (iii) (g) (i) L?(7, 3; 1) = 1 for 0 < ? ? 3135 = ?1(7, 3; 1); ? 3135 (7, 3; 1) = 1 (ii)?(iii) L?(7, 3; 1) = 2 for 3135 < ? ? 1 = ?2(7, 3; 1); ?1(7, 3; 1) = 2 ;?< =?>=?? @?A @?B@?C D?E D?F D?G D?H I?J I?K I?L I?M (i) (ii) (iii) (iv) (v) (h) (i) L?(7, 3; 2) = 1 for 0 < ? ? 1335 = ?1(7, 3; 2); ? 1335 (7, 3; 2) = 1 (ii) L?(7, 3; 2) = 2 for 1335 < ? ? 2635 = ?2(7, 3; 2); ? 2635 (7, 3; 2) = 1 (iii) L?(7, 3; 2) = 3 for 2635 < ? ? 3235 = ?3(7, 3; 2); ? 3235 (7, 3; 2) = 1 (iv)?(v) L?(7, 3; 2) = 4 for 3235 < ? ? 1 = ?4(7, 3; 2); ?1(7, 3; 2) = 2 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.4. New complete lottery numbers and improved bounds 113 N?O P?QP?R S?T S?US?V W?X W?Y W?Z W?[ \?] \?^ \?_ \?` (i) (ii) (iii) (iv) (v) (i) (i) L?(8, 2; 1) = 1 for 0 < ? ? 1328 = ?1(8, 2; 1); ? 1328 (8, 2; 1) = 1 (ii) L?(8, 2; 1) = 2 for 1328 < ? ? 2228 = ?2(8, 2; 1); ? 2228 (8, 2; 1) = 1 (iii) L?(8, 2; 1) = 3 for 2228 < ? ? 2728 = ?3(8, 2; 1); ? 2728 (8, 2; 1) = 1 (iv)?(v) L?(8, 2; 1) = 4 for 2728 < ? ? 1 = ?4(8, 2; 1); ?1(8, 2; 1) = 2 a?b c?dc?e (i) (ii) (j) (i) L?(8, 3; 1) = 1 for 0 < ? ? 4656 = ?1(8, 3; 1); ? 4656 (8, 3; 1) = 1 (ii) L?(8, 3; 1) = 2 for 4656 < ? ? 1 = ?2(8, 3; 1); ?1(8, 3; 1) = 1 f?g h?ih?j k?l k?mk?n o?p o?q o?r o?s t?u twv t?x t?y t?z (i) (ii) (iii) (iv) (v) (k) (i) L?(8, 3; 2) = 1 for 0 < ? ? 1656 = ?1(8, 3; 2); ? 1656 (8, 3; 2) = 1 (ii) L?(8, 3; 2) = 2 for 1656 < ? ? 3256 = ?2(8, 3; 2); ? 3256 (8, 3; 2) = 1 (iii) L?(8, 3; 2) = 3 for 3256 < ? ? 4456 = ?3(8, 3; 2); ? 4456 (8, 3; 2) = 1 (iv) L?(8, 3; 2) = 4 for 4456 < ? ? 5056 = ?4(8, 3; 2); ? 5056 (8, 3; 2) = 1 (v) L?(8, 3; 2) = 5 for 5056 < ? ? 1 = ?5(8, 3; 2); ?1(8, 3; 2) = 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 114 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS {?| }?~}?? ?????? ?????? ?????? (i) (ii) (iii) (iv) (v) (l) (i) L?(8, 4; 1) = 1 for 0 < ? ? 6970 = ?1(8, 4; 1); ? 6970 (8, 4; 1) = 1 (ii)?(v) L?(8, 4; 1) = 2 for 6970 < ? ? 1 = ?2(8, 4; 1); ?1(8, 4; 1) = 4 ??? ?????? ?????? (i) (ii) (iii) (m) (i) L?(8, 4; 2) = 1 for 0 < ? ? 5370 = ?1(8, 4; 2); ? 5370 (8, 4; 2) = 1 (ii)?(iii) L?(8, 4; 2) = 2 for 5370 < ? ? 1 = ?2(8, 4; 2); ?1(8, 4; 2) = 2 ??? ?????? ?????? ??? ?????? ??? ??? ??? ??? (i) (ii) (iii) (iv) (v) ??? ?w? ??? ??? ??? ??? ?w? ??? ??? ??? ??? ??? ?w? ??? ??? ??? (vi) (vii) (viii) (n) (i) L?(8, 4; 3) = 1 for 0 < ? ? 1770 = ?1(8, 4; 3); ? 1770 (8, 4; 3) = 1 (ii)?(iii) L?(8, 4; 3) = 2 for 1770 < ? ? 3470 = ?2(8, 4; 3); ? 3470 (8, 4; 3) = 2 (iv) L?(8, 4; 3) = 3 for 3470 < ? ? 4770 = ?3(8, 4; 3); ? 4770 (8, 4; 3) = 1 (v) L?(8, 4; 3) = 4 for 4770 < ? ? 6070 = ?4(8, 4; 3); ? 6070 (8, 4; 3) = 1 (vi)?(vii) L?(8, 4; 3) = 5 for 6070 < ? ? 6470 = ?5(8, 4; 3); ? 6470 (8, 4; 3) = 2 (viii) L?(8, 4; 3) = 6 for 6470 < ? ? 1 = ?6(8, 4; 3); ?1(8, 4; 3) = 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.4. New complete lottery numbers and improved bounds 115 ??? ?????? ??? ?????? ??? ??? ??? ??? (i) (ii) (iii) (iv) (o) (i) L?(9, 2; 1) = 1 for 0 < ? ? 1536 = ?1(9, 2; 1); ? 1536 (9, 2; 1) = 1 (ii) L?(9, 2; 1) = 2 for 1536 < ? ? 2636 = ?2(9, 2; 1); ? 2636 (9, 2; 1) = 1 (iii) L?(9, 2; 1) = 3 for 2636 < ? ? 3336 = ?3(9, 2; 1); ? 3336 (9, 2; 1) = 1 (iv) L?(9, 2; 1) = 4 for 3336 < ? ? 1 = ?4(9, 2; 1); ?1(9, 2; 1) = 1 ??? ?????? ??? ?????? ??? ?????? (i) (ii) (iii) (iv) ??? ?????? ??? ?????? ??? ?????? (v) (vi) (vii) (p) (i) L?(9, 3; 1) = 1 for 0 < ? ? 6484 = ?1(9, 3; 1); ? 6484 (9, 3; 1) = 1 (ii) L?(9, 3; 1) = 2 for 6484 < ? ? 8384 = ?2(9, 3; 1); ? 8384 (9, 3; 1) = 1 (iii)?(vii) L?(9, 3; 1) = 3 for 8384 < ? ? 1 = ?3(9, 3; 1); ?1(9, 3; 1) = 5 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 116 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ??? ?????? ??? ?????? ??? ??? ??? ??? ??? ??? ??? ??? ??? (i) (ii) (iii) (iv) (v) ??? ??? ?w? ??? ??? ??? ??? ??? ?w? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? (vi) (vii) (viii) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??ff ??fi ??fl ??ffi ??? ?? ??! (ix) (x) (xi) (q) (i) L?(9, 3; 2) = 1 for 0 < ? ? 1984 = ?1(9, 3; 2); ? 1984 (9, 3; 2) = 1 (ii) L?(9, 3; 2) = 2 for 1984 < ? ? 3884 = ?2(9, 3; 2); ? 3884 (9, 3; 2) = 1 (iii) L?(9, 3; 2) = 3 for 3884 < ? ? 5784 = ?3(9, 3; 2); ? 5784 (9, 3; 2) = 1 (iv) L?(9, 3; 2) = 4 for 5784 < ? ? 6584 = ?4(9, 3; 2); ? 6584 (9, 3; 2) = 1 (v) L?(9, 3; 2) = 5 for 6584 < ? ? 7584 = ?5(9, 3; 2); ? 7584 (9, 3; 2) = 1 (vi)?(vii) L?(9, 3; 2) = 6 for 7584 < ? ? 8084 = ?6(9, 3; 2); ? 8084 (9, 3; 2) = 2 (viii)?(xi) L?(9, 3; 2) = 7 for 8084 < ? ? 1 = ?7(9, 3; 2); ?1(9, 3; 2) = 4 "?# $&%$?' (&)(?* +&,+?- (i) (ii) (iii) (iv) (r) (i) L?(9, 4; 1) = 1 for 0 < ? ? 121126 = ?1(9, 4; 1); ? 120126 (9, 4; 1) = 1 (ii)?(iv) L?(9, 4; 1) = 2 for 121126 < ? ? 1 = ?2(9, 4; 1); ?1(9, 4; 1) = 3 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.4. New complete lottery numbers and improved bounds 117 .?/ 0&10?2 (i) (ii) (s) (i) L?(9, 4; 2) = 1 for 0 < ? ? 81126 = ?1(9, 4; 2); ? 81126 (9, 4; 2) = 1 (ii) L?(9, 4; 2) = 2 for 81126 < ? ? 1 = ?2(9, 4; 2); ?1(9, 4; 2) = 1 3?4 5&65?7 8&98?: ;=< ;&>;?? @&A @=B @?C @=D (i) (ii) (iii) (iv) (v) EGF EIH EGJ EGK EML NGO NIP NGQ NGR NMS TGU TIV TGW TGX TMY ZG[ ZI\ ZG] ZG^ ZM_ (vi) (vii) (viii) (ix) `Ga `Gb `Ic `Gd `Ge `Mf gGh gGi gIj gGk gGl gMm nGo nGp nIq nGr nGs nMt (x) (xi) (xii) uGv uGw uIx uGy uGz uM{ uG| }G~ }G? }I? }G? }G? }M? }G? (xiii) (xiv) (t) (i) L?(9, 4; 3) = 1 for 0 < ? ? 21126 = ?1(9, 4; 3); ? 21126 (9, 4; 3) = 1 (ii)?(iii) L?(9, 4; 3) = 2 for 21126 < ? ? 42126 = ?2(9, 4; 3); ? 42126 (9, 4; 3) = 2 (iv) L?(9, 4; 3) = 3 for 42126 < ? ? 63126 = ?3(9, 4; 3); ? 63126 (9, 4; 3) = 1 (v) L?(9, 4; 3) = 4 for 63126 < ? ? 80126 = ?4(9, 4; 3); ? 80126 (9, 4; 3) = 1 (vi)?(ix) L?(9, 4; 3) = 5 for 80126 < ? ? 93126 = ?5(9, 4; 3); ? 93126 (9, 4; 3) = 4 (x)?(xii) L?(9, 4; 3) = 6 for 93126 < ? ? 104126 = ?6(9, 4; 3); ? 104126 (9, 4; 3) = 3 (xiii)?(xiv) L?(9, 4; 3) = 7 for 104126 < ? ? 115126 = ?7(9, 4; 3); ? 115126 (9, 4; 3) = 2 L?(9, 4; 3) ? {8, 9} for 115126 < ? ? 1; ??(9, 4; 3) unknown for 115126 < ? ? 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 118 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ??? ?&???? ?=? ?&???? ??? ?=? ?&? ?=? (i) (ii) (iii) (iv) ?&? ??? ?=? ?=? ?&? ?&? ??? ?=? ?=? ?&? (v) (vi) (u) (i) L?(10, 2; 1) = 1 for 0 < ? ? 1745 = ?1(10, 2; 1); ? 1745 (10, 2; 1) = 1 (ii) L?(10, 2; 1) = 2 for 1745 < ? ? 3045 = ?2(10, 2; 1); ? 3045 (10, 2; 1) = 1 (iii) L?(10, 2; 1) = 3 for 3045 < ? ? 3945 = ?3(10, 2; 1); ? 3945 (10, 2; 1) = 1 (iv) L?(10, 2; 1) = 4 for 3945 < ? ? 4445 = ?4(10, 2; 1); ? 4445 (10, 2; 1) = 1 (v)?(vi) L?(10, 2; 1) = 5 for 4445 < ? ? 1 = ?5(10, 2; 1); ?1(10, 2; 1) = 2 ??? ?&???? ?=? ?&???? ?=? ?&???? (i) (ii) (iii) (iv) (v) (i) L?(10, 3; 1) = 1 for 0 < ? ? 85120 = ?1(10, 3; 1); ? 85120 (10, 3; 1) = 1 (ii) L?(10, 3; 1) = 2 for 85120 < ? ? 116120 = ?2(10, 3; 1); ? 116120 (10, 3; 1) = 1 (iii)?(vi) L?(10, 3; 1) = 3 for 116120 < ? ? 1 = ?3(10, 3; 1); ?1(10, 3; 1) = 2 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.4. New complete lottery numbers and improved bounds 119 ??? ?????? ??? ?????? ?M? ?G? ??? ?G? ?M? ?G? ??? ?G? ?M? ?G? ??? ?G? ??? (i) (ii) (iii) (iv) (v) (vi) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? (vii) (viii) (ix) (x) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? (xi) (xii) (xiii) (xiv) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??ff ??fi ??fl ??ffi ??? ?? ??! "?# "?$ "?% "?& "?' "?( "?) (xv) (xvi) (xvii) (xviii) (w) (i) L?(10, 3; 2) = 1 for 0 < ? ? 22120 = ?1(10, 3; 2); ? 22120 (10, 3; 2) = 1 (ii) L?(10, 3; 2) = 2 for 22120 < ? ? 44120 = ?2(10, 3; 2); ? 44120 (10, 3; 2) = 1 (iii) L?(10, 3; 2) = 3 for 44120 < ? ? 66120 = ?3(10, 3; 2); ? 66120 (10, 3; 2) = 1 (iv)?(v) L?(10, 3; 2) = 4 for 66120 < ? ? 80120 = ?4(10, 3; 2); ? 80120 (10, 3; 2) = 2 (vi) L?(10, 3; 2) = 5 for 80120 < ? ? 92120 = ?5(10, 3; 2); ? 92120 (10, 3; 2) = 1 (vii)?(xi) L?(10, 3; 2) = 6 for 92120 < ? ? 102120 = ?6(10, 3; 2); ? 102120 (10, 3; 2) = 5 (xii)?(xviii) L?(10, 3; 2) = 7 for 102120 < ? ? 110120 = ?7(10, 3; 2); ? 110120 (10, 3; 2) = 7 L?(10, 3; 2) = 8 for 110120 < ? ? 1 = ?8(10, 3; 2); ?1(10, 3; 2) is unknown Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 120 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS *,+ -/.-,0 1/21,3 (i) (ii) (iii) (x) (i) L?(10, 4; 1) = 1 for 0 < ? ? 195210 = ?1(10, 4; 1); ? 195210 (10, 4; 1) = 1 (ii)?(iii) L?(10, 4; 1) = 2 for 195210 < ? ? 1 = ?2(10, 4; 1); ?1(10, 4; 1) = 2 4,5 6/76,8 9;: 9/<9,= >;? >/@>,A B;C B/DB,E (i) (ii) (iii) (iv) (v) (y) (i) L?(10, 4; 2) = 1 for 0 < ? ? 115210 = ?1(10, 4; 2); ? 115120 (10, 4; 2) = 1 (ii) L?(10, 4; 2) = 2 for 115210 < ? ? 194210 = ?2(10, 4; 2); ? 194210 (10, 4; 2) = 1 (iii)?(v) L?(10, 4; 2) = 3 for 194210 < ? ? 1 = ?3(10, 4; 2); ?1(10, 4; 2) = 3 FHG IKJI;L MKNM;O PRQ PTSPKU VRW VTXVKY ZR[ ZT\ZK] (i) (ii) (iii) (iv) (v) (vi) ^/_ ^;` ^,a ^;b cTd cfe cHg cTh cfi j?k j?l j?m j?n j?o j?p (vii) (viii) (ix) (z) (i) L?(10, 4; 3) = 1 for 0 < ? ? 25210 = ?1(10, 4; 3); ? 25210 (10, 4; 3) = 1 (ii)?(iii) L?(10, 4; 3) = 2 for 25210 < ? ? 50210 = ?2(10, 4; 3); ? 50210 (10, 4; 3) = 2 (iv)?(vi) L?(10, 4; 3) = 3 for 50210 < ? ? 75210 = ?3(10, 4; 3); ? 75210 (10, 4; 3) = 3 (vii) L?(10, 4; 3) = 4 for 75210 < ? ? 100210 = ?4(10, 4; 3); ? 100210 (10, 4; 3) = 1 (viii) L?(10, 4; 3) = 5 for 100210 < ? ? 125210 = ?5(10, 4; 3); ? 125210 (10, 4; 3) = 1 (ix) L?(10, 4; 3) = 6 for 125210 < ? ? 139210 = ?6(10, 4; 3); ? 139210 (10, 4; 3) = 1 L?(10, 4; 3) ? {7, . . . , 14} for 139210 < ? ? 1; ??(10, 4; 3) unknown for 139210 < ? ? 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.4. New complete lottery numbers and improved bounds 121 q,r s/ts,u v/wv,x y/zy,{ (i) (ii) (iii) (iv) |/}|,~ ?/??,? (v) (vi) (aa) (i) L?(10, 5; 1) = 1 for 0 < ? ? 251252 = ?1(10, 5; 1); ? 251252 (10, 5; 1) = 1 (ii)?(vi) L?(10, 5; 1) = 2 for 251252 < ? ? 1 = ?2(10, 5; 1); ?1(10, 5; 1) = 5 ?,? ?/??,? ?/??,? ?/??,? (i) (ii) (iii) (iv) (bb) (i) L?(10, 5; 2) = 1 for 0 < ? ? 226252 = ?1(10, 5; 2); ? 226252 (10, 5; 2) = 1 (ii)?(iv) L?(10, 5; 2) = 2 for 226252 < ? ? 1 = ?2(10, 5; 2); ?1(10, 5; 2) = 3 ?,? ?/??,? (i) (ii) (cc) (i) L?(10, 5; 3) = 1 for 0 < ? ? 126252 = ?1(10, 5; 3); ? 126252 (10, 5; 3) = 1 (ii) L?(10, 5; 3) = 2 for 126252 < ? ? 1 = ?2(10, 5; 3); ?1(10, 5; 3) = 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 122 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS ?,? ?/??,? ?/??,? ?/??,? ?;? ?/??,? (i) (ii) (iii) (iv) (v) ?;? ?/??,? ?;? ?/??,? ?/??,? ?;? ?;? ?/??,? ?;? ?;? ?/??,? ?;? ?;? (vi) (vii) (viii) (ix) (x) ??? ?,? ?,? ??? ?,? ?,? ?,? ??? ?,? ?,? ??? (xi) (xii) (dd) (i) L?(10, 5; 4) = 1 for 0 < ? ? 26252 = ?1(10, 5; 4); ? 26252 (10, 5; 4) = 1 (ii)?(iv) L?(10, 5; 4) = 2 for 26252 < ? ? 52252 = ?2(10, 5; 4); ? 52252 (10, 5; 4) = 3 (v)?(vii) L?(10, 5; 4) = 3 for 52252 < ? ? 78252 = ?3(10, 5; 4); ? 78252 (10, 5; 4) = 3 (viii)?(x) L?(10, 5; 4) = 4 for 78252 < ? ? 104252 = ?4(10, 5; 4); ? 104252 (10, 5; 4) = 3 (xi) L?(10, 5; 4) = 5 for 104252 < ? ? 130252 = ?5(10, 5; 4); ? 130252 (10, 5; 4) = 1 (xii) L?(10, 5; 4) = 6 for 130252 < ? ? 156252 = ?6(10, 5; 4); ? 156252 (10, 5; 4) = 1 L?(10, 5; 4) ? {7, . . . , 14} for 156252 < ? ? 1; ??(10, 5; 4) unknown for 156252 < ? ? 1 Figure 6.9 (continued): Graphical representations of all ??(m,n; k) characterisations of L?(m,n; k)?set structures for ?m,n; k?, where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and L?(m,n; k) ? 6, 7 obtained by the enumeration methods described in ?6.1. 6.5. Chapter summary 123 Proof of Theorem 6.7 By contradiction. Suppose that L1(18, 6; 3) = 6. Then it follows, by Lemma 6.1, that any L1(18, 6; 3)?set must contain exactly one disjoint 6?set from U18. If, in the construction technique outlined above, a column involving the disjoint 6?set is deleted, the resulting complete lottery set for ?17, 6; 3? will have no disjoint 6?set, which contradicts the characterisation of minimal complete lottery sets for ?17, 6; 3? (see Figure 6.4(a)). It is therefore possible to conclude that 6 < L1(18, 6; 3) ? 7, which yields the desired result. As an extension to ?6.3, the enumeration methods described in ?6.1 were used (either directly or indi- rectly) to find new complete lottery numbers L1(m,n; k) ? 7 for whichm > 20 (by either varifying design optimality, or by upper/lower bound improvement) and/or improvements on current bounds available on Internet lottery repositories [19, 44, 133, 237]. Table 6.7 summarises all the results using the enumeration methods in ?6.1 for ?m,n; k?, apart from the two lower bound improvements 6 ? L1(17, 7; 4) ? 9 and 7 ? L1(19, 6; 3) ? 9. Previous best lower bounds on these lotteries were given by L1(17, 7; 4) ? 5 and L1(19, 6; 3) ? 6 respec- tively [19, 44, 133, 237]. 6.5 Chapter summary In this chapter two possible enumeration methods for determining all structurally different {L?(m,n; k), ?`(m,n; k)}?sets for ?m,n; k? were described. The only difference between the two methods is the way in which the {L?(m,n; k),?`(m,n; k)}?set structure is represented and manipulated. In ?6.2 the characterisation number ??(m,n; k) was studied in depth. First the existence and bounded- ness of ??(m,n; k) was established (in Theorem 6.1), followed by a presentation of some growth properties of the parameter. This led to the definition of so?called jump sequences, defining the intervals at which the parameter ??(m,n; k) was seen to display a saw?tooth growth behaviour. Theorem 6.5 established ?1(m,n; k) for small values of L1(m,n; k) = 1, 2, 3 (these complete lottery numbers were characterised in Chapter 3). An interesting mirror (isomorphism) result relating the optimal solution ~X?vectors for ?m,n; k? to those for the lottery ?m,m? n;m+ k ? 2n? was also established in ?6.2. An n?set addition to any playing set L (of cardinality `) only incurs a linear (unit) increase in the order of ?L (for the enumeration method described in ?6.1.2), as opposed to the exponential (2`) increase in the vector ~X(`) when using the enumeration method described in ?6.1.1. It is therefore suggested that the lottery tree method may be used when determining {L?(m,n; k),?`(m,n; k)}?set characterisations for smaller values of `, while the nauty tree method should be used when dealing with larger values of `. This, however, is not the only motivation for using one enumeration method above the other. The value of the parameter m also plays a crucial role in this distinction, seeing that nauty has to select the canonically first labelling of ?L(`) from all possible permutations of (m+ |L(`)|) vertices in ?L(`) . In contrast, the computational effect of a change/increase in the parameter m when using the lottery tree enumeration method (?6.1.1), is not as large. An analysis of small lotteries ?m,n; k? (where 1 ? k < n < m ? 10) was conducted in ?6.3, leading to the determination of all the ??(m,n; k) structurally different {L?(m,n; k),?`(m,n; k)}?set (where 1 ? k < n < m ? 10 satisfying m + k > 2n, L1(m,n; k) > 1 and 1 ? L?(m,n; k) ? 6, 7), as represented in Figure 6.9. As a summary of the results in ?6.3, Table 6.8 contains the values of the lottery characterisation numbers ?1(m,n; k) for ?m,n; k? (where 1 ? k ? n ? m ? 10). The enumeration methods described in ?6.1 were used to establish optimality of, or improve upon the best known bounds available on the Internet [19, 44, 133, 237] for various lotteries. More specifically, previously known upper bounds on 27 complete lottery numbers were determined to be optimal while 28 upper bounds on L1(m,n; k) were found to be suboptimal and were subsequently improved, rendering a total of 55 new complete lottery numbers. In addition, 46 upper bounds on L1(m,n; k) were also improved, using a decomposition result from [38]. These results are captured in Table 6.7. 124 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS L1(15, 7; 4) = 5 L1(23, 6; 2) = 4 L1(30, 6; 2) = 5 L1(46, 8; 2) = 6 L1(16, 7; 4) = 6 L1(24, 6; 2) = 4 L1(31, 6; 2) = 7 L1(50, 8; 2) = 7 L1(18, 6; 3) = 7? L1(25, 6; 2) = 4 L1(32, 6; 2) = 7 L1(51, 8; 2) = 7 L1(21, 7; 3) = 3 L1(26, 6; 2) = 5 L1(33, 6; 2) = 7 L1(52, 8; 2) = 7 L1(21, 6; 2) = 4 L1(27, 6; 2) = 5 L1(43, 8; 2) = 6 L1(53, 8; 2) = 7 L1(22, 6; 2) = 4 L1(28, 6; 2) = 5 L1(44, 8; 2) = 6 L1(54, 8; 2) = 7 L1(22, 7; 3) = 6 L1(29, 6; 2) = 5 L1(45, 8; 2) = 6 (a) Lotteries ?m,n; k? for which upper bounds on L1(m, n; k) ? 7 in [19, 44, 133, 237] were determined to be optimal via the enumeration techniques described in ?6.1 New Previous New Previous New Previous New Previous result bound result bound result bound result bound L1(23, 7; 3) = 6 ? 7 L1(48, 8; 2) = 6 ? 7 L1(53, 9; 2) = 6 ? 25 L1(58, 9; 2) = 7 ? 18 L1(39, 8; 2) = 6 ? 6 L1(48, 9; 2) = 5 ? 16 L1(54, 9; 2) = 6 ? 27 L1(59, 9; 2) = 7 ? 18 L1(40, 8; 2) = 5 ? 6 L1(49, 8; 2) = 6 ? 7 L1(55, 8; 2) = 7 ? 9 L1(60, 9; 2) = 7 ? 18 L1(41, 8; 2) = 5 ? 6 L1(49, 9; 2) = 6 ? 18 L1(55, 9; 2) = 6 ? 29 L1(61, 9; 2) = 7 ? 18 L1(42, 8; 2) = 5 ? 6 L1(50, 9; 2) = 6 ? 20 L1(56, 8; 2) = 7 ? 9 L1(62, 9; 2) = 7 ? 18 L1(45, 10; 3) = 6 ? 15 L1(51, 9; 2) = 6 ? 22 L1(56, 9; 2) = 6 ? 18 L1(63, 9; 2) = 7 ? 19 L1(47, 8; 2) = 6 ? 7 L1(52, 9; 2) = 6 ? 23 L1(57, 9; 2) = 7 ? 18 L1(64, 9; 2) = 7 ? 19 (b) Lotteries ?m,n; k? for which the upper bounds in [19, 44, 133, 237] were found to be suboptimal. These bounds were improved to optimality via the enumeration techniques described in ?6.1 New Previous New Previous New Previous New Previous bound bound bound bound bound bound bound bound L1(21, 8; 4) ? 7 ? 8 L1(50, 10; 3) ? 11 ? 15 L1(69, 9; 2) ? 8 ? 20 L1(80, 9; 2) ? 12 ? 22 L1(38, 9; 3) ? 7 ? 10 L1(51, 10; 3) ? 12 ? 15 L1(70, 9; 2) ? 8 ? 20 L1(81, 9; 2) ? 13 ? 22 L1(39, 9; 3) ? 9 ? 10 L1(52, 7; 2) ? 13 ? 14 L1(71, 9; 2) ? 8 ? 20 L1(82, 9; 2) ? 13 ? 22 L1(45, 7; 2) ? 8 ? 12 L1(52, 10; 3) ? 13 ? 15 L1(72, 9; 2) ? 8 ? 20 L1(83, 9; 2) ? 14 ? 22 L1(46, 7; 2) ? 9 ? 12 L1(53, 10; 3) ? 14 ? 15 L1(73, 9; 2) ? 10 ? 20 L1(84, 9; 2) ? 14 ? 22 L1(46, 10; 3) ? 7 ? 15 L1(60, 10; 3) ? 21 ? 23 L1(74, 9; 2) ? 10 ? 20 L1(85, 9; 2) ? 15 ? 22 L1(47, 7; 2) ? 10 ? 12 L1(61, 10; 3) ? 22 ? 24 L1(75, 9; 2) ? 10 ? 20 L1(86, 9; 2) ? 15 ? 22 L1(47, 10; 3) ? 9 ? 15 L1(62, 10; 3) ? 23 ? 24 L1(76, 9; 2) ? 10 ? 20 L1(87, 9; 2) ? 16 ? 22 L1(48, 7; 2) ? 10 ? 12 L1(65, 9; 2) ? 8 ? 20 L1(77, 9; 2) ? 11 ? 21 L1(88, 9; 2) ? 16 ? 22 L1(48, 10; 3) ? 9 ? 15 L1(66, 9; 2) ? 8 ? 20 L1(78, 9; 2) ? 11 ? 21 L1(89, 9; 2) ? 17 ? 22 L1(49, 7; 2) ? 11 ? 12 L1(67, 9; 2) ? 8 ? 20 L1(79, 9; 2) ? 12 ? 22 L1(90, 9; 2) ? 17 ? 22 L1(49, 10; 3) ? 10 ? 15 L1(68, 9; 2) ? 8 ? 20 (c) Lotteries ?m, n; k? for which upper bounds on L1(m,n; k) [19, 44, 133, 237] were improved via the enumeration techniques described in ?6.1 Table 6.7: Lotteries ?m,n; k? from Internet repositories [19, 44, 133, 237] for which (a) upper bounds on L1(m,n; k) ? 7 were found to be optimal; (b) upper bounds on L1(m,n; k) ? 7 were found to be suboptimal (the corresponding suboptimal upper bounds on L1(m,n; k) are given and the optimal values of these lottery numbers are listed); and (c) upper bounds on L1(m,n; k) were improved using a decomposition result in [38] (the corresponding previous best upper bounds on L1(m,n; k) are also given). ?See Theorem 6.7. 6.5. Chapter summary 125 n 1 2 1 1 1k 2 ? 1 (a) ?1(2, n; k) n 1 2 3 1 1 1 1 k 2 ? 1 1 3 ? ? 1 (b) ?1(3, n; k) n 1 2 3 4 1 1 2 1 1 2 ? 1 1 1k 3 ? ? 1 1 4 ? ? ? 1 (c) ?1(4, n; k) n 1 2 3 4 5 1 1 2 1 1 1 2 ? 1 1 1 1 k 3 ? ? 1 1 1 4 ? ? ? 1 1 5 ? ? ? ? 1 (d) ?1(5, n; k) n 1 2 3 4 5 6 1 1 2 3 1 1 1 2 ? 1 1 1 1 1 3 ? ? 1 2 1 1k 4 ? ? ? 1 1 1 5 ? ? ? ? 1 1 6 ? ? ? ? ? 1 (e) ?1(6, n; k) n 1 2 3 4 5 6 7 1 1 1 2 1 1 1 1 2 ? 1 2 2 1 1 1 3 ? ? 1 2 1 1 1 k 4 ? ? ? 1 1 1 1 5 ? ? ? ? 1 1 1 6 ? ? ? ? ? 1 1 7 ? ? ? ? ? ? 1 (f) ?1(7, n; k) n 1 2 3 4 5 6 7 8 1 1 2 1 4 1 1 1 1 2 ? 1 1 2 1 1 1 1 3 ? ? 1 1 1 1 1 1 4 ? ? ? 1 1 1 1 1k 5 ? ? ? ? 1 2 1 1 6 ? ? ? ? ? 1 1 1 7 ? ? ? ? ? ? 1 1 8 ? ? ? ? ? ? ? 1 (g) ?1(8, n; k) n 1 2 3 4 5 6 7 8 9 1 1 1 5 3 1 1 1 1 1 2 ? 1 4 1 3 1 1 1 1 3 ? ? 1 ? 1 1 1 1 1 4 ? ? ? 1 ? 5 1 1 1 k 5 ? ? ? ? 1 4 1 1 1 6 ? ? ? ? ? 1 1 1 1 7 ? ? ? ? ? ? 1 1 1 8 ? ? ? ? ? ? ? 1 1 9 ? ? ? ? ? ? ? ? 1 (h) ?1(9, n; k) n 1 2 3 4 5 6 7 8 9 10 1 1 2 2 2 5 1 1 1 1 1 2 ? 1 ? 3 3 1 1 1 1 1 3 ? ? 1 ? 1 2 1 1 1 1 4 ? ? ? 1 ? 3 1 1 1 1 5 ? ? ? ? 1 ? 2 1 1 1k 6 ? ? ? ? ? 1 ? 1 1 1 7 ? ? ? ? ? ? 1 2 1 1 8 ? ? ? ? ? ? ? 1 1 1 9 ? ? ? ? ? ? ? ? 1 1 10 ? ? ? ? ? ? ? ? ? 1 (i) ?1(10, n; k) Table 6.8: Lottery characterisation numbers ?1(m,n; k) for the lotteries ?m,n; k?, 1 ? k ? n ? m ? 10. A question mark (?) indicates that the lottery characterisation number ?1(m,n; k) is not known. 126 CHAPTER 6. OPTIMAL SOLUTION CHARACTERISATIONS Chapter 7 Conclusions ?The Moving Finger writes; and, having writ, Moves on: nor all your Piety nor Wit Shall lure it back to cancel half a Line. Not all your Tears wash out a Word of it.? Edward Fitzgerald (1809?1883) This chapter consists of two sections. In the first (?7.1) a brief summary of the work contained in this dissertation is given, while in the second (?7.2) possible improvements to the work presented in this study as well as some ideas with respect to further work are outlined. 7.1 Dissertation summary In Chapter 1 a brief summary of the history of lotteries, regarding their origins and progressive changes worldwide, was given. A collection of known lottery parameters in use across the world was presented in Table 1.1. Both the newly defined incomplete lottery and resource utilisation problems were presented formally, together with a brief literature survey of known research on the covering, packing and complete lottery problems. To the author?s knowledge, no reference to the incomplete lottery or resource utilisation problem exists in the combinatorial literature, rendering these problem formulations and the subsequent study thereof a novel contribution of this dissertation to the body of literature on lotteries. The existence and some basic properties of the incomplete lottery and resource utilisation numbers, L?(m,n; k) and ?`(m,n; k) respectively, were derived in Chapter 2. A binary programming solution approach to both combinatorial problems was considered, although such an approach was concluded to be practically infeasable, even for relatively small values of the parameters m, n, k and `. From these problem formulations, the conclusion was drawn that the incomplete lottery and resource utilisation problems, being more general than the well?known complete lottery problem (in the sense that the problems are formulated in an incomplete or partial domination fashion), may be of considerably greater difficulty to solve than the complete lottery problem.Some basic values of the incomplete lottery number L?(m,n; k) and resource utilisation number ?`(m,n; k) was also established in Chapter 2. The underlying methodological approach in this dissertation towards the incomplete lottery and resource utilisation problems was based on a graph theoretic interpretation of lottery schemes. Some basic con- cepts from graph theory and how the above two combinatorial optimisation problems translate to within this field, were presented in Chapter 3. This led to the definition of the so?called lottery graph G?m,n; k?, not previously encountered in the literature on lotteries, thus achieving Objective I in ?1.4. An algorithm for the symmetric representation of G?m,n; k?, revealing the inherent symmetry of the lottery graph, was presented and used to draw lottery graphs G?m,n; k? for 1 ? k ? n ? m ? 10 in Figure 3.11. Furthermore, a characterisation of exactly when the complete lottery number L1(m,n; k) = 1, 2 or 3 was 127 128 CHAPTER 7. CONCLUSIONS also established. Using graph domination theory, upper bounds on and explicit values of the complete lottery number L1(m,n; k) for 1 ? k ? n ? m ? 10 were found, as presented in Table 3.1. The combinatorial literature survey performed on the covering, packing and complete lottery problems in ?1.3, was intensified in Chapter 4, to focus specifically on known analytic bounds on the complete lottery number L1(m,n; k) derived from results on the lower domination parameter, ?(G), of a graph G. The relative merit of these bounds were presented in Table 4.1, where only the best bounds on L1(m,n; k) for 6 ? m ? 50 and 1 ? k ? n ? 6 were displayed. A number of bounds were also presented in a comparative fashion for the lottery class ?m, 6; 3?, where 6 ? m ? 50, in Table 4.2, in partial fulfilment of Objective II in ?1.4. Seven algorithmic solution approaches for the determination of lower and upper bounds on respectively the resource utilisation number ?`(m,n; k) and incomplete lottery number L?(m,n; k) were described in Chapter 5. Each of these algorithms was evaluated in terms of its performance relative to the other algorithms and its worst case complexity measure, rounding off the requirement stipulated by Objective II in ?1.4. Chapter 5 also extends toward partially accomplishing Objective III. More specifically, upper bounds (via Algorithms 2?7) on L1(m, 5; 2), for 5 ? m ? 25, were presented in Table 5.3, while lower bounds on ?`(m,n; k) for 1 ? k < n < m ? 10 and 2 ? ` ? L1(m,n; k), via Algorithms 2?7 were presented in Table 5.2. For the sake of completeness, the best known upper and lower bounds on L1(m,n; k), gathered from Internet covering and lottery number repository sites, were also included in Table B.2. Another novel contribution of this dissertation is the interest expressed in the number of structurally different L?(m,n; k)?sets and ?`(m,n; k)?sets for ?m,n; k?, leading to the description of two enumeration methods for finding and thus characterising all distinct L?(m,n; k)?set and ?`(m,n; k)?set structures for ?m,n; k? (performed in Chapter 6). The characterisation procedure involved the use of a newly defined lottery/nauty tree and the lottery characterisation number ??(m,n; k) for ?m,n; k?. Only small instances of ??(m,n; k) were investigated, due to the computationally intensive nature of the enumeration methods. An in?depth study of the parameter jump sequences involved in the growth patterns of the characterisation number ??(m,n; k) was also performed, wrapping up the requirements of Objective III in ?1.4. The following section is devoted to achieving Objective IV in ?1.4. 7.2 Possible future work The author was excited by a number of possible future avenues of investigation during the course of conducting the research contained in this dissertation. Some of these possible improvements to or elab- orations on the work presented in the previous chapters are outlined in this section. More specifically, fifteen questions are posed as a challenge to possible future investigators. The method described for finding all possible distinct L?(m,n; k)?set characterisations utilised the notion of a so?called lottery tree, as described in ?6.1.1. Although the pruning rules affected a considerable improvement in the execution time of the characterisation algorithm (Algorithm 8), as is evident from the table in Figure 6.4(c), other pruning rules certainly also exist. Question 7.1 Consider an overlapping n?set structure ~X(`) of cardinality ` < L?(m,n; k) in the lottery tree. Is it possible to predetermine whether or not the descendants of ~X(`) would yield any L?(m,n; k)?set structure characterisations further down in the lottery tree? If Question 7.1 may be answered in the affirmative, ~X(`) and its descendants may be removed from the lottery tree in cases where it represents a node not capable of producing an L?(m,n; k)?set structure fur- ther down in the lottery tree, thereby avoiding further traversals down its branch of ?dead? descendants. For small values of ` (i.e., high up in the lottery tree) it may well be very difficult to answer the above question in the affirmative (due to the considerable structural changes affected to ~X(`) in subsequent lev- els of the lottery tree). However, if it were possible to answer this question in the affirmative (especially for small values of `), one would be able to speed up the characterisation procedure significantly. 7.2. Possible future work 129 The following question relates to which of the two characterisation techniques described in ?6.1 utilises a more computationally efficient representation of playing set structures. Question 7.2 Does the fact that you only have to search through (m+L?(m,n; k)) elements (and hence using the automorphism software package nauty) improve the performance of finding all ??(m,n; k) L?(m,n; k)?set structures for ?m,n; k?? Furthermore, to what extent may this improvement be exploited to establish unknown L?(m,n; k) and L?(m,n; k)?set structures? One important factor to include in the investigation of this computational efficiency (as mentioned in Chapter 6), would be the respective values of the parameters m and ` at which one characterisation method (and it?s playing set structure representation) is better suited than the other. Next, consider the resource utilisation problem. The establishment of this problem most probably embodies the single component of this dissertation from which the largest amount of subsequent research could evolve. More specifically, the following question is posed. Question 7.3 Is it possible to formulate improved theoretical bounds on the resource utilisation number ?`(m,n; k), or even algorithmically determine explicit resource utilisation numbers for larger values of m, n, k and ` in certain special cases? This may well be pursued by the establishment of either different heuristic algorithmic solution ap- proaches to those presented in Chapter 5, or by considering modifications to the existing optimisation techniques. One possible improvement of the intelligent genetic algorithm implementation (Algorithm 7), for example, might be to incorporate a candidate list protocol (similar to candidate list strategies used in conjuction with the tabu search optimisation method). Such a protocol definition would be able to intensify locally optimal candidate solutions by considering only a selection of all possible gene exchanges between parent candidates in the genetic crossover procedure (as opposed to considering all possible gene exchanges), thus reducing computational complexity of the method. The next question involves the parallelisation of the algorithms in Chapter 5. In particular, Algorithms 6 and 7 are computationally intensive, mainly due to the extremely high number of resource utilisation calculations that have to be performed. However, both algorithms lend themselves to a parallel imple- mentation, especially on a MOSIX cluster system (such as the one described in Chapter 5). Somewhat imprecisely speaking, algorithms may be implemented using a client?server approach, where client sys- tems are designed specifically to determine the computationally intensive components of an algorithm (for example, determining the resource utilisation of a playing set) and a single server system handing out jobs to any available clients (for example, the passing of a playing set to a client system for the deter- mination of its resource utilisation). For instance, if a number ? of client systems are utilised (by a server system) to perform the resource utilisation of ? playing sets (in parallel), the result may potentially speed up the execution time by the factor ?, as opposed to the (serial) determination of the resource utilisation of ? playing sets by any stand?alone system or process, as performed by the algorithms in Chapter 5. Of course, a more specific protocol will need to be investigated, which includes the effective manage- ment of memory and hardware resources (process migration slows down execution time and is performed whenever hardware access is required [12]). Recently such investigations have been initiated with the developement of a tool called autoson [159] which schedules single or multi user execution of processes across a network of UNIX workstations (the flavours of UNIX systems supported may include (a mixture of): Solaris One and Solaris Two on Sun workstations; IRIX on Silicon Graphics mips workstations; OSF1 on Dec Alpha workstations; ULTRIX on Decstations; Hewlett?Packard HP?UX computers; the Linux operating system). Another parallelisation approach may be to utilise a distributed system over the Internet. This resolution is motivated by a paper by Atkins, et al. [10] where the so?called ?RSA?129 challenge?1 was solved with the use of approximately 1 600 computers worldwide. The factorisation problem was subdivided into numerous small parts and sent to Internet volunteers for calculations on their computers, in their own 1The ?RSA?129 challenge? consisted of the factorisation of a 129?digit integer into two prime factors of 64 and 65 digits respectively. The RSA cipher (named after its creators: R Rivest, A Shamir and L Adleman) was invented in 1977 [210], and its security is based on the presumed intractability of prime factorisation. 130 CHAPTER 7. CONCLUSIONS time2. Once results were received from volunteers, data integrity checks were performed and a huge factor base was constructed, thereby eventually solving the factorisation problem via the quadratic sieve method. The time of factorisation was diminished from an estimated 4 ? 1013 years (as calculated by Rivest in [85]) to a mere 8 months (from August 1993 to April 2, 1994). The following question is therefore posed. Question 7.4 May significant improvements in execution times be achieved by implementing the heuris- tic algorithmic solution approaches of Chapter 5 (in particular the tabu search and genetic algorithm) or the characterisation algorithm of Chapter 6, incorporating the parallel distribution of a client?server system, by using a computer cluster configuration or via Internet distribution? The genetic algorithmic approach towards determining upper bounds on L?(m,n; k) and lower bounds on ?`(m,n; k) may also be adapted to incorporate dynamic elements, similar to those present in the tabu search implementation (such as, using a variable tabu tenure). Here, for example, one could use a dynamic mutation parameter that may be used to deter the solution process away from local optima in the following way: When the average population fitness converges, the mutation parameter may be increased (albeit the number of elements to alter per chromosome, or the number of chromosomes altogether, or a combination of both) to ensure that more diverse candidates are formed in an attempt at avoiding so?called inbreeding. Another interesting dynamic and practical technique intuitive to genetic algorithms is to allow the formation of so?called species within a certain population (also referred to as speciation). When fitness convergence reaches some minimum threshold, the genetic propagation of chromosomes may be performed across different species, thereby hopefully perturbing current solutions away from locality. These dynamic genetic algorithm alterations lead to the following question. Question 7.5 What effect would the incorporation of dynamic mutation and/or crossover procedures have on algorithmic solutions to the incomplete lottery or resource utilisation problems of Definitions 1.2 and 1.3? The next question investigates an extention of the domination test performed at level L?(m,n; k) + 1 in the lottery tree (as described in ?6.1.1). More specifically, the question inquires about the particular L?(m,n; k)?set structure amongst the ??(m,n; k) incomplete lottery set structures that guarantees a k?prize for the lottery ?m,n; k?, that would additionally yield the greatest probability of winning a (k+ i)?prize (i = 1, . . . , n? k? 1) in ?m,n; k+ i?. Obviously it would be more beneficial if a participant were able to choose from a selection of playing sets for ?m,n; k?, in such a way that the probability of winning more than just a k?prize is maximised. The following more general question therefore arises. Question 7.6 Suppose the set S contains all ??(m,n; k) L?(m,n; k)?sets for ?m,n; k?. Which s? ? S yields a maximal value for the resource utilised in the lottery ?m,n; k + i? by a subset of ?(Um, n) of cardinality L?(m,n; k), where i = 1, . . . , n? k ? 1? Question 7.6 may, in fact, be generalised. Throughout this dissertation, the incomplete lottery problem was attempted for a specific case of the lottery parameters m, n, k and ?. However, in practical situations it may occur that a participant of the lottery scheme ?m,n; k? wishes to maximise his/her chance of winning a collection of prizes according to a specified set of weighting preferences, rather than a specific k?prize. Hence, the following question arises. Question 7.7 Suppose L is a playing set of cardinality ` for the lottery ?m,n; k?. Let ?iL denote the probability of the playing set L winning an i?prize (k ? i ? n) in the lottery ?m,n; i?. Also, let i, i+1, . . . , n?1 be real numbers (greater than or equal to zero), such that ?ni=k i = 1, capturing the lottery participant?s preference of winning an i?prize, for all i = k, . . . , n. What playing set L would maximise WL = k?kL + k+1?k+1L + ? ? ?+ n?1?n?1L = n?1? i=k i?iL, 2The Internet advertisement posted by Atkins, et al. [10] read, ?Your donations of idle cycles on your PC?s, workstations, supercomputers and fax machines may not be tax deductible, but they are truly a charitable donation.? 7.2. Possible future work 131 PSfrag replacements E ` (m , 6; 2) ` 0.30 0.25 0.20 0.15 0.10 0.05 0 2 3 4 5 E`(26, 6; 2) E`(27, 6; 2) E`(28, 6; 2) E`(29, 6; 2) E`(30, 6; 2) (a) Values for the ticket efficiency number E`(m, 6; 2) for 1 < ` ? 5 = L1(m, 6; 2) and 26 ? m ? 30. PSfrag replacements E ` (m , n ;k ) ` 0.30 0.25 0.20 0.15 0.10 0.05 0 2 3 4 5 6 7 E`(9, 3; 2) E`(9, 4; 3) E`(10, 3; 2) E`(10, 4; 3) E`(10, 5; 4) (b) Values for the ticket efficiency number E`(m,n; k) for small lotteries where 1 < ` ? 7 and m = 9, 10. Figure 7.1: Investigation into the ticket efficiency number E`(m,n; k) for the lotteries (a) ?m, 6; 2? where 26 ? m ? 35 and 2 ? ` ? 5 = L1(m, 6; 2) and (b) ?m,n; k? where m = 9, 10 and 2 ? ` ? 7 for the indicated values of n and k. giving the participant the best chance of winning a combination of i?prizes as determined by the prefer- ences i, where i = k, . . . , n? 1? Practical situations may sometimes occur in which a participant of a lottery is interested to know how much he/she will gain (in terms of the probability of winning a k?prize) from buying one additional ticket (n?set). Consider a playing set L(`) (of cardinality `) that yields a resource utilisation of ?`(m,n; k) for the lottery ?m,n; k?. By a unit increase in the cardinality of L(`) (whether by adding a specific n?set from ?(Um, n) to L(`), or by constructing a (completely) new set L(`+1) of cardinality `+1), what is the maximal difference that may be witnessed in the resourse utilisation? In order to be able to study this problem, define the ticket efficiency number E`(m,n; k) as E`(m,n; k) = ?`(m,n; k)??`?1(m,n; k). (7.1) Graphs of the parameter E`(m,n; k) against ` are shown in Figure 7.1 for specific values of the parameters m, n and k. The following question is posed. Question 7.8 What conclusion may be drawn (if any) about the efficiency of incomplete lottery sets by studying the ticket efficiency number E`(m,n; k) in (7.1), or a normalised version thereof, where 1 ? k ? n ? m as ` varies within the range 1 < ` ? L1(m,n; k)? It is intuitively expected that the value of E`(m,n; k), for any fixed m, n and k, will descrease as the cardinality of the L?(m,n; k)?sets increase (see, for example, Figure 7.1(a) or Table 5.1 for ?20, 4; 3? containing lower bounds on ?`(20, 4; 3) as a function of `), implying that E`(m,n; k) ? E`+1(m,n; k). However, this is not always the case, as may be seen in Figure 7.1(b) for the lotteries ?9, 3; 2? and ?10, 4; 3?, where E4(9, 3; 2) ? E5(9, 3; 2) and E6(10, 4; 3) ? E7(10, 4; 3). An understanding of this phenomenon perhaps requires some knowledge of the role of the relative divisibility between the parameters m, n, k and ` or familiarity with the finer aspects of set theory. It would also be interesting to establish growth patterns for E`(m,n; k) with respect to variations in the parameters m, n, k and ` (similar to those established for L?(m,n; k), ?`(m,n; k) and ??(m,n; k)). The complete lottery problem may be viewed in an alternative, generalised context to that posed in Definition 1.1. Suppose the governing body of a lottery is allowed to select a winning t?set randomly from Um, while a participant constructs a playing set consisting of n?sets from Um (recall the discussion 132 CHAPTER 7. CONCLUSIONS in Chapter 1, footnote 3). A k?prize is awarded if at least one of the participant?s n?sets has k elements in common with the winning t?set. This leads to the following more general, four?parameter complete lottery problem definition. Definition 7.1 (The four?parameter, complete lottery problem) Define a four?parameter, com- plete lottery set for ?m,n, t; k? as a subset L ? ?(Um, n) with the property that, for any element ?t ? ?(Um, t), there exists an element l ? L such that ?(?t, k) ? ?(l, k) 6= ?. The four?parameter, complete lottery problem is: What is the smallest possible cardinality of a four?parameter, complete lottery set L? Denote the answer to this question by the four?parameter, complete lottery number L(m,n, t; k). A four?parameter, complete lottery set L of minimum cardinality L(m,n, t; k) is called an L(m,n, t; k)? set for the lottery ?m,n, t; k?. In the case where n = t, the four?parameter, complete lottery number L(m,n, n; k) is equivalent to the complete lottery number L1(m,n; k), considered in this dissertation. With Definition 7.1 in mind, the following question is posed. Question 7.9 Is there a significant advantage (especially when considering upper bounds on the complete lottery number) in viewing the lottery problem in the generalised, four?parameter, complete context of Definition 7.1? The answer to the above question seems to be ?yes,? especially in view of the following recursive result [13]. Proposition 7.1 Let m, n, t, k, m1, m2, t1 and t2 be positive integers such that k ? t ? n ? m, m1 +m2 = m and t1 + t2 = t+ 1. Then L(m,n, t; k) ? L(m1, n, t1; k) + L(m2, n, t2; k). Of course, a generalisation of the four?parameter, complete lottery problem (in Definition 7.1) to an incomplete context (as considered for ?m,n; k? in this dissertation) is also possible. The decomposi- tion result of Proposition 7.1 spawns the following inquiry as to whether larger lotteries are essentially comprised of various smaller lotteries. Question 7.10 Let m = m1 +m2. Is it possible only to consider optimisation of playing sets that yield maximum resource utilisation for ?m1, n; k? and ?m2, n; k? separately when searching for L?(m,n; k)?sets in ?m,n; k?? A further generalisation of the incomplete lottery problem may also be explored, when considering the following alternative definition, which is motivated by work presented in [66] and by Bertolo, et al. [23] on the concept of the general covering number. Definition 7.2 (The {?, ?}?lottery problem) Define a {?, ?}?lottery set for ?m,n; k? as a subset L ? ?(Um, n) with the property that there exists some subset V? ? ?(Um, n) of cardinality at least??(m n )? such that, for any element ?n ? V?, there exists at least ? ? 1 elements {l1, . . . , l?} ? L such that ?(?n, k) ? ?(li, k) 6= ? (for all i = 1, . . . , ?). The {?, ?}?lottery problem is: What is the smallest possible cardinality of a {?, ?}?lottery set L? Denote the answer to this question by the {?, ?}?lottery number L??(m,n; k). A minimum cardinality {?, ?}?lottery set may be called an L??(m,n; k)?set for ?m,n; k?, while the {?, ?}?lottery characterisation number ???(m,n; k) would denote all structurally different L??(m,n; k)? sets. In this definition of the lottery problem, the participant is interested in at least ? ? 1 k?prizes (as opposed to the minimum constraint in Definition 1.2 of having at least 1 n?set from the participant?s playing set). In the case where ? = 1, the {1, ?}?lottery problem is equivalent to the incomplete lottery problem for ?m,n; k?, considered in this dissertation. A similar generalisation of the resource utilisation parameter ?`(m,n; k) may also be formulated using Definition 7.2. Of course, a generalisation involving a combination of Definitions 7.1 and 7.2 may also be interesting. It is obvious why the following proposition, relating the parameters L?(m,n; k) and L??(m,n; k), holds. 7.2. Possible future work 133 Proposition 7.2 Let m, n, k be positive integers such that 1 ? k ? n ? m for the lottery ?m,n; k?. For any 0 < ? ? 1 and ? ? 1, L?(m,n; k) ? L??(m,n; k). In view of this new lottery definition, the following question arises. Question 7.11 Is there any practical or combinatorial advantage in viewing the incomplete lottery and resource utilisation problems in the generalised, incomplete context as in Definition 7.2? Due to substantial evidence gathered in analytical arguments and algorithmic computations when deter- minating certain values of L?(m,n; k) (in Chapter 2), the following is conjectured. Conjecture 7.1 L?(m,n; k) = ?(mk). This conjecture is motivated by the fact that L?(m,n; 1) = ?(m) (Corollary 2.2) and L?(m,n;n) = ?(mn) (Theorem 2.3). Furthermore, in Proposition 6.1(b) it was shown that L1(m,n; k) = ?(m2) for all k ? 2. This bound is, however, considered conservative in the sense that it is expected to hold for general values of ? (implying that L?(m,n; 2) = ?(m2)). Question 7.12 Is it possible to prove Conjecture 7.1, or in the event that the claim is false, produce a counter example and give a valid asymptotic lower bound? In Chapter 6 the growth properties of the incomplete lottery characterisation number ??(m,n; k) was determined for variations of the parameters k and ?. However, the author was unable to establish the growth properties of ??(m,n; k) when the parameters m and n are varied, hence the formulation of Conjecture 6.1. This gives rise to the following question. Question 7.13 Is it possible to prove Conjecture 6.1? The lottery graph G?m,n; k? has a very symmetric structure (as already noted in ?3.3). Another in- teresting question surrounding the symmetry of G?m,n; k? realises in studying the core of G?m,n; k?. However, before continuing some preliminary theory and notation regarding graph cores are required. For any two graphs G = (VG , EG) and H = (VH, EH), a function h : VG 7? VH mapping the vertices of G to the vertices of H such that h(v) and h(u) are adjacent in H whenever v and u are adjacent in G, is called a homomorphism from G to H [92]. The existence of a homomorphism from G to H is denoted by G H. For example, the function h? : V (G5) 7? V (C3) = {u?1, u?2, u?3} where h?1(u?1) = {u1, u7}, h?1(u?2) = {u2, u4, u5} and h?1(u?3) = {u3, u6, u8} is a homomorphism from G5 (in Figure 3.3(b)) to C3, so that G5 C3. It is easy to see that every isomorphism is a homomorphism, although the converse is not always true. A graph G is called a core if any homomorphism from G onto itself is necessarily a bijection3 [104]. A vertex?induced subgraph G? of G (which is minimal with respect to graph inclusion) is called a core of G if G? is a core and G G?. A core G? of a graph G is called trivial if G ' G?. For the graph K8 in Figure 3.1(b), K?8 ' K8 is a trivial core, while G?5 ' C3 is a non?trivial core with a homomorphism from G5 to C3 given by h? : V (G5) 7? V (C3) for the graph G5 in Figure 3.3(b). It is possible to show, by means of a simple example, that G? 6' G? for a graph G, in general. Hell & Nes?etr?il [104] showed the following decision problem (for a general graph G that is not bi?partite) to be NP?complete: ?Given a graph G and a homomorphism from G toH, is G not a core?? However, known properties of the cores of the class of vertex?transitive graphs (which includes the subclass of lottery graphs G?m,n; k?) render the search for G?m,n; k?? more attractive. These properties are summarised in Theorem 7.1. 3This definition of a graph core differs from that given by Morgan & Slater [177] in 1980. Instead, the core of a graph G was defined there to be a path P, with the property of minimising dG(P) = Pv?V (G) dG(v,P), where dG(v,P) denotes the distance from any vertex v ? V (G) to the path P. 134 CHAPTER 7. CONCLUSIONS Lottery graph L1(m,n; k) Core of lottery graph G?m,n; k? = ?(G?m, n; k?) ` m n ? G?m, n; k?? ?(G?m,n; k??) |V ?G| G?4, 2; 1? 2 6 ' K3 1 3 G?5, 2; 1? 2 10 ' G?5, 2; 1? 2 10 G?6, 2; 1? 3 15 ' K5 1 5 G?6, 3; 1? 2 20 ' K10 1 10 G?6, 3; 2? 2 20 ' G?6, 3; 2? 2 20 G?7, 2; 1? 3 21 ' G?7, 2; 1? 3 21 G?7, 3; 1? 2 35 ' G?7, 3; 1? 2 35 G?7, 3; 2? 4 35 ' G?7, 3; 2? 4 35 G?8, 2; 1? 4 28 ' K7 1 7 G?8, 4; 1? 2 70 ' K35 1 35 G?9, 2; 1? 4 36 ' G?9, 2; 1? 4 36 G?10, 2; 1? 5 45 ' K9 1 9 Table 7.1: The core of the lottery graph G?m,n; k?, denoted by G?m,n; k??, for some small values of the parameters 1 ? k < n < m ? 10 and n ? bm2 c. Theorem 7.1 (The core of a vertex?transitive graph [92]) Suppose the simple graph G = (VG , EG) is vertex?transitive with core given by G? = (V ?G , E?G). Then (1) G? is unique (up to isomorphism), vertex?induced and vertex?transitive; (2) |V ?G | divides |VG |; and (3) G? is a trivial core if |VG | is prime. It is possible, by using parent?child search tree algorithms (for example) to (1) determine all possible vertex?induced subgraphs H = (VH, EH) of G?m,n; k? such that |H| divides( m n ) ; and (2) determine whether V (G?m,n; k?) VH (i.e., there exists a mapping from the elements of ?(Um, n) in G?m,n; k? to VH). The core, G?m,n; k??, of some lottery graphs could be determined (see Table 7.1). Figure 7.2 shows the construction of a search tree referred to in (1) above, employed to determine G?5, 2; 1?? as an example. What is interesting to note from G?m,n; k??, however, is the apparent relationship between ?(G?m,n; k?) and ?(G?m,n; k??). The circumstantial evidence of this relationship leads to the final two questions. Question 7.14 Is it true, for the lottery ?m,n; k?, that ?(G?m,n; k??) |VG| = ?(G?m,n; k?) |V ?G|, where G?m,n; k? = (VG, EG) [G?m,n; k?? = (V ?G, E?G)] denotes the lottery graph [core]? In terms of the lottery graph parameters, this question may be reformulated as follows. Is it true that L1(m,n; k) = 1 c ? ?? ? ?(G?m,n; k??) |V ?G| ( m n ) (7.2) for all 1 ? k ? n ? m? If it were possible to answer Question 7.14 in the affirmative, then instead of attempting to find a dominating set for G?m,n; k? (or equivalently, determining the complete lottery number L1(m,n; k)), one could focus on determining ?(G?m,n; k??) of the core of the lottery graph G?m,n; k? (which is potentially much smaller than G?m,n; k? itself) and utilise (7.2) to yield the exact value of L1(m,n; k). Question 7.15 Is the core G?m,n; k?? of the lottery graph G?m,n; k? either a trivial core or isomorphic to Kc for some c ? 3? In fact, if this were the case, then it would be possible to map disjoint sets of (m n )/ c vertices in G?m,n; k? to G?m,n; k??. 7.2. Possible future work 135 ? ?????? ??? ? ? ? ???? ??? ? ???? ??? ? ? ?????? ??? ? ?????? ??? ????? ??? ? ? ?????? ??? ? ? ? ?????? ??? ? ????? ??? ? ? ?????? ??? ? ????? ??? ? ? ?????? ??? ? ????? ??? ? ???? ??? ? ???? ??? ? ? ?????? ??? ? ?????? ??? ? ? ???? ??? ? ? ? ?????? ??? ? ? ? ? ?????? ??? ? ? ? ? ?????? ??? ? ? ????? ??? ? ? ???? ??? ? ? ???? ??? ? ? ???? ??? ? ????? ??? ? ? ???? ??? ? ????? ??? ? ? ? ?????? ??? ? ? ? ???? ??? ? ? ? ?????? ??? ? ? ? ???? ??? ? ? ???? ??? ? ?? ?????? ??? ? ? ? ? ?????? ??? ? ? ?? ?????? ??? ? ? ? ???? ??? ? ? ? ?????? ??? ? ? ? ???? ??? ? ????? ??? ? ? ???? ??? ? ????? ??? ? ? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? ??????????? Figure 7.2: A graphical example of a parent?child search tree algorithm for determining a core, G?5, 2; 1??, for G?5, 2; 1?. Level i of the search tree contains all possible non?isomorphic selections (when using nauty to discard isomorphisms) of i vertices from G?5, 2; 1?. These vertex?induced subgraphs (of order i in G?5, 2; 1?) are obtained from the parent vertex by adding one possible vertex to the parent vertex?induced subgraph. The dark coloured vertices (and edges) in G?5, 2; 1? denote the vertex?induced subgraph, while the encircled vertex depicts the new vertex addition from the parent vertex?induced subgraph. For completeness, the top left?hand corner of each node contains a label of the form Gs?Lt?. This indicates the lottery graph G?5, 2; 1? with a (vertex?induced) subgraph of order s = |Lt| induced by the elements of Lt. In some instances, nauty was able to find isomorphic representations of vertex?induced subgraphs, which are labelled in the top right?hand corner of each node in the search tree. No further search is therefore necessary down this branch of the search tree. Only the bold emboxed nodes in the search tree (G2?L2? and G5?L26? in this case) represent unique, regular, vertex?induced subgraphs of order s (> 1) such that s | (52)= 10 that need to be considered for homomorphism testing (i.e., whether V (G?5, 2; 1?) V (G |Lt|?Lt?) for t = 2 and 26). 136 CHAPTER 7. CONCLUSIONS References [1] AB Svenska Spel, Fo?rstasidan, [Online], [cited 2002, March 7], Available from: http://www.svenskaspel.se/ [2] Acmec, Sport Toto, [Online], [cited 2002, March 8], Available from: http://www.sportstoto.com.my/ [3] RB Allan, R Laskar & S Hedetniemi, A note on total domination, Discrete Mathematics, 49 (1984), pp. 7?13. [4] Alberta Lottery Fund, Alberta Lottery Fund, [Online], [cited 2003, November 2003], Available from: http://albertalotteryfund.ca/ [5] Amtec.net, Loter??e de Concepcio?n, [Online], [cited 2002, March 7], Available from: http://www.loteria.cl/ [6] An Post National Lottery Company, Lotto Results, [Online], [cited 2002, November 5], Available from: http://www.lotto.ie/ [7] Arizona Lottery, Arizona Lottery, [Online], [cited 2001, November 14], Available from: http://www.arizonalottery.com/ [8] VI Arnautov, Estimation of the exterior stability number of a graph by means of the minimal degree of the vertices (Russian), Prikladnaya Matematika i Programmirovanie, 11 (1974), pp. 3?8, 126. [9] Artagon, Perlas, [Online], [cited 2002, April 16], Available from: http://www.olifeja.lt/ [10] D Atkins, M Graff, AK Lenstra & PC Leyland, The Magic Words are Squeamish Ossifrage, pp. 263?277 in J Pieprzyk & R Safavi?Naini (Eds): Advances in Cryptology ? ASIACRYPT ?94, Lecture Notes in Computer Science, 917, (1995). [11] Atlantic Lottery Corporation Inc., Atlantic Lottery Corporation, [Online], [cited 2002, March 7], Available from: http://www.alc.ca/ [12] A Barak, MOSIX, [Online], [cited 2002, November 25], Available from: http://www.mosix.org/ [13] JA Bate, A Generalized Covering Problem, PhD dissertation, University of Manitoba, Canada, (1978). [14] JA Bate & RG Stanton, A survey of (2, 2, L, V ) designs, Congressus Numerantium, 31 (1981), pp. 3?15. [15] JA Bate & RG Stanton, Some algorithmic results on (2, 3, 3, v) designs and (2, 4, 4, v) designs, Utilitas Mathematica, 20 (1981), pp. 195?220. [16] JA Bate, PC Li & GHJ van Rees, Finally C(19, 6, 2) = 15, Congressus Numerantium, 141 (2002), pp. 95?102. [17] JA Bate & GHJ van Rees, Lotto Designs, Journal of Combinatorial Mathematics and Combi- natorial Computing, 28 (1998), pp. 15?39. 137 138 References [18] Belgian National Lottery, Belgian National Lottery, [Online], [cited 2002, March 6], Available from: http://www.loterie-nationale.be/ or http://www.nationale-loterij.be/ [19] R Belic, Lotto Systems and Toto Systems to win Wheel Game, [Online], [cited 2002, April 23], Available from: http://www.xs4all.nl/~rbelic/ [20] C Berge, Graph Theory, American Mathematical Monthly, 71 (1964), pp. 471?480. [21] C Berge, Graphs and Hypergraphs, North?Holland, Amsterdam, (1973). [22] C Berge, Theory of Graphs and its Applications, Methuen, London, (1962). [23] R Bertolo, I Bluskov & H. Ha?ma?la?inen, Upper Bounds on the General Covering Number C?(v, k, t,m), preprint (2003). [24] The Bible Gateway, Bible Gateway, [Online], [cited 2002, March 27], Available from: http://www.biblegateway.net/ [25] L Biegler, A Ragunathan, Y Lang, V De Smedt, M Galati, F Margot, M Saltzman & V Austel, COmputational INfrastructure for Operations Research, [Online], [cited 2004, Septem- ber 10], Available from: http://oss.software.ibm.com/developerworks/opensource/coin/ [26] I Bluskov, M Greig & K Heinrich, Infinite Classes of Covering Numbers, Canadian Mathe- matical Bulletin, 43(4) (2000), pp. 385?396. [27] I Bluskov & H Ha?ma?la?inen, New Upper Bounds on the Minimum Size of Covering Designs, Journal of Combinatorial Designs, 6(1) (1998), pp. 21?41. [28] I Bluskov & K Heinrich, General Upper Bounds on the Minimum Size of Covering Designs, Journal of Combinatorial Theory Series A, 86(2) (1999), pp. 205?213. [29] RE Bradley, Euler and the Genoese Lottery, [Online], [cited 2002, March 2], NEC Research Institute, Research Index [NEC Research Institute, Citeseer, Computer Science], Available from: http://www.citeseer.nj.nec.com/cs/ [30] BrainyMedia.com, Famous Quotes and Quotations at BrainyQuote, [Online], [cited 2004, De- cember 14], Available from http://www.brainyquote.com/ [31] RC Brigham & RD Dutton, A Compilation of Relations between Graph Invariants, Networks, 15(1) (1985), pp. 73?107. [32] British Columbia Lottery Corporation, BC Lottery, [Online], [cited 2002, March 7], Avail- able from: http://www.bclc.com/ [33] AE Brouwer, Block Designs, pp. 693?745 in RL Graham, M Gro?tschel & L Lova?sz (Eds): Handbook of Combinatorics ? Volume 1, The MIT Press, North?Holland, (1995). [34] AE Brouwer, On the packing of quadruples without common triples, Ars Combinatoria, 5 (1978), pp. 3?6. [35] AE Brouwer, Packing and Covering of (kt)?sets, pp. 89?97 in A Schrijver (Ed): Packing and Covering in Combinatorics, Mathematisch Centre Tracts, 106, Mathematisch Centrum, Amster- dam, (1979). [36] AE Brouwer, Some lotto numbers from an extension of Tura?n?s theorem, Mathematisch Centrum Report, Amsterdam, (1981). [37] AE Brouwer & M Voorhoeve, Tura?n theory and the Lotto problem, pp. 99?105 in A Schri- jver (Ed): Packing and Covering in Combinatorics, Mathematisch Centre Tracts, 106, Mathe- matisch Centrum, Amsterdam, (1979). [38] AP Burger, WR Gru?ndlingh & JH van Vuuren, On the Optimality of Belic?s Lottery Designs, to appear in Journal of Combinatorial Mathematics and Combinatorial Computing. References 139 [39] AP Burger, WR Gru?ndlingh & JH van Vuuren, Towards a Characterisation of Lottery Set Overlapping Structures, to appear in Ars Combinatoria. [40] Camelot Group plc, The Official National Lottery Web Site, [Online], [cited 2002, March 7], Available from: http://www.national-lottery.co.uk/ [41] PJ Cameron, Combinatorics: Topics, Techniques, Algorithms, Cambridge University Press, Lon- don, (1994), pp. 43?44. [42] M Capobianco & JC Molluzzo, Examples and Counterexamples in Graph Theory, Elsevier North?Holland, Inc., New York, (1978), pp. 89?101. [43] Y Caro & Y Roditty, On the vertex?independence number and star decomposition of graphs, Ars Combinatoria, 20 (1985), pp. 167?180. [44] Center for Communications Research, CCR La Jolla Home Page, [Online], [cited 2002, April 20], Available from: http://www.ccrwest.org/ [45] G Chartrand & OE Oellermann, Applied Algorithmic Graph Theory, McGraw?Hill, New York, (1993). [46] B Chen & S Zhou, Domination number and neighbourhood conditions, Discrete Mathematics, 195 (1999), pp. 81?91. [47] A Chesneau, La Franc?aise des jeux, [Online], [cited 2002, March 6], Available from: http://www.francaise-des-jeux.fr/ [48] China Lottery, China Lottery, [Online], [cited 2002, March 11], Available from: http://www.cp168.com/ [49] WE Clark, DC Fisher, B Shekhtman & S Suen, Upper bounds for the domination number of a graph, Congressus Numerantium, 132 (1998), pp. 99?123, or [Online], [cited 2002, March 2], NEC Research Institute, Research Index [NEC Research Institute, Citeseer, Computer Science], Available from: http://www.citeseer.nj.nec.com/cs/ [50] CJ Colbourn, Winning the Lottery, pp. 578?584 in CJ Colbourn (Ed): The CRC Handbook of Combinatorial Designs, CRC Press, Boca Raton, (1996). [51] Connecticut Lottery Corporation, CT Lottery, [Online], [cited 2001, November 14], Avail- able from: http://www.ctlottery.org/ [52] D Cvetkovic?, P Rowlinson & S Simic?, Eigenspaces of graphs, Cambridge University Press, Cambridge, (1997), pp. 171?177. [53] Dansk Tipstjeneste AS, Dansk Tipstjeneste, [Online], [cited 2002, March 6], Available from: http://www.tips.dk/ [54] Data Conversion Solutions, Inc., Colorado Lottery and Powerball Drawing Results, [Online], [cited 2002, March 8], Available from: http://www.colotto.com/ [55] Datacall Services Pty Ltd., Irish Lottery Syndicates, [Online], [cited 2002, March 6], Available from: http://www.irishlotto.net/ [56] R Davies & GF Royle, Graph domination, tabu search and the football pool problem, Discrete Mathematics, 74 (1997), pp. 217?228. [57] J Davis, Official Site For Garfield And Friends, [Online], [cited 2003, November 1], Available from: http://www.garfield.com/ [58] DC Lottery, DC Lottery, [Online], [cited 2004, January 30], Available from: http://www.dclottery.com/ [59] D de Caen, Extension of a theorem of Moon and Moser on complete subgraphs, Ars Combinatoria, 16 (1983), pp. 5?10. 140 References [60] D de Caen, DL Kreher, SP Radziszowski & WH Mills, On the covering of t?sets with (t+ 1)?sets: C(9, 5, 4) and C(10, 6, 5), Discrete Mathematics, 92(1?3) (1991), pp. 65?77. [61] G de l?Hopital, L?analyse des infiniment petits pour l?intelligence des lignes courbes, 1696. [62] HM Deitel & PJ Deitel, C++ How to program, Prentice?Hall International, Inc., London, (1994). [63] DeLotto, Lotto, [Online], [cited 2002, March 7], Available from: http://www.lotto.nl/ [64] Departamento de Administrac?a?o de Loterias, Caixa Econo?mica Federal, [Online], [cited 2002, March 6], Available from: http://www.caixa.gov.br/ [65] JW Di Paola, Block Designs and Graph Theory, Journal of Combinatorial Theory, 1 (1966), pp. 132?148. [66] JH Dinitz & DR Stinson (Eds), Contemporary Design Theory: A Collection of Surveys, John Wiley & Sons, Inc., New York, (1992). [67] Direccion Nacianal de Loterias y Quinielas, Loteria Uruguaya, [Online], [cited 2002, March 11], Available from: http://www.loteria.gub.uy/ [68] F Droesbeke & M Lore?a, On the lotto problem, European Journal of Operational Research, 11(1) (1982), pp. 21?25. [69] Dynamic Site Framework, Pennsylvania Lottery, [Online], [cited 2001, November 14], Available from: http://www.palottery.com/ [70] Ejecutivo Nacional Ministerio de Desarrollo Social y Medio, Loter??a Nacional So- ciedad del Estado de la Repu?blica Argentina, [Online], [cited 2002, March 9], Available from: http://www.loteria-nacional.gov.ar/ [71] P Erdo?s & H Hanani, On a limit theorem in combinatorial analysis, Publicationes Mathematicae Debrecen, 10 (1963), pp. 10?13. [72] P Erdo?s & J Spencer, Probabilistic Methods in Combinatorics: Probability and Mathematical Statistics, 17, Academic Press, New York, (1974). [73] European Lottery Guild, ?1 Billion Pounds to be awarded soon, pp. 76?77 in M Jones (Ed): High Life, Cedar Communications Ltd., London, September (2002). [74] O Favaron, Least domination in a graph, Discrete Mathematics, 150 (1996), pp. 115?122. [75] JA Feldman & DH Ballard, Connectionist models and their properties, Cognitive Science, 6 (1982), pp. 205?254. [76] P Flach & L Volkmann, Estimations for the domination number of a graph, Discrete Mathe- matics, 80 (1990), pp. 145?151. [77] Florida State Lottery, Florida Lottery, [Online], [cited 2001, November 14], Available from: http://www.flalottery.com/ [78] A Fog, Pseudo?random number generators, [Online], [cited 2004, August 27], Available from: http://www.agner.org/random/ [79] MK Fort, Jr & GA Hedlund, Minimal coverings of pairs by triples, Pacific Journal of Mathe- matics, 8 (1958), pp. 709?719. [80] C Fougo, SCML ? Departamento de Jogos, [Online], [cited 2002, March 7], Available from: http://www.djogos.misericordiadelisboa.pt/ [81] Free Software Foundation, GLPK ? GNU Project ? Free Software Foundation (FSF), [On- line], [cited 2004, September 21], Available from: http://www.gnu.org/software/glpk/ References 141 [82] J Fulman, A generalization of Vizing?s theorem on domination, Discrete Mathematics, 126 (1994), pp. 403?406. [83] Z Fu?redi, GJ Sze?kely & Z Zubor, On the lottery problem, Journal of Combinatorial Designs, 4(1) (1996), pp. 5?10. [84] Future Protocol, Inc., The Texas Lottery Commission, [Online], [cited 2001, November 14], Available from: http://www.txlottery.org/ [85] M Gardner, A New Kind of Cipher That Would Take Millions of Years to Break, Scientific American, August (1977), pp. 120?124. [86] Geocities, Hong Kong Mark Six Lotto Statistics, Lottery Results, Wheels, Online Lotteries, [On- line], [cited 2002, March 30], Available from: http://www.geocities.com/www lottery lotto/ [87] Georgia Lottery Corporation, Georgia Lottery Corporation, [Online], [cited 2001, November 14], Available from: http://www.galottery.com/ [88] J Glenn Brookshear, Theory of Computation: Formal Languages, Automata, and Complexity, The Benjamin/Cummings Publishing Company, Inc., New York, (1989), pp. 239?286. [89] F Glover, Future paths for Integer Programming and links to Artificial Intelligence, Computers & Operations Research, 13(5) (1986), pp. 533?549. [90] F Glover, Heuristics for Integer Programming using surrogate constraints, Decision Sciences, 8 (1977), pp. 156?166. [91] AP Godbole, SE Thompson & E Vigoda, General Upper Bounds for Covering Numbers, Ars Combinatoria, 42 (1996), pp. 211?221. [92] C Godsil & G Royle, Algebraic Graph Theory, Springer?Verlag, New York, (2001), pp. 1?18, 33?58, 103?134. [93] Golden Casket Lottery Corporation Limited, Golden Casket, [Online], [cited 2002, March 6], Available from: http://www.goldencasket.com/ [94] DM Gordon, G Kuperberg & O Patashnik, New Constructions for Covering Designs, Journal of Combinatorial Designs, 3(4) (1995), pp. 269?284. [95] M Greig, PC Li & GHJ van Rees, Covering Designs on 13 Blocks Revisited, preprint (2004). [96] RP Grimaldi, Discrete and Combinatorial Mathematics: An Applied Introduction (3rd ed), Addison?Wesley Publishing Company, Reading, (1994), pp. 293?296, 529?606. [97] J Gross & J Yellen, Graph Theory and its Applications, CRC Press, London, (1999), pp. 441?447, 492. [98] WR Gru?ndlingh & JH van Vuuren, Lottery Repository, [Online], [cited 2003, December 25], Available from: http://dip.sun.ac.za/vuuren/lottery/ [99] H Hanani, D Ornstein & VT So?s, On the lottery problem, Magyar Tudomanyos Akademia Alkamazott Matematikai Kutato? Intezetenek Ko?zlemenyei, 9 (1964), pp. 155?158. [100] J Harant, A Pruchnewski & M Voight, On Dominating Sets and Independent Sets of Graphs, Combinatorics, Probability and Computing, 11 (1993), pp. 1?10. [101] F Harary, Graph Theory, Addison?Wesley Publishing Company, London, (1969), pp. 160?165. [102] N Hartsfield & G Ringel, Pearls in Graph Theory ? A Comprehensive Introduction, Academic Press, Inc., Boston, (1990), pp. 1?22. [103] TW Haynes, ST Hedetniemi & PJ Slater, Fundamentals of Domination in Graphs, Marcel Dekker, Inc., New York, (1998). 142 References [104] P Hell & J Nes?etr?il, The core of a graph, Discrete Mathematics, 109(1?3) (1992), pp. 117?126. [105] MA Henning, Graphs with least domination number three?fifths their order, Discrete Mathemat- ics, 216 (2000), pp. 153?168. [106] Hoosier Lottery, Hoosier Lottery, [Online], [cited 2004, January 30], Available from: http://www.in.gov/hoosierlottery/ [107] JD Horton, RC Mullin & RG Stanton, Minimal coverings of pairs by quadruples, Congressus Numerantium, 3 (1971), pp. 495?516. [108] Hrvatska Lutrija d.o.o., Hrvatska Lutrija d.o.o., [Online], [cited 2002, April 16], Available from: http://www.lutrija.hr/ [109] HYPERTECH, KA???OPI?ATE ?THN O?A? AE, [Online], [cited 2002, March 8], Available from: http://www.opap.gr/ [110] Idaho State Lottery, Idaho Lottery, [Online], [cited 2001, November 14], Available from: http://www.idaholottery.com/ [111] Illinois State Lottery, Illinois Lottery, [Online], [cited 2001, November 14], Available from: http://www.illinoislottery.com/ [112] Integer Midwest, The Iowa Lottery, [Online], [cited 2004, January 30], Available from: http://www.ialottery.com/ [113] Interlotto World, Interlotto.com?Lotto and Lottery results online gambling, [Online], [cited 2002, March 6], Available from: http://www.interlotto.com/ [114] Internet Infidels, On the Origin of Species, [Online], [cited 2002, November 12], Available from: http://www.infidels.org/library/historical/charles darwin/origin of species/ [115] IPSS, www.ipss.net, [Online], [cited 2002, March 30], Available from: http://www.ipss.net/ [116] Islensk Getspa?, ??slensk Getspa?, [Online], [cited 2002, March 6], Available from: http://www.lotto.is/ [117] Israeli Lottery, Mazal Israel ? The Israeli Lottery, [Online], [cited 2002, March 8], Available from: http://www.mazalisrael.com/ [118] Jamaica Lottery Company Limited, Jamaica Lottery Company Limited, [Online], [cited 2002, March 7], Available from: http://www.jamaicalottery.com/ [119] R Jans, Problem 326, Statistica Neerlandica, Problem Section, 50(2) (1996), p. 331 and 52(2) (1998), pp. 249?251. [120] Japan Lottery Association, TAKARA?KUJI ? Japanese Lottery, [Online], [cited 2002, March 6], Available from: http://www.takarakuji.nippon-net.ne.jp/ [121] Jel Productions, California Lottery, [Online], [cited 2001, November 14], Available from: http://www.calottery.com/ [122] R Johnsonbaugh, Discrete Mathematics, Collier Macmillan Publishers, London, (1990), pp. 314? 324. [123] JG Kalbfleisch & RG Stanton, Maximal and minimal coverings of (k?1)?tuples by k?tuples, Pacific Journal of Mathematics, 26 (1968), pp. 131?140. [124] Kansas State Lottery, Kansas Lottery, [Online], [cited 2001, November 14], Available from: http://www.kslottery.com/ [125] RM Karp, Reducibility among combinatorial problems, Complexity of Computer Computations, Plenum, New York, (1972), pp. 85?103. References 143 [126] Kentucky Lottery Corporation, Kentucky Lottery Corporation, [Online], [cited 2001, November 14], Available from: http://www.kylottery.com/ [127] DE Knuth, Combinatorial Matrices, pp. 177?186 in DE Knuth: Selected Papers on Discrete Mathematics, CLSI Lecture Notes, 106, CSLI, California, (2003), or [Online], [cited 2004, July 1], Available from: http://www-cs-faculty.stanford.edu/?knuth/ [128] T Kohonen, Self?organised formation of topologically correct feature maps, Biological Cybernetics, 43 (1982), pp. 59?69. [129] T Kohonen, Self?organisation and associative memory, Springer?Verlag, Berlin, (1984). [130] B Kro?se & P van der Smagt, An introduction to Neural Networks (8th ed), University of Amsterdam, November (1996). [131] ER Lamken, WH Mills, RC Mullin & SA Vanstone, Covering of pairs by quintuples, Journal of Combinatorial Theory Series A, 44(1) (1987), pp. 49?68. [132] JJ Lewis, Wisdom Quotes, [Online], [cited 2004, March 24], Available from: http://www.wisdomquotes.com/ [133] PC Li, Ben Li?s Lotto Tables Page, [Online], [cited 2002, April 23], Available from: http://www.cs.umanitoba.ca/?lipakc/lottotables.html [134] PC Li, Some Results on Lotto Designs, PhD dissertation, University of Manitoba, Canada, (1999), or [Online], [cited 2004, October 22], Available from http://www.cs.umanitoba.ca/?lipakc/ [135] PC Li & GHJ van Rees, Determination of C(17, 10, 3), Technical Report TR?02?03, Department of Computer Science, University of Manitoba, Canada, (2002). [136] PC Li & GHJ van Rees, Lotto Design Tables, Journal of Combinatorial Designs, 10(5) (2002), pp. 335?359. [137] PC Li & GHJ van Rees, Lower Bounds on Lotto Designs, Congressus Numerantium, 141 (1999), pp. 5?30. [138] PC Li & GHJ van Rees, New Constructions of Lotto Designs, Utilitas Mathematica, 58 (2000), pp. 45?64. [139] LINDO Systems, Inc., LINGO, [Online], [cited 2002, March 4], Available from: http://www.lindo.com/ [140] Loter??a Electro?nica de Puerto Rico, Loter??a Electro?nica de Puerto Rico, [Online], [cited 2002, March 25], Available from: http://www.loteriaelectronicapr.com/ [141] Loterias.com, LOTERIA, Spanish Gordo, [Online], [cited 2002, March 22], Available from: http://www.loterias.com/ [142] Loto?Que?bec, Portail de Loto?Que?bec, [Online], [cited 2002, March 7], Available from: http://www.loto-quebec.com/ [143] Lotteries Commission South Australia, SA Lotteries, [Online], [cited 2002, March 6], Avail- able from: http://www.salotteries.sa.gov.au/ [144] Lotteries Commission Western Australia, Lotteries Commission WA? Corporate and Community Funding, [Online], [cited 2002, March 6], Available from: http://www.lottery.wa.gov.au/ [145] Lottomatica, Lottomatica, [Online], [cited 2002, March 7], Available from: http://www.lottomatica.it/ [146] Louisiana State Lottery, Louisiana Lottery Corporation, [Online], [cited 2001, November 14], Available from: http://www.louisianalottery.com/ 144 References [147] L Lova?sz, On the ratio of optimal integral and fractional covers, Discrete Mathematics, 13 (1975), pp. 383?390. [148] U Manber, Introduction to Algorithms: A Creative Approach, Addison?Wesley Publishing Com- pany, Reading, Massachusetts, (1989), pp. 341?374. [149] Manitoba Lotteries Corporation, Manitoba Lotteries Corporation, [Online], [cited 2003, November 1], Available from: http://www.mlc.mb.ca/ [150] Maryland State Lottery, The Maryland State Lottery, [Online], [cited 2001, November 14], Available from: http://www.msla.state.md.us/ [151] D Marcu, A new upperbound for the domination number of a graph, Quarterly Journal of Math- ematics Oxford (2), 36 (1985), pp. 221?223. [152] D Marcu, An upperbound on the domination number of a graph, Mathematica Scandinavica, 59(1) (1986), pp. 41?44. [153] GE Martin, Counting: The Art of Enumerative Combinatorics, Springer?Verlag, New York, (2001), pp. 27?31. [154] Massachusetts State Lottery Commission, Massachusetts State Lottery Commission, [On- line], [cited 2001, November 14], Available from: http://www.masslottery.com/ [155] W McCuaig & B Shepherd, Domination in Graphs with Minimum Degree Two, Journal of Graph Theory, 13(6) (1989), pp. 749?762. [156] WS McCulloch & W Pitts, A logical calculus of the ideas immanent in nervous activity, Bulletin of Mathematical Biophysics, 5 (1943), pp. 115?133. [157] E McI (Ed), The Concise Oxford Dictionary, Oxford University Press, Oxford, (1950). [158] BD McKay, Practical graph isomorphism, Congressus Numerantium, 30 (1981), pp. 45?87 or [Online], [cited 2004, October 21], Available from http://cs.anu.edu.au/?bdm/nauty/PGI/ [159] BD McKay, The autoson page, [Online], [cited 2004, June 29], Available from: http://cs.anu.edu.au/?bdm/autoson/ [160] BD McKay, The nauty page, [Online], [cited 2004, August 27], Available from: http://cs.anu.edu.au/?bdm/nauty/ [161] Z Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs (3rd ed), Springer? Verlag, Berlin, (1999). [162] Z Michalewicz & DB Fogel, How to Solve It: Modern Heuristics, Springer?Verlag, Berlin, (2000), pp. 115?134, 139?155. [163] Michigan State Lottery, LOTTERY, [Online], [cited 2001, November 14], Available from: http://www.michigan.gov/lottery/ [164] Milli Piyango, Milli Piyango, [Online], [cited 2002, March 8], Available from: http://www.millipiyango.gov.tr/ [165] WH Mills, A covering of pairs by quintuples, Ars Combinatoria, 18 (1984), pp. 21?31. [166] WH Mills, Covering designs I: Covering by a small number of subsets, Ars Combinatoria, 8 (1979), pp. 199?315. [167] WH Mills, Covering Problems, Congressus Numerantium, 8 (1983), pp. 23?52. [168] WH Mills, On the covering of pairs by quadruples I, Journal of Combinatorial Theory Series A, 13 (1972), pp. 55?78. References 145 [169] WH Mills, On the covering of pairs by quadruples II, Journal of Combinatorial Theory Series A, 15 (1973), pp. 138?166. [170] WH Mills, On the Covering of Triples by Quadruples, Congressus Numerantium, 10 (1974), pp. 563?581. [171] WH Mills, The covering number C(11, 5, 3), Utilitas Mathematica, 41 (1992), p. 63. [172] WH Mills & RC Mullin, Covering pairs by quintuples: The case v congruent to 3 (mod 4), Journal of Combinatorial Theory Series A, 49(2) (1988), pp. 308?322. [173] Minnesota State Lottery, Minnesota State Lottery, [Online], [cited 2001, November 14], Avail- able from: http://www.lottery.state.mn.us/ [174] M Minsky & S Papert, Perceptrons: An Introduction to Computational Geometry, The MIT Press, (1969). [175] Missouri State Lottery, Missouri Lottery, [Online], [cited 2001, November 14], Available from: http://www.molottery.state.mo.us/ [176] Montana Lottery and Scientific Games International, Montana Lottery Official Web Site, [Online], [cited 2001, November 14], Available from: http://www.montanalottery.com/ [177] CA Morgan & PJ Slater, A linear algorithm for a core of a tree, Journal of Algorithms, 1(3) (1980), pp. 247?258. [178] M Morley & GHJ van Rees, Lottery Schemes and Covers, Utilitas Mathematica, 37 (1990), pp. 159?166. [179] Narodna Lutrija Jugoslavija, Narodna Lutrija, [Online], [cited 2002, March 7], Available from: http://www.yulottery.co.yu/ [180] NASPL, North American Association of State & Provincial Lotteries, [Online], [cited 2002, March 22], Available from: http://www.naspl.org/ [181] National Lottery, National Lottery, [Online], [cited 2002, February 22], Available from: http://nationallottery.co.za/ [182] National Lottery Board of the Republic of Kazakhstan, www.kazlotto.com, [Online], [cited 2002, March 11], Available from: http://www.kazlotto.com/ [183] Nebrask@Online, Nebraska Lottery, [Online], [cited 2001, November 14], Available from: http://www.nelottery.com/ [184] New Hampshire Sweepstakes Commission, New Hampshire Lottery, [Online], [cited 2001, November 14], Available from: http://www.state.nh.us/lottery/nhlotto.htm [185] New Jersey Sate Lottery, New Jersey Lottery, [Online], [cited 2001, November 14], Available from: http://www.state.nj.us/lottery/ [186] New Mexico Lottery, Welcome to the New Mexico Lottery, [Online], [cited 2004, January 30], Available from: http://www.nmlottery.com/ [187] New York Lottery, New York Lottery, [Online], [cited 2001, November 14], Available from: http://www.nylottery.org/ [188] Nikat.com, LuckyIndia.com, [Online], [cited 2002, March 8], Available from: http://www.luckyindia.com/ [189] The Nobel Foundation, Nobel e?Museum, [Online], [cited 2004, June 2], Available from: http://www.nobel.se/ [190] K Nonobe & T Ibaraki, A tabu search approach to the constraint satisfaction problem as a general problem solver, European Journal of Operational Research, 106 (1998), pp. 599?623. 146 References [191] Norsk Tipping AS, Norsk Tipping, [Online], [cited 2002, March 7], Available from: http://www.norks-tipping.no/ [192] NSW Lotteries Corporation, NSW?Lotteries, [Online], [cited 2002, March 6], Available from: http://www.nswlotteries.com.au/ [193] KJ Nurmela & PRJ ?Osterg?ard, Constructing Covering Designs by Simulated Annealing, Technical Reports, Series B, 10, Digital Systems Laboratory, Helsinki University of Technology, Helsinki, (1993). [194] KJ Nurmela & PRJ ?Osterg?ard, Upper Bounds for Covering Designs by Simulated Annealing, Congressus Numerantium, 96 (1993), pp. 93?111. [195] NZPages Limited, The New Zealand Lotto Results, [Online], [cited 2002, April 23], Available from: http://lotto.nzpages.net.nz/ [196] Ohio Lottery Commission, Ohio Lottery, [Online], [cited 2001, November 14], Available from: http://www.ohiolottery.com/ [197] O Ore, Theory of Graphs, American Mathematical Society Colloquium Publications, 38 (1962), pp. 206?223, 259?261. [198] Oregon Lottery, Oregon Lottery Web Center, [Online], [cited 2001, November 14], Available from: http://www.oregonlottery.org/ [199] PRJ ?Osterg?ard, Constructing covering codes by tabu search, Journal of Combinatorial Designs, 5(1) (1997), pp. 71?80. [200] ?Osterreichische Lotterien Gesellschaft m.b.H., ?Osterreichische Lotterien, [Online], [cited 2002, March 6], Available from: http://www.lotterien.at/ [201] JI Panalo, Philippine Lotto Central, [Online], [cited 2002, March 6], Available from: http://www.lottocentral.net/ [202] CH Papadimitriou & K Steiglitz, Combinatorial Optimization: Algorithms and Complexity, Dover Publications, Inc., New York, (1998), pp. 406?432. [203] C Payan, Sur le nombre d?absorption d?un graphe simple (French), Cahiers du Centre d??Etudes de Recherche Op?erationnelle, 17 (1975), pp. 307?317. [204] M Pirlot, General local search methods, European Journal of Operational Research, 92 (1996), pp. 493?511. [205] Public Lotto Department, MALTA, Malta Lotteries, [Online], [cited 2002, March 25], Avail- able from: http://www.maltalotteries.com/ [206] QuoteDB, Quote DB ? The Quotations Database, [Online], [cited 2004, December 13], Available from: http://www.quotedb.com/ [207] B Randerath & L Volkmann, Characterization of graphs with equal domination and covering number, Discrete Mathematics, 191 (1998), pp. 159?169. [208] BA Reed, Paths, stars and the number three, Combinatorics, Probability and Computing, 5(3) (1996), pp. 277?295. [209] Rhode Island Lottery, RI Lottery, [Online], [cited 2001, November 14], Available from: http://www.rilot.com/ [210] R Rivest, A Shamir & L Adleman, On Digital Signatures and Public?Key Cryptosystems, Technical Memo, 82, Laboratory for Computer Science, Massachusetts Institute of Technology (MIT), April (1977). [211] DK Roberts, Maine State Lottery, [Online], [cited 2001, November 14], Available from: http://www.mianelottery.com/ References 147 [212] G Robins, Good Quotations by Famous People, [Online], [cited, March 11], Available from: http://www.cs.virginia.edu/?robins/ [213] V Ro?dl, On a packing and covering problem, European Journal of Combinatorics, 6(1) (1985), pp. 69?78. [214] P Rowlinson, Dominating sets and eigenvalues of graphs, The Bulletin of the London Mathe- matical Society, 26(3) (1994), pp. 248?254. [215] RT&E Interactive, The Delaware Lottery, [Online], [cited 2001, November 14], Available from: http://www.lottery.state.de.us/ [216] DE Rumelhart, GE Hinton & RJ Williams, Learning representations by back?propagating errors, Nature, 323 (1986), pp. 533?536. [217] E Sampathkumar, The least point covering and domination number of a graph, Discrete Mathe- matics, 86 (1990), pp. 137?142. [218] E Sampathkumar & LP Latha, Strong weak domination and domination balance in a graph, Discrete Mathematics, 161 (1996), pp. 235?242. [219] LA Sanchis, Bounds Related to Domination in Graphs with Minimum Degree Two, Journal of Graph Theory, 25 (1997), pp. 139?152. [220] Sazka, SAZKA a.s., [Online], [cited 2002, March 6], Available from: http://www.sazka.cz/ [221] J Scarne, Scarne?s new complete guide to gambling, Constable & Company, Ltd., London, (1975), pp. 141?185. [222] Schaffhausen Interactive, LOTTO.de, Deutscher Lotto? und Totoblock, [Online], [cited 2002, March 6], Available from: http://www.lotto-toto.de/ [223] J Scho?nheim, On Coverings, Pacific Journal of Mathematics, 14 (1964), pp. 1 405?1 411. [224] J Scho?nheim, On the number of mutually disjoint triples in Steiner systems and related maximal packing and minimal covering systems, pp. 311?318 in WT Tutte (Ed): Recent Progress in Combinatorics, Academic Press, New York, (1969). [225] A Schrijver (Ed), Packing and Covering in Combinatorics, Mathematical Centre Tracts, 106, Mathematisch Centrum, Amsterdam, (1979). [226] M Scott, Rocky Road: Charles Darwin, [Online], [cited 2002, November 12], Available from: http://www.strangescience.net/darwin.htm [227] SIA Lattelekom, APOLLO ? Latloto, [Online], [cited 2002, October 22], Available from: http://www.apollo.lv/portal/latloto/ [228] Singapore Pools Pte Ltd., Singapore Pools, [Online], [cited 2002, March 8], Available from: http://www.singaporepools.com.sg/ [229] M Sipser, Introduction to the Theory of Computation, PWS Publishing Company, New York, (1997), pp. 223?379. [230] Skandinv?lotto?, Szerencsejatek Rt. fogadasi rendszer, [Online], [cited 2002, March 8], Available from: http://www.szerencsejatek.hu/Jatek/ [231] J Spencer, Asymptotically good coverings, Pacific Journal of Mathematics, 118(2) (1985), pp. 575?586. [232] ?Sportna Loterija d.d., ?Sportna Loterija d.d., [Online], [cited 2002, March 7], Available from: http://www.sportna-loterija.si/ [233] South Dakota State Lottery, South Dakota Lottery, [Online], [cited 2004, January 30], Avail- able from: http://www.sdlottery.org/ 148 References [234] RG Stanton & JA Bate, A computer search for B?coverings, pp. 37?50 in RW Robinson, GW Southern & WD Wallis (Eds): Combinatorial Mathematics VII (Proceedings of the Seventh Australian Conference on Combinatorial Mathematics, University of Newcastle, Australia, 1979), Lecture Notes in Mathematics, 829, Springer?Verlag, Berlin, (1980). [235] RG Stanton & RC Mullin, Some new results on the covering numbers N(t, k, v), pp. 51?58 in RW Robinson, GW Southern & WD Wallis (Eds): Combinatorial Mathematics VII (Proceedings of the Seventh Australian Conference on Combinatorial Mathematics, University of Newcastle, Australia, 1979), Lecture Notes on Mathematics, 829, Springer?Verlag, Berlin, (1980). [236] F Sterboul, Le proble`me du Loto (French), Cahiers du Centre d??Etudes de Recherche Op?erationnelle, 20 (1978), pp. 443?449. [237] D Stojiljkovic, Dragon Stojiljkovic lotto wheels page, [Online], [cited 2003, September 17], Avail- able from: http://www.geocities.com/dragons2000/ [238] B Stroustrup, The C++ Programming Language (3rd ed), Addison?Wesley, England, (1997). [239] L Sun & J Wang, An Upper Bound for the Independence Domination Number, Journal of Com- binatorial Theory Series B, 76(2) (1999), pp. 240?246. [240] Swisscom AG, Internet Swiss Lotto, [Online], [cited 2002, March 7], Available from: http://www.swisslotto.ch/ [241] Tachira Su Loteria, Instituto de Beneficencia Pu`blica y Bienestar Social del Estado Ta`chira ? LOTERIA DEL TACHIRA, [Online], [cited 2002, October 22], Available from: http://www.loteriadeltachira.com/ [242] Taiwan Lottery Ltd., Taiwan Lottery Ltd., [Online], [cited 2002, March 22], Available from: http://www.taiwan-lottery.com/ [243] TEKTRON S.A. Tecnolog??a Electro?nica, Tektron S.A., [Online], [cited 2002, March 22], Available from: http://www.latinka.com/ [244] The Thoreau Institute at Walden Woods, Henry D. Thoreau Homepage, [Online], [cited 2003, November 3], Available from: http://www.walden.org/thoreau/ [245] TIPOS a.s., TIPOS a.s., [Online], [cited 2002, March 7], Available from: http://www.tipos.sk/ [246] DT Todorov, A method of constructing covering designs (Russian), Matematicheskie Zametki, 35(6) (1984), pp. 869?876. [247] DT Todorov, A table of coverings of pairs, Mathematics and Mathematical Education, (1986), pp. 472?481. [248] DT Todorov, Coverings of finite sets (Bulgarian), Prilozhna Matematika, 16(3) (1980), pp. 179?190. [249] DT Todorov, On some covering designs, Comptes Rendus de l?Acade?mie Bulgare des Sciences, 37(9) (1984), pp. 1 185?1 186. [250] DT Todorov, On some covering designs, Journal of Combinatorial Theory Series A, 39(1) (1985), pp. 83?101. [251] DT Todorov, On the covering of pairs by 13 blocks, Comptes Rendus de l?Acade?mie Bulgare des Sciences, 38(6) (1985), pp. 691?694. [252] DT Todorov, On the covering of triples by eight blocks, Serdica, 12(1) (1986), pp. 20?29. [253] DT Todorov, Some coverings derived from finite planes, Finite and Infinite Sets, I, II (1981), pp. 697?710. [254] DT Todorov & VD Tonchev, On some coverings of triples, Comptes Rendus de l?Acade?mie Bulgare des Sciences, 35(9) (1982), pp. 1 209?1 211. References 149 [255] Totalizator Sportowy Spo?lka, LOTTO, [Online], [cited 2002, March 7], Available from: http://www.lotto.pl/ [256] P Tura?n, Eine Extremalaufgabe aus der Graphentheorie, Matematicheskaya Fizika Lapok, 48 (1941), pp. 436?452. [257] Z Tuza & PD Vestergaard, Domination in partitioned graphs, [Online], [cited 2002, March 2], NEC Research Institute, ResearchIndex [NEC Research Institute, Citeseer, Computer Sci- ence], Available from: http://www.citeseer.nj.nec.com/cs/ [258] C Uhrig & N Boghossian, Algorithmic Solutions Software GmbH, [Online], [cited 2001, October 19], Available from: http://www.algorithmic-solutions.com/ [259] N van Nuffelen, Rank and domination number, pp. 209?211 in M Fiedler (Ed): Graphs and other combinatorial topics, Proceedings of the Third Czechoslovak Symposium on Graph Theory, Prague, Teubner Texts in Mathematics, 59 (1983). [260] Veikkaus, Veikkaus, [Online], [cited 2002, March 8], Available from: http://www.veikkaus.fi/ [261] Vermont Lottery Commission, Vermont Lottery, [Online], [cited 2001, November 14], Avail- able from: http://www.vtlottery.com/ [262] Virginia Lottery, Official Home of the Virginia Lottery, [Online], [cited 2004, January 30], Available from: http://www.valottery.com/ [263] VG Vizing, Estimate of the number of external stability of a graph, Soviet Mathematics, Doklady, 164(4) (1965), pp. 1 275?1 278. [264] HB Walikar, BD Acharya & E Sampathkumar, Recent developments in the theory of dom- ination in graphs, MRI Lecture Notes in Mathematics, Mahta Research Institute, Allahabad, 1 (1979). [265] WD Wallis, Combinatorial Designs, Marcel Dekker, Inc., New York, (1988). [266] West Virginia State Lottery, West Virginia Lottery, [Online], [cited 2001, November 14], Available from: http://www.state.wv.us/lottery/ [267] Western Canada Lottery Corporation, Western Canada Lottery Corporation, [Online], [cited 2002, February 22], Available from: http://www.wclc.com/ [268] B Widrow & ME Hoff, Adaptive switching circuits, 1960 IRE WESCON Convention Record IV, New York, pp. 96?104. [269] Wisconsin State Lottery, Wisconsin Lottery, [Online], [cited 2001, November 14], Available from: http://www.wilottery.com/ [270] J Yin & AM Assaf, Constructions of Optimal Packing Designs, Journal of Combinatorial De- signs, 6(4) (1998), pp. 245?260. [271] J Zukowski, Washington State Lottery, [Online], [cited 2001, November 14], Available from: http://www.wa.gov/lot/ [272] IE Zverovich, Proof of a conjecture in domination theory, Discrete Mathematics, 184 (1998), pp. 297?298. 150 References Appendix A Computer programs ?C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg.? Bjarne Stroustrup (1950?) [212] ?The purpose of computing is insight, not numbers.? Richard W Hamming (1915?1998) [30] This appendix is devoted to giving the reader access to the source code that was used in programming some of the algorithms in Chapters 3 and 5. Most routines and algorithms (presented in ??A.1?A.2 and ??A.4?A.8) were programmed in C++, utilising the standard header files and functions available, al- though some set?functions from LEDA (short for Library of Efficient Data Algorithms, [258]) or the C++ STL (Standard Template Libraries) were used. However, the Minimal overlapping algorithm (Algorithm 4 presented in ?A.3) was programmed in Microsoft Visual Basic for Applications (a macro/application extention to Microsoft Excel), due to built in spreadsheet functions used. More one how to program in C++ may be found in [62, 238]. A.1 Classical random algorithm (Algorithm 2) #include // Header file used for input and output. #include // Header file used to manipulate output. #include // Header file containing random function. #include // Header file for using files. #include // Header file for calculating iteration times. #include // Header file for STL (Standard Template Libraries) . #include // Header file for mathematical functions. long double fact (int); long int round (const long double); bool ValidTicket (const short int *, const short int &, const short int &); // Compute the factorial of n (i.e. n!). long double fact (int n) { if (n <= 1) return 1; // Stop recursion. else return n * fact(n - 1); // (n > 1) } // Rounds a number to the nearest integer to avoid possible numerical truncation errors. long int round (const long double n) { long int flrnum = (long int)floor(n); if (n - flrnum < 0.5) return flrnum; else return (long int)ceil(n); // (n - flrnum >= 0.5) } // Determine whether a ticket (n-set) is valid (ticket contains no double numbers). bool ValidTicket (short int *ticket, const short int &m, const short int &n) { multiset > index; multiset >::iterator i; for (short int counter = 0;counter < n;counter++) { index.insert(ticket[counter]); // Add number to index. 151 152 APPENDIX A. COMPUTER PROGRAMS if (index.count(ticket[counter]) > 1) return false; // Ticket is invalid. } i = index.begin(); // Arrange ticket elements lexicographically. for (short int counter = 0;i != index.end();ticket[counter++] = *i++); return true; // Ticket is valid. } int main () { short int m, n, k, L; // Variables containing the lottery parameters and playing set cardinality L. cout << endl << ?\t CLASSICAL RANDOM ALGORITH.? << endl << endl; cout << ?Please specify the following parameters for the lottery ?m,n;k?:? << endl; cout << ?m = ?; cin >> m; cout << ?n = ?; cin >> n; cout << ?k = ?; cin >> k; // If the user specified invalid lottery parameters. if ((n > m-1) || (k > n-1) || (m < 3) || (n < 2) || (k < 1)) { cout << endl << ?Invalid lotter parameters entered.? << endl; return 0; // Exit program. } long int NumTickets, r = 0, CurrentTicketNumber, NumDominated, MaxDominated = 0, iter = 0; time t StartTime; // Trace execution time. int CurrentTicket[n], CurrentNumber = n, size, Counter1, Counter2; // Reference to current ticket/vertex investigated. fstream PlayingSetInfo(?PlayingSet.Info?, ios::out); // Playing set info file. if (!PlayingSetInfo) { // Check whether the file ?PlayingSet.Info? could be opened. cout << ?The file \?PlayingSet.Info\? could not be opened.? << endl; return 0; // Exit program. } // Compute the number of vertex set cardinality and degree of regularity of the lottery graph G. NumTickets = round(fact(m)/(fact(n)*fact(m-n))); for (int i = k;i < n;i++) r += round((fact(n)/(fact(n-i)*fact(i)))*(fact(m-n)/(fact(n-i)*fact(m-2*n+i)))); cout << endl << ?Order of the lottery graph G?? << m << ?,? << n << ?;? << k << ?? is ? << NumTickets << ? and it is ? << r << ? regular.? << endl; cout << endl << ?Playing set cardinality = ?; cin >> L; if (L < 1) // Invalid playing set cardinality specified. return 0; // Exit program. short int DomArray[L][n], Intersect, dcounter, tcounter; // Playing set, number of elements common to 2 tickets/vertex labels (intersection). srandom(time(NULL)); // Initialize the pseudo random number generator. StartTime = time(NULL); // Capture start of executed time. while (iter < 1000) { // This value may be changed, depending on the number of iterations preferred. for (short int i = 0;i < L;i++) // Generate pseudo random playing set. do for (short int j = 0;j < n;j++) DomArray[i][j] = ((short int)(((random())/(float)RAND MAX)*m)+1); // Generation random ticket. while (!ValidTicket(DomArray[i], m, n)); // Check whether generated ticket is valid. NumDominated = 0; // Generate the first lexicographic lottery Ticket [1,2,...,n]. for (int i = 1;i <= n;i++) CurrentTicket[i-1] = i; // Determine resource utilisation ?`(m,n; k) of playing set> for (long int i = 1;i <= NumTickets;i++) { Intersect = 0; // Check whether current ticket is dominated. for (short int DomTicketNum = 0;(DomTicketNum < L) && (Intersect < k);DomTicketNum++) { Intersect = dcounter = tcounter = 0; while ((dcounter < n) && (tcounter < n) && (Intersect < k)) if (DomArray[DomTicketNum][dcounter] < CurrentTicket[tcounter]) dcounter++; else if (DomArray[DomTicketNum][dcounter] > CurrentTicket[tcounter]) tcounter++; else { // (DomArray[DomTicketNum][dcounter] == CurrentTicket[tcounter]) Intersect++; dcounter++; tcounter++; } if (Intersect == k) // Check whether current vertex/ticket is dominated by playing set. NumDominated++; } CurrentTicket[CurrentNumber-1]++; // Generate next lexicographic ticket/vertex label. if (CurrentTicket[CurrentNumber-1] > m) { CurrentTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurrentTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurrentTicket[CurrentNumber-1]++; for (int j = CurrentNumber;j < n;j++) CurrentTicket[j] = CurrentTicket[j-1] + 1; CurrentNumber = n; } } if (NumDominated > MaxDominated) { // New maximum resource utilisation found. // Write the (current best) playing set info to file. PlayingSetInfo.seekp(0, ios::beg); // Search to the beginning of the output file. PlayingSetInfo << endl << ?Lottery ?? << m << ?,? << n << ?;? << k << ?? :? << endl << endl; PlayingSetInfo << ?Playing set :? << endl; for (int i = 0;i < L;i++) { for (int j = 0;j < n;j++) A.2. Distributed random algorithm (Algorithm 3) 153 PlayingSetInfo << setiosflags(ios::right) << setw(3) << DomArray[i][j]; PlayingSetInfo << endl; } PlayingSetInfo << ?Playing set dominates ? << NumDominated << ?/? << NumTickets << ? vertices (? << setw(8) << setprecision(4) << setiosflags(ios::fixed|ios::showpoint) << (float)NumDominated/NumTickets*100 << ?%).? << endl; MaxDominated = NumDominated; // Store new maximum resource utilisation. } iter++; // Next iteration. } PlayingSetInfo.close(); // Close the playing set info file. cout << ?Time elapsed = ? << time(NULL)-StartTime << endl; return 0; // Exit program. } A.2 Distributed random algorithm (Algorithm 3) #include // Header file used for input and output. #include // Header file used to manipulate output. #include // Header file containing random function. #include // Header file for using files. #include // Header file for calculating iteration times. #include // Header file for STL (Standard Template Libraries) . #include // Header file for mathematical functions. long double fact (int); long int round (long double); bool ValidTicket (const short int *, const short int &, const short int &); // Compute the factorial of n (i.e. n!). long double fact (int n) { if (n <= 1) return 1; // Stop recursion. else return n * fact(n - 1); // (n > 1) } // Rounds a number off to the nearest integer to avoid possible numerical truncation errors. long int round (long double n) { long int flrnum = (long int)floor(n); if (n - flrnum < 0.5) return flrnum; else return (long int)ceil(n); // (n - flrnum >= 0.5) } // Determine whether a ticket (n-set) is valid (ticket contains no double numbers). bool ValidTicket (short int *ticket, const short int &m, const short int &n) { multiset > index; multiset >::iterator i; for (short int counter = 0;counter < n;counter++) { index.insert(ticket[counter]); // Add number to index. if (index.count(ticket[counter]) > 1) return false; // Ticket is invalid. } // Arrange ticket elements lexicographically. i = index.begin(); for (short int counter = 0;i != index.end();ticket[counter++] = *i++); return true; // Ticket is valid. } int main () { int m, n, k, L; // Variables containing the lottery parameters and playing set cardinality L. cout << endl << ?\t DISTRIBUTED RANDOM ALGORITHM? << endl << endl; cout << ?Please specify the following parameters for the lottery ?m,n;k?:? << endl; cout << ?m = ?; cin >> m; cout << ?n = ?; cin >> n; cout << ?k = ?; cin >> k; // If the user specified invalid lottery parameters. if ((n > m-1) || (k > n-1) || (m < 3) || (n < 2) || (k < 1)) { cout << endl << ?Invalid lotter parameters entered.? << endl; return 0; // Exit program. } long int NumTickets, r = 0, curiter = 1, CurrentTicketNumber, NumDominated, MaxDominated = 0; time t StartTime; // Trace execution time. short int Intersect, dcounter, tcounter, average = (n*L)/m, retrycounter; int CurrentTicket[n], CurrentNumber = n, size, Counter1, Counter2; multiset > distribution; fstream PlayingSetInfo(?PlayingSet.Info?, ios::out); // Playing set info file. if (!PlayingSetInfo) { // Check whether the file ?PlayingSet.Info? could be opened. cout << ?The file \?PlayingSet.Info\? could not be opened.? << endl; return 0; // Exit program. } // Compute the order and degree of regularity of the lottery graph G. NumTickets = round(fact(m)/(fact(n)*fact(m-n))); for (int i = k;i < n;i++) r += round((fact(n)/(fact(n-i)*fact(i)))*(fact(m-n)/(fact(n-i)*fact(m-2*n+i)))); 154 APPENDIX A. COMPUTER PROGRAMS cout << ?The order of the lottery graph G?? << m << ?,? << n << ?;? << k << ?? is ? << NumTickets << ? and it is ? << r << ? regular.? << endl; cout << endl << ?Playing set cardinality = ?; cin >> L; if (L < 1) // Invalid playing set cardinality specified. return 0; // Exit program. short int DomArray[L][n]; // Playing set. srandom(time(NULL)); // Initialize the pseudo random number generator. StartTime = time(NULL); // Capture start of execution time. while (curiter <= 1000) { // This value may be changed, depending on the number of iterations preferred. RestartLottoSet: distribution.erase(distribution.begin(), distribution.end()); // Erase number distribution index. for (short int i = 0;i < L;i++) { // Generate pseudo random playing set. retrycounter = 0; do for (short int j = 0;j < n;j++) { do // Determine correct number choice according to distribution index. dcounter = (short int)(((float)random()/RAND MAX)*m)+1; while (distribution.count(dcounter) > average+1); DomArray[i][j] = dcounter; // Generation random ticket. retrycounter++; } while (!ValidTicket(DomArray[i], m, n) && retrycounter < 101); // Check whether generated ticket is valid. if (retrycounter > 100) goto RestartLottoSet; // Avoid faulty generated lottery sets. for (short int j = 0;j < n;j ++) distribution.insert(DomArray[i][j]); // Add used lottery numbers to distribution index. } NumDominated = 0; // Generate the first lexicographic lottery ticket [1,2,...,n]. for (int i = 1;i <= n;i++) CurrentTicket[i-1] = i; // Determine resource utilisation ?`(m,n; k) of playing set. for (long int i = 1;i <= NumTickets;i++) { Intersect = 0; // Check whether current ticket is dominated. for (short int DomTicketNum = 0;(DomTicketNum < L) && (Intersect < k);DomTicketNum++) { Intersect = dcounter = tcounter = 0; while ((dcounter < n) && (tcounter < n) && (Intersect < k)) if (DomArray[DomTicketNum][dcounter] < CurrentTicket[tcounter]) dcounter++; else if (DomArray[DomTicketNum][dcounter] > CurrentTicket[tcounter]) tcounter++; else { // (DomArray[DomTicketNum][dcounter] == CurrentTicket[tcounter]) Intersect++; dcounter++; tcounter++; } if (Intersect == k) // Check whether current vertex/ticket is dominated by playing set. NumDominated++; } CurrentTicket[CurrentNumber-1]++; // Generate next lexicographic ticket/vertex label. if (CurrentTicket[CurrentNumber-1] > m) { CurrentTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurrentTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurrentTicket[CurrentNumber-1]++; for (int j = CurrentNumber;j < n;j++) CurrentTicket[j] = CurrentTicket[j-1] + 1; CurrentNumber = n; } } if (NumDominated > MaxDominated) { // New maximum resource utilisation found. // Write the (current best) playing set info to file. PlayingSetInfo.seekp(0, ios::beg); // Search to the beginning of the output file. PlayingSetInfo << endl << ?Lottery ?? << m << ?,? << n << ?;? << k << ?? :? << endl << endl; PlayingSetInfo << ?Playing set :? << endl; for (int i = 0;i < L;i++) { for (int j = 0;j < n;j++) PlayingSetInfo << setiosflags(ios::right) << setw(3) << DomArray[i][j]; PlayingSetInfo << endl; } PlayingSetInfo << ?Playing set dominates ? << NumDominated << ?/? << NumTickets << ? vertices (? << set(8) << setprecision(4) << setiosflags(ios::fixed|ios::showpoint) << (float)NumDominated/NumTickets*100 << ?%).? << endl; MaxDominated = NumDominated; // Store new maximum resource utilisation. } curiter++; } PlayingSetInfo.close(); // Close the playing set info file. cout << ?Time elapsed = ? << time(NULL)-StartTime << endl; return 0; // Exit program. } A.3. Minimal overlapping algorithm (Algorithm 4) 155 A.3 Minimal overlapping algorithm (Algorithm 4) Private Function AlphaCol(intcol As Integer) As String ? Determine alphabetic column presentation used by Excel. Dim counter1 As Integer, counter2 As Integer, counter3 As Integer counter1 = 0 counter2 = 1 counter3 = 1 While (counter3 < intcol) counter3 = counter3 + 1 counter2 = counter2 + 1 If (counter2 > 26) Then counter2 = 1 counter1 = counter1 + 1 End If Wend If (counter1 > 0) Then AlphaCol = Chr(counter1 + 64) & Chr(counter2 + 64) Else ? (counter1 == 0) AlphaCol = Chr(counter2 + 64) End If End Function Private Function RU() As Long ? Determine the resource utilisation ?`(m,n; k) of playing set. Dim m As Integer, n As Integer, k As Integer, L As Integer, CurrentTicket(50) As Integer, dcounter As Integer, tcounter As Integer, Intersect As Integer, PlayingSet(200, 50) As Integer, CurrentNumber As Integer, NumDominated As Long, NumTickets As Long, counter1 As Long, counter2 As Long, counter3 As Long m = Val(Sheet2.Cells(2, 8)) n = Val(Sheet2.Cells(2, 9)) k = Val(Sheet2.Cells(2, 10)) L = Val(Sheet2.Cells(2, 11)) Sheet2.Cells(2000, 1) = ?=FACT(? & m & ?)/(FACT(? & m - n & ?)*FACT(? & n & ?))? NumTickets = Val(Sheet2.Cells(2000, 1)) Sheet2.Cells(2000, 1) = ?? For dcounter = 1 To L ? Put m?L ticket matrix in n?L ticket matrix. Intersect = 1 For tcounter = 1 To m If (Sheet2.Cells(dcounter + 3, tcounter + 1) <> ??) Then PlayingSet(dcounter, Intersect) = tcounter Intersect = Intersect + 1 End If Next tcounter Next dcounter For dcounter = 1 To n ? Generate first lexicographic lottery ticket [1,2,...,n]. CurrentTicket(dcounter) = dcounter Next dcounter HuidigeGetal = n + 1 For counter1 = 1 To NumTickets ? Determine playing set resource utilisation ?`(m,n; k) Intersect = 0 counter2 = 1 While ((counter2 <= L) And (Intersect < k)) Intersect = 0 dcounter = 1 tcounter = 1 While ((dcounter <= n) And (tcounter <= n) And (Intersect < k)) If (PlayingSet(counter2, dcounter) < CurrentTicket(tcounter)) Then dcounter = dcounter + 1 ElseIf (PlayingSet(counter2, dcounter) > CurrentTicket(tcounter)) Then tcounter = tcounter + 1 Else ? (PlayingSet(counter2, dcounter) = CurrentTicket(tcounter)) Intersect = Intersect + 1 dcounter = dcounter + 1 tcounter = tcounter + 1 End If Wend If (Intersect = k) Then ? Check whether current ticket is dominated by playing set. NumDominated = NumDominated + 1 End If counter2 = counter2 + 1 Wend CurrentTicket(CurrentNumber - 1) = CurrentTicket(CurrentNumber - 1) + 1 If (CurrentTicket(CurrentNumber - 1) > m) Then ? Generate next ticket in lexicographic sequence. CurrentTicket(CurrentNumber - 1) = CurrentTicket(CurrentNumber - 1) - 1 While ((CurrentNumber > 1) And (CurrentTicket(CurrentNumber - 1) = m - (n - CurrentNumber) - 1)) CurrentNumber = CurrentNumber - 1 Wend CurrentTicket(CurrentNumber - 1) = CurrentTicket(CurrentNumber - 1) + 1 For counter3 = CurrentNumber To n CurrentTicket(counter3) = CurrentTicket(counter3 - 1) + 1 Next counter3 CurrentNumber = n + 1 End If 156 APPENDIX A. COMPUTER PROGRAMS Next counter1 RU = NumDominated End Function Public Sub GeneratePlayingSet() ? Generate playing set according to MINIMAL OVERLAP ALGORITHM. Dim m As Integer, n As Integer, k As Integer, L As Integer, iter As Integer, counter1 As Integer, counter2 As Integer, counter3 As Integer, Counter4 As Integer, counter5 As Integer, counter6 As Integer, curmin As Integer, curmindist As Integer, curoverlap As Integer, elbegin As Integer, elend As Integer, elstep As Integer, maxoverlappings As Integer, overlapincrease As Boolean, simstart As Boolean Sheet2.Cells(1, 1) = ?MINIMAL OVERLAP ALGORITHM? Sheet2.Cells(2, 1) = ?Operation:? Sheet2.Cells(2, 2) = ?Requesting input...? m = Val(InputBox(?m =?, ?Lottery parameters?)) n = Val(InputBox(?n =?, ?Lottery parameters?)) k = Val(InputBox(?k =?, ?Lottery parameters?)) L = Val(InputBox(?L =?, ?Lottery parameters?)) iter = Val(InputBox(?Number of iterations to perform (0/empty for single iteration)??, ?Iteration parameter?)) If ((m < 3) Or (n < 2) Or (k < 1) Or (n > m) Or (k > n) Or (L < 1)) Then MsgBox ?Invalid lottery parameters entered.? End ? Exit program. End If Randomize ? Initialise pseudo random number generator. simstart = True redoiteration: Sheet2.Cells(2, 2) = ?Initialising...? Sheet2.Cells(3, 1) = ?T\m? ? Initialise all variables For counter1 = 4 To L + 4 Sheet2.Cells(counter1, 1) = counter1 - 3 ? Fill in ticket numbers 1,. . . ,L. For counter2 = 2 To m + 2 Sheet2.Cells(counter1, counter2) = ?? ? Clear ticket matrix. Next counter2 Next counter1 For counter1 = 1 To m ? Fill in numbers 1,...,m from Um Sheet2.Cells(3, counter1 + 1) = counter1 Next counter1 Sheet2.Cells(L + 4, 1) = ?Ovrlps? For counter1 = 2 To m + 1 ? Clear overlapping vector Sheet2.Cells(L + 4, counter1) = ?=SUM(? & AlphaCol(counter1) & Trim(Str(4)) & ?:? & AlphaCol(counter1) & Trim(Str(L + 3)) & ?)+? & AlphaCol(counter2) & Trim(Str(L + 6)) Next counter1 Sheet2.Cells(L + 4, m + 2) = ?=MIN(? & AlphaCol(2) & Trim(Str(L + 4)) & ?:? & AlphaCol(m + 1) & Trim(Str(L + 4)) & ?)? Sheet2.Cells(L + 4, m + 3) = ?=MAX(? & AlphaCol(2) & Trim(Str(L + 4)) & ?:? & AlphaCol(m + 1) & Trim(Str(L + 4)) & ?)? Sheet2.Cells(L + 4, m + 4) = ?=COUNTIF(? & AlphaCol(2) & Trim(Str(L + 4)) & ?:? & AlphaCol(m + 1) & Trim(Str(L + 4)) & ?,? & AlphaCol(m + 3) & Trim(Str(L + 4)) & ?)? Sheet2.Cells(L + 5, 1) = ?Ovrlp Dstnce? For counter1 = 2 To m + 1 ? Clear overlapping distance vector. Sheet2.Cells(L + 5, counter1) = 0 Next counter1 Sheet2.Cells(L + 5, m + 2) = ?=MIN(? & AlphaCol(2) & Trim(Str(L + 5)) & ?:? & AlphaCol(m + 1) & Trim(Str(L + 5)) & ?)? For counter1 = 1 To L ? Clear overlapping ticket vector. Sheet2.Cells(counter1 + 3, m + 2) = ?0? Next counter1 overlapincrease = False maxoverlappings = 0 elbegin = m elend = 1 elstep = -1 Sheet2.Cells(2, 2) = ?Determining tickets. . . ? & iter ? Setup interface. Sheet2.Cells(1, 8) = ?m? ? Lottery paramters . Sheet2.Cells(2, 8) = m Sheet2.Cells(1, 9) = ?n? Sheet2.Cells(2, 9) = n Sheet2.Cells(1, 10) = ?k? Sheet2.Cells(2, 10) = k Sheet2.Cells(1, 11) = ?L? ? Playing set cardinality L. Sheet2.Cells(2, 11) = L Sheet2.Cells(1, 13) = ?T? ? Current ticket being generated. Sheet2.Cells(1, 14) = ?I? ? Current ticket index. Sheet2.Cells(1, 15) = ?O=? ? Overlapping cardinality. Sheet2.Cells(2, 15) = ?T=? ? 1st overlapping occurance. Sheet2.Cells(1, 16) = ?? Sheet2.Cells(2, 16) = ?? Sheet2.Cells(1, 17) = ?? Sheet2.Cells(2, 17) = ?? Sheet2.Cells(1, 18) = ?? Sheet2.Cells(2, 18) = ?? Sheet2.Cells(1, 19) = ?? Sheet2.Cells(2, 19) = ?? Sheet2.Cells(1, 20) = ?? Sheet2.Cells(2, 20) = ?? Sheet2.Cells(L + 6, 1) = ?RU? ? Resource utilisation ?`(m,n; k) For counter1 = 1 To L ? For all tickets 1,...,L. Sheet2.Cells(L + 4, m + 5) = ?? ? Clear 5 overlapping count. A.3. Minimal overlapping algorithm (Algorithm 4) 157 Sheet2.Cells(L + 4, m + 6) = ?? ? Clear 4 overlapping count. Sheet2.Cells(L + 4, m + 7) = ?? ? Clear 3 overlapping count. Sheet2.Cells(L + 4, m + 8) = ?? ? Clear 2 overlapping count. Sheet2.Cells(L + 4, m + 9) = ?? ? Clear 1 overlapping count. Sheet2.Cells(L + 4, m + 10) = ?? ? Clear 0 overlapping count. Sheet2.Cells(2, 13) = counter1 curmin = Val(Sheet2.Cells(L + 4, m + 2)) curmindist = Val(Sheet2.Cells(L + 5, m + 2)) curoverlap = 0 For counter2 = 1 To L ? Clear overlapping ticket vector. Sheet2.Cells(counter2 + 3, m + 2) = 0 Next counter2 redonumber: For counter2 = 1 To n ? For all elements of each ticket 1,...,n Sheet2.Cells(2, 14) = counter2 nextnumber: elbegin = Int(Rnd * m) + 1 If (Rnd < 0.5) Then elstep = -1 Else ? (Rnd >= 0.5) elstep = 1 End If elend = elbegin - elstep If (elend > m) Then elend = 1 ElseIf (elend < 1) Then elend = m End If counter3 = elbegin Do If (Val(Sheet2.Cells(L + 5, counter3 + 1)) = curmindist) And (Val(Sheet2.Cells(L + 4, counter3 + 1)) = curmin) Then Counter4 = 4 While (Counter4 < counter1 + 3) If (Sheet2.Cells(Counter4, counter3 + 1) <> ??) And (Val(Sheet2.Cells(Counter4, m + 2)) > curoverlap) Then GoTo nextelement End If Counter4 = Counter4 + 1 Wend If (Counter4 = counter1 + 3) Then Sheet2.Cells(L + 4, m + 4) = Val(Sheet2.Cells(L + 4, m + 2)) Sheet2.Cells(counter1 + 3, counter3 + 1) = 1 Sheet2.Cells(L + 5, counter3 + 1) = counter1 If overlapincrease Then overlapincrease = False curoverlap = 0 End If Counter4 = counter1 + 2 While (Counter4 > 3) If (Sheet2.Cells(Counter4, counter3 + 1) <> ??) Then Sheet2.Cells(Counter4, m + 2) = Val(Sheet2.Cells(Counter4, m + 2)) + 1 End If Counter4 = Counter4 - 1 Wend End If GoTo nonextnumber End If nextelement: counter3 = counter3 + elstep If (counter3 < 1) Then counter3 = m ElseIf (counter3 > m) Then counter3 = 1 End If Loop Until (counter3 = elbegin) curmindist = curmindist + 1 If (curmindist = counter1) Then curmindist = Val(Sheet2.Cells(L + 5, m + 2)) curmin = curmin + 1 If (curmin > Val(Sheet2.Cells(L + 4, m + 4))) Then curmin = Val(Sheet2.Cells(L + 4, m + 2)) elbegin = Int(Rnd * m) + 1 If (Rnd < 0.5) Then elstep = -1 Else ? (Rnd >= 0.5) elstep = 1 End If elend = elbegin - elstep If (elend > m) Then elend = 1 ElseIf (elend < 1) Then elend = m End If 158 APPENDIX A. COMPUTER PROGRAMS counter3 = elbegin Do Counter4 = 4 While (Counter4 < counter1 + 3) If (Sheet2.Cells(Counter4, counter3 + 1) <> ??) And (Val(Sheet2.Cells(Counter4, m + 2)) > curoverlap) Then GoTo nextelement2 End If Counter4 = Counter4 + 1 Wend If (Counter4 = counter1 + 3) Then Sheet2.Cells(L + 4, m + 4) = Val(Sheet2.Cells(L + 4, m + 2)) Sheet2.Cells(counter1 + 3, counter3 + 1) = 1 Sheet2.Cells(L + 5, counter3 + 1) = counter1 If overlapincrease Then overlapincrease = False curoverlap = 0 End If Counter4 = counter1 + 2 While (Counter4 > 3) If (Sheet2.Cells(Counter4, counter3 + 1) <> ??) Then Sheet2.Cells(Counter4, m + 2) = Val(Sheet2.Cells(Counter4, m + 2)) + 1 End If Counter4 = Counter4 - 1 Wend End If GoTo nonextnumber nextelement2: counter3 = counter3 + elstep If (counter3 < 1) Then counter3 = m ElseIf (counter3 > m) Then counter3 = 1 End If Loop Until (counter3 = elbegin) curoverlap = curoverlap + 1 If (curoverlap >= maxoverlappings) Then Sheet2.Cells(1, maxoverlappings + 16) = maxoverlappings + 1 Sheet2.Cells(2, maxoverlappings + 16) = counter1 maxoverlappings = maxoverlappings + 1 End If overlapincrease = True GoTo nextnumber End If End If GoTo nextnumber nonextnumber: curoverlap = 0 Next counter2 Next counter1 Sheet2.Cells(2, 2) = ?Finished. . . ? & iter If (iter > 0) Then counter1 = 4 ? Insert all ticket overlappings for comparison with best thus far. While (counter1 - 3 < Val(Sheet2.Cells(2, 11))) ? Clear overlapping ticket vector. counter2 = 0 While counter2 <= L - counter1 + 2 Sheet2.Cells(counter1, Val(Sheet2.Cells(2, 8)) + 2 + counter2) = 0 counter2 = counter2 + 1 Wend counter1 = counter1 + 1 Wend counter3 = 0 Counter4 = L While (Counter4 > 0) For counter1 = 2 To Val(Sheet2.Cells(2, 8)) + 1 ? Update overlapping ticket vector. If (Sheet2.Cells(Counter4 + 3, counter1) <> ??) Then counter2 = Counter4 + 2 While (counter2 > 3) If (Sheet2.Cells(counter2, counter1) <> ??) Then Sheet2.Cells(counter2, Val(Sheet2.Cells(2, 8)) + 2 + counter3) = Val(Sheet2.Cells(counter2, Val(Sheet2.Cells(2, 8)) + 2 + counter3)) + 1 End If counter2 = counter2 - 1 Wend End If Next counter1 Sheet2.Cells(Counter4 + 3, Val(Sheet2.Cells(2, 8)) + 2 + counter3) = ??? Counter4 = Counter4 - 1 counter3 = counter3 + 1 Wend Sheet2.Cells(L + 4, m + 5) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,5)? Sheet2.Cells(L + 5, m + 5) = 5 Sheet2.Cells(L + 4, m + 6) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,4)? Sheet2.Cells(L + 5, m + 6) = 4 A.4. Neighbourhood removal algorithm (Algorithm 5) 159 Sheet2.Cells(L + 4, m + 7) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,3)? Sheet2.Cells(L + 5, m + 7) = 3 Sheet2.Cells(L + 4, m + 8) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,2)? Sheet2.Cells(L + 5, m + 8) = 2 Sheet2.Cells(L + 4, m + 9) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,1)? Sheet2.Cells(L + 5, m + 9) = 1 Sheet2.Cells(L + 4, m + 10) = ?=COUNTIF(? & AlphaCol(m + 2) & ?4:? & AlphaCol(m + 1 + L) & Trim(Str(L + 3)) & ?,0)? Sheet2.Cells(L + 5, m + 10) = 0 Sheet2.Cells(L + 6, 2) = RU() ? Determine resource utilisation ?`(m,n; k) of constructed playing set. If (Val(Sheet2.Cells(L + 6, 2)) > Val(Sheet21.Cells(L + 6, 2))) Then ? Save info if improved solution is found. Sheet2.Cells(2, 2) = ?Saving data. . . ? & iter For counter1 = 1 To L + 6 For counter2 = 1 To m + 1 + L Sheet21.Cells(counter1, counter2) = Sheet2.Cells(counter1, counter2) Next counter2 Next counter1 Sheet2.Cells(2, 2) = ?Done. . . ? simstart = False End If End If iter = iter - 1 If (iter > 0) Then GoTo redoiteration End Sub A.4 Neighbourhood removal algorithm (Algorithm 5) #include // Header file for input and output. #include // Header file used to manipulate output. #include // Header file for using files. #include // Header file for calculating iteration times. #include // Header file containing mathematical functions. #include // Header file containing the type bitset. long double fact (int); long int round (const long double); // Compute the factorial of n (i.e. n!). long double fact (int n) { if (n <= 1) return 1; // Stop recursion. else return n * fact(n - 1); // (n > 1) } // Rounds a number off to the nearest integer to avoid possible numerical truncation errors. long int round (const long double n) { long int flrnum = (long int)floor(n); if (n - flrnum < 0.5) return flrnum; else return (long int)ceil(n); // (n - flrnum >= 0.5) } int main () { short int m, n, k, L; // Variables containing the lottery parameters and playing set cardinality L. cout << endl << ?\t NEIGHBOURHOOD REMOVAL ALGORITHM? << endl << endl; cout << ?Please specify the following parameters for the lottery ?m,n;k?:? << endl; cout << ?m = ?; cin >> m; cout << ?n = ?; cin >> n; cout << ?k = ?; cin >> k; cout << ?Playing set cardinality = ?; cin >> L; // If the user specified invalid lottery parameters. if ((n > m-1) || (k > n-1) || (m < 3) || (n < 2) || (k < 1)) { cout << endl << "Invalid lottery parameters." << endl; return 0; // Exit program. } else if (L < 1) { cout << endl << ?Playing set cardinality must be at least 1.? << endl; return 0; // Exit program. } long int NumTickets, r = 0, CurPSTicketNumber, TicketIndexNumber, BestTicketNumber, DomElementNumber = 0, tmpsum, tmpsumback = 0; // Order of lottery graph, degree of regularity, Current playing set ticket number. short int CurTicket[n], TicketIndex[n], BestTicket[n]; bitset CurTicketBITSET, TicketIndexBITSET, BestTicketBITSET; // The value XX should be fixed to take the value m at compile time. bitset G, CurTicketNeighbourhood, BestTicketNeighbourhood; // The value YY should be fixed to take the value` m n ? at compile time. time t StartTime; // Trace execution time. short int index1, index2, index3, index4, indexm, indexn, indexk, CurrentNumber = n, Intersect; // Compute the order and degree of regularity of the lottery graph G. NumTickets = round(fact(m)/(fact(n)*fact(m-n))); for (short int i = k;i < n;i++) r += round((fact(n)/(fact(n-i)*fact(i)))*(fact(m-n)/(fact(n-i)*fact(m-2*n+i)))); cout << endl << ?The order of the lottery graph G?? << m << ?,? << n << ?;? << k << ?? is ? << NumTickets << ? and it is? << r << ? regular.? << endl; G.set(); // Initialise G to have all (NumTickets) vertices (111...1111). 160 APPENDIX A. COMPUTER PROGRAMS StartTime = time(NULL); // Capture start of execution time. cout << endl << ? No.? << ? Ticket (t) ? << ? ?N[t]? ? << endl << ???? << ? ??????????? << ? ????????? << endl; // Start the extracting vertices from G. while ((G.count() > 0) && (DomElementNumber < L)) { // G.count() returns the number of 1 bits in G. CurPSTicketNumber = -1; nextCurPSTicketNumber: while ((CurPSTicketNumber < NumTickets) && (!G.test(++CurPSTicketNumber))); // G.test(x) returns TRUE if the bit x = 1, and FALSE otherwise. if (CurPSTicketNumber == NumTickets) goto Finished; CurTicketBITSET.reset(); // Clear current ticket (000...0000). // Determine actual ticket corresponding to lexicographic ticket number: CurPSTicketNumber. indexm = m; indexn = n; tmpsum = tmpsumback = 0; index4 = 1; for (index2 = 0;index2 < n-1;index2++) { index3 = 1; tmpsum = tmpsumback; while (index3 < m) { tmpsumback = tmpsum; tmpsum += round((long double)fact(indexm-index3)/(long double)(fact(indexn-1)*fact(indexm-index3-indexn+1))); if (tmpsum >= (CurPSTicketNumber + 1)) { CurTicket[index2] = index4++; goto nextCurTicketelement; } index3++; index4++; } nextCurTicketelement: indexm = m - CurTicket[index2]; // Rescale search range. indexn--; } CurTicket[n-1] = CurTicket[n-2] + (CurPSTicketNumber + 1) - tmpsumback; // Pad last element. for (index1 = 0;index1 < n;CurTicketBITSET.flip(CurTicket[index1++]-1)); CurTicketNeighbourhood.reset(); // Current Ticket has no neighbours (000...0000). // CurTicket contains first remaining lexicographic ticket in G. // Start from first remaining lexicographic ticket in G to determine neighbourhood. TicketIndexNumber = -1; nextTicketIndexNumber: while ((TicketIndexNumber < NumTickets) && (!G.test(++TicketIndexNumber))); if (TicketIndexNumber == NumTickets) goto FinishedNeighbourhood; TicketIndexBITSET.reset(); // Clear Ticket index (000...0000). // Determine actual ticket corresponding to lexicographic ticket number: TicketIndexNumber. indexm = m; indexn = n; tmpsum = tmpsumback = 0; index4 = 1; for (index2 = 0;index2 < n-1;index2++) { index3 = 1; tmpsum = tmpsumback; while (index3 < m) { tmpsumback = tmpsum; tmpsum += round((long double)fact(indexm-index3)/(long double)(fact(indexn-1)*fact(indexm-index3-indexn+1))); if (tmpsum >= (TicketIndexNumber + 1)) { TicketIndex[index2] = index4++; goto nextTicketIndexelement; } index3++; index4++; } nextTicketIndexelement: indexm = m - TicketIndex[index2]; // Rescale search range. indexn--; } TicketIndex[n-1] = TicketIndex[n-2] + (TicketIndexNumber + 1) - tmpsumback; // Pad last element. for (index1 = 0;index1 < n;TicketIndexBITSET.flip(TicketIndex[index1++]-1)); TicketIndexBITSET &= CurTicketBITSET; // Determine set intersection. // Check whether current ticket is dominated by candidate playing set. if (TicketIndexBITSET.count() >= k) CurTicketNeighbourhood.flip(TicketIndexNumber); // CurTicketNeighbourhood[TicketIndexNumber] = 1; goto nextTicketIndexNumber; FinishedNeighbourhood: if (BestTicketNeighbourhood.count() < CurTicketNeighbourhood.count()) { BestTicketNeighbourhood = CurTicketNeighbourhood; // Store ticket with largest neighbourhood set. BestTicketNumber = CurPSTicketNumber; for (index1 = 0;index1 < n;BestTicket[index1++] = CurTicket[index1]); } if (DomElementNumber > 0) goto nextCurPSTicketNumber; // Consider next vertex to be removes from G. Finished: PlayingSet[DomElementNumber].Number = BestTicketNumber; // Record best ticket candidate information. PlayingSet[DomElementNumber].NumDominate = BestTicketNeighbourhood.count(); // Determine |NG[v`]|. PlayingSet[DomElementNumber].set = new(short int [n]); for (index1 = 0;index1 < n;PlayingSet[DomElementNumber].set[index1++] = BestTicket[index1]); G ^= BestTicketNeighbourhood; // Remove closed neighbourhood of best candidate. BestTicketNeighbourhood.reset(); // Clear best candidate neighbourhood. CurTicketNeighbourhood.reset(); // Clear current ticket neighbourhood. // Output best ticket candidate information per iteration. cerr << setw(4) << (DomElementNumber + 1) << ? ?; for (index1 = 0;index1 < n;index1++) cerr << setw(3) << PlayingSet[DomElementNumber].set[index1]; cerr << setw((10-n)*3) << ? ? << ? ? << setw(7) << PlayingSet[DomElementNumber++].NumDominate << ? / ? << setw(10) << NumTickets << ? ? << setw(10) << G.count() << ? vertices remaining.? << endl; A.5. Tabu search algorithm (Algorithm 6) 161 } cerr << endl << ?Finished in ? << (time(NULL) - StartTime) << ? seconds.? << endl << endl; return 0; // Exit program. } A.5 Tabu search algorithm (Algorithm 6) #include // Header file for receiving input and generating output. #include // Header file for manipulating output. #include // Header file for calculating iteration times. #include // Header file for mathematical function. #include // Header file containing Standard Template Libraries (STLs) . using namespace std; long double fact (const int); long int round (const long double); long int fitness (const short int,const short int,const short int,const short int,const long int,const long int []); // Compute the factorial of n (i.e. n!). long double fact (const int n) { if (n <= 1) return 1; // Stop recursion. else return n * fact(n-1); // (n > 1) } // Rounds a number off to the nearest integer to avoid possible numerical truncation errors. long int round (const long double n) { long int flrnum = (long int)floor(n); if (n - flrnum < 0.5) return flrnum; else return (long int)ceil(n); // (n - flrnum >= 0.5) } long int fitness (const short int m, const short int n, const short int k, const short int L, const long int NumTickets, const long int DomArrayNumber[]) { short int CurTicket[n], CurrentNumber = n; // Current ticket used in fitness measurement (CurTicket), index for generating tickets lexicographically (CurrentNumber). short int index1, index2, index3, index4, indexm, indexn, indexk, DomArray[L][n]; long int tmpsum, tmpsumback = 0, CandidateFitness; for (index1 = 0;index1 < L;index1++) { // Determine actual tickets corresponding to lexicographic ticket numbers. indexm = m; indexn = n; tmpsum = tmpsumback = 0; index4 = 1; for (index2 = 0;index2 < n-1;index2++) { index3 = 1; tmpsum = tmpsumback; while (index3 < m) { tmpsumback = tmpsum; tmpsum += round((long double)fact(indexm-index3)/(long double)(fact(indexn-1)*fact(indexm-index3-indexn+1))); if (tmpsum >= DomArrayNumber[index1]) { DomArray[index1][index2] = index4++; goto nextelement1; } index3++; index4++; } nextelement1: indexm = m - DomArray[index1][index2]; // Rescale search range. indexn--; } DomArray[index1][n-1] = DomArray[index1][n-2] + DomArrayNumber[index1] - tmpsumback; // Pad last element. } // Determine candidate resource utilisation ?`(m,n; k). Initialise Ticket to [1,2,...,n]. for (index1 = 0;index1 < n;index1++) CurTicket[index1] = index1 + 1; for (tmpsum = 0;tmpsum < NumTickets;tmpsum++) { indexk = 0; for (index1 = 0;(index1 < L) && (indexk < k);index1++) { // Check whether current ticket is dominated. indexk = index2 = index3 = 0; while ((index2 < n) && (index3 < n) && (indexk < k)) if (DomArray[index1][index2] < CurTicket[index3]) index2++; else if (DomArray[index1][index2] > CurTicket[index3]) index3++; else { // (DomArray[index1][index2] == CurTicket[tcounter]) indexk++; index2++; index3++; // Tickets intersect in 1 element. } if (indexk == k) // Check whether current ticket is dominated by playing set. CandidateFitness++; } // Generate next ticket in lexicographic sequence. CurTicket[CurrentNumber-1]++; if (CurTicket[CurrentNumber-1] > m) { CurTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurTicket[CurrentNumber-1]++; for (index4 = CurrentNumber;index4 < n;index4++) CurTicket[index4] = CurTicket[index4-1] + 1; CurrentNumber = n; } } return CandidateFitness; 162 APPENDIX A. COMPUTER PROGRAMS } int main () { short int m, n, k, L; // Variables containing the lottery parameters and playing set cardinality L. const long int iter = 1000; // This value may be changed, depending on the number of iterations preferred. cerr << endl << ?\t TABU SEARCH ALGORITHM? << endl << endl; cerr << ?Please specify the following parameters for the lottery ?m,n;k?:? << endl; cerr << ?m = ?; cin >> m; cerr << ?n = ?; cin >> n; cerr << ?k = ?; cin >> k; // If the user specified invalid lottery parameters. if ((n > m-1) || (k > n-1) || (m < 3) || (n < 2) || (k < 1)) { cerr << endl << ?Invalid lottery parameters entered.? << endl; return 0; // Exit program. } cerr << ?Playing set cardinality L = ?; cin >> L; if (L < 1) { cerr << endl << ?Playing set cardinality must be at least 1.? << endl; return 0; // Exit program. } const long int NumTickets = round(fact(m)/(fact(n)*fact(m-n))); cerr << endl << ?The order of the lottery graph G?? << m << ?,? << n << ?;? << k << ?? is ? << NumTickets << ?.? << endl << endl; const long int tabutenure = NumTickets/m, NumMoves = 3; long int SectorSize, tempvar, curiter = 1, numelements; struct HistoryMove { short int move, wrapdirection, bitchange; // Move corresponds to Tabu move 1 (wrap), Tabu move 2 (flip), Tabu move 3 (sector), Move 1 data (wrap direction, 0 = ?, 1 = ?), Move 2 data (bit changed). long int wraplength, bitpos, sec1start, sec2start, seclength; // Move 1 data (wrap length), Move 2 data (original bit position), Move 3 data (sector 1 start pos., sector 2 start pos., sector length). HistoryMove *prev, *next; // Pointer to previous & next element in Tabu search?s recency-based memory history list. }; struct NewCandidate { short int move, wrapdirection, bitchange; // Move corresponds to Tabu move 1 (wrap), Tabu move 2 (flip), Tabu move 3 (sector), Move 1 data (wrap direction, 0 = ?, 1 = ?), Move 2 data (bit to be changed). long int wraplength, bitpos, sec1start, sec2start, sectlength, *DomNumbers, Fitness; // Move 1 data (wrap length), Move 2 data (original bit position), Move 3 data (sector 1 start pos., sector 2 start pos., sector length), Domination element lexicographic numbers, Fitness of new candidate solution. NewCandidate *prev, *next; // Pointers to previous & next new candidate solution. }; NewCandidate *Candidates = NULL, *newcandidateindex, *bestcandidateindex; // Generate new candidate list. HistoryMove *History = NULL, *historyindex; // Generate Tabu search recency-based memory history list. long int DomArrayNumber[L], BestSolution[L], counter1, counter2, counter3, counter4, *tmpArray = new(long int [L]), Fitness, BestFitness = 0, historycount = 0; short int DomArray[L][n], dcounter = 0, curmove; // Playing set (of cardinality L), Playing set counter, current move evaluated in the Tabu search. set > DAN; set >::iterator i; bool movetabu; // Classifies a move as tabu or non-tabu. srandom(time(NULL)); // Initialise pseudo random number generator. while (DAN.size() < L) // Generate random initial candidates. DAN.insert((long int)(((random())/(float)RAND MAX)*NumTickets)+1); i = DAN.begin(); for (counter1 = 0;i != DAN.end();DomArrayNumber[counter1++] = *i++); // Order domination elements lexicographically. nextiteration: curmove = (short int)((random()/(float)RAND MAX)*200); // Determine next neighbouring move. if (curmove < 1) curmove = 1; else if (curmove < 199) curmove = 2; else curmove = 3; // (curmove == 199) if (curmove == 1) { // MOVE 1 newcandidateindex = new(NewCandidate); newcandidateindex->move = curmove; // Store move. newcandidateindex->wrapdirection = 0; // Direction ? (left). newcandidateindex->wraplength = (long int)((random()/(float)RAND MAX)*NumTickets)+1; // Determine wrap length. for (counter1 = 0; counter1 < L;counter1++) { // Perform ? (left) wrap-around (modulo NumTickets). tmpArray[counter1] = (DomArrayNumber[counter1] - newcandidateindex->wraplength + NumTickets) % NumTickets; if (tmpArray[counter1] == 0) tmpArray[counter1] = NumTickets; } newcandidateindex->DomNumbers = tmpArray; newcandidateindex->next = newcandidateindex->prev = newcandidateindex; // First element linked list. Candidates = newcandidateindex; // Insert candidate solution in new candidate solution list (Candidates == NULL). newcandidateindex = new(NewCandidate); newcandidateindex->move = curmove; newcandidateindex->wrapdirection = 1; // Direction ? (right). newcandidateindex->wraplength = Candidates->wraplength; // Copy wraplength. tmpArray = new(long int [L]); for (counter1 = 0; counter1 < L;counter1++) { // Perform ? (right) wrap--around (modulo NumTickets). tmpArray[counter1] = (DomArrayNumber[counter1] + newcandidateindex->wraplength) % NumTickets; if (tmpArray[counter1] == 0) tmpArray[counter1] = NumTickets; } newcandidateindex->DomNumbers = tmpArray; newcandidateindex->next = newcandidateindex->prev = Candidates; // Add new candidate solution to current solution list. Candidates->prev = Candidates->next = newcandidateindex; } else if (curmove == 2) { // MOVE 2 newelementchange: dcounter = (short int)((random()/(float)RAND MAX)*L); // Choose a bit to change. A.5. Tabu search algorithm (Algorithm 6) 163 counter1 = DomArrayNumber[dcounter]; // Store original bit value. // Determine range of values new bit may assume/take. (dcounter == 0 ? counter2 = 1 : counter2 = DomArrayNumber[dcounter-1]+1); (dcounter == L-1 ? counter3 = NumTickets+1 : counter3 = DomArrayNumber[dcounter+1]-1); if (counter2 == counter3) goto newelementchange; // Redo choice of element to be changed. while (counter2 < counter3) { if (Candidates == NULL) { // No candidate solution exist. Candidates = new(NewCandidate); Candidates->prev = Candidates->next = Candidates; } else { // (Candidates != NULL) newcandidateindex = Candidates->prev; //Record last entered candidate solution position. Candidates->prev = new(NewCandidate); // Generate new candidate solution. newcandidateindex->next = Candidates->prev; // Add new candidate solution to list. Candidates->prev->next = Candidates; Candidates->prev->prev = newcandidateindex; } Candidates->prev->DomNumbers = new(long int [L]); for (counter4 = 0;counter4 < L;counter4++) Candidates->prev->DomNumbers[counter4] = DomArrayNumber[counter4]; // Copy original information. Candidates->prev->DomNumbers[dcounter] = counter2; Candidates->prev->bitchange = dcounter; // Store changed bit. Candidates->prev->bitpos = counter2; Candidates->move = curmove; // Store move. counter2++; // Move to next possible solution. if (counter2 == counter1) counter2++; // Jump over "current solution." } } else { // (curmove == 3), MOVE 3 numelements = ((int)((random()/(float)RAND MAX)*50)+1)*100; // SectorSize determining sector size of move 3. SectorSize = (long int)((-2*fact(m)*fact(m-n)*fact(n)+3*pow(fact(m-n),2)*pow(fact(n),2)+4*NumTickets*pow(fact(m-n),2) *pow(fact(n),2)-fact(m-n)*fact(n)*sqrt(8*pow(fact(m),2)-16*NumTickets*fact(m)*fact(m-n)*fact(n) +(numelements/100)*801*pow(fact(m-n),2)*pow(fact(n),2)+8*pow(NumTickets,2)*pow(fact(m-n),2) *pow(fact(n),2)))/(4*pow(fact(m-n),2)*pow(fact(n),2))); for (counter1 = 1;counter1 <= (NumTickets-(2*SectorSize)+1);counter1++) { for (counter2 = counter1+SectorSize;counter2 <= (NumTickets-SectorSize+1);counter2++) { counter3 = 0; if (Candidates == NULL) { // No candidate solution exist. Candidates = new(NewCandidate); Candidates->prev = Candidates->next = Candidates; } else { // (Candidates != NULL) newcandidateindex = Candidates->prev; // Record last entered candidate solution position. Candidates->prev = new(NewCandidate); // Generate new candidate solution. newcandidateindex->next = Candidates->prev; // Add new candidate solution to list. Candidates->prev->next = Candidates; Candidates->prev->prev = newcandidateindex; } Candidates->prev->DomNumbers = new(long int [L]); do { if ((DomArrayNumber[counter3] >= counter1) && (DomArrayNumber[counter3] < (counter1+SectorSize))) Candidates->prev->DomNumbers[counter3++] = DomArrayNumber[counter3]+(counter2-counter1); else if ((DomArrayNumber[counter3] >= counter2) && (DomArrayNumber[counter3] < (counter2+SectorSize))) Candidates->prev->DomNumbers[counter3++] = DomArrayNumber[counter3]-(counter2-counter1); else // ((DomArrayNumber[counter3] < counter1) || ((DomArrayNumber[counter3] >= counter1+SectorSize) && (DomArrayNumber[counter3] < counter2)) || (DomArrayNumber[counter3] >= counter2+SectorSize)) Candidates->prev->DomNumbers[counter3++] = DomArrayNumber[counter3]; } while (counter3 < L); Candidates->prev->move = curmove; // Store move. Candidates->prev->sec1start = counter1; // Store move information. Candidates->prev->sec2start = counter2; Candidates->prev->seclength = SectorSize; } } } newcandidateindex = Candidates; do { if (curmove != 2) { DAN.erase(DAN.begin(), DAN.end()); // Empty set. for (counter1 = 0; counter1 < L;DAN.insert(newcandidateindex->DomNumbers[counter1++])); i = DAN.begin(); for (counter1 = 0;i != DAN.end();newcandidateindex->DomNumbers[counter1++] = *i++); // Lexicographic ordering. } newcandidateindex->Fitness = fitness(m, n, k, L, NumTickets, newcandidateindex->DomNumbers); // Determine ?`(m,n; k). newcandidateindex = newcandidateindex->next; // Move to next element in candidate solution list. } while (newcandidateindex != Candidates); movetabu = false; // Initialise move as non-tabu. bestcandidateindex = newcandidateindex = Candidates; // Initialise best solution. do { // Choose neighbouring solution from candidate solutions. if (History != NULL) { // Check recency-based memory for tabu moves. historyindex = History; do { if (historyindex->move == newcandidateindex->move) // Move may possibly be tabu. if (newcandidateindex->move == 1) // MOVE 1 if ((newcandidateindex->wrapdirection == historyindex->wrapdirection) && (newcandidateindex->wraplength == historyindex->wraplength)) movetabu = true; // Move is clasified as tabu. else if (newcandidateindex->move == 2) // MOVE 2 if ((newcandidateindex->bitchange == historyindex->bitchange) && 164 APPENDIX A. COMPUTER PROGRAMS ((newcandidateindex->bitpos > historyindex->bitpos-(long int)(NumTickets/(float)(L*tabutenure))) && (newcandidateindex->bitpos < historyindex->bitpos+(long int)(NumTickets/(float)(L*tabutenure))))) movetabu = true; // Move is classified as tabu. else // (newcandidateindex->move == 3), MOVE 3 if ((newcandidateindex->sec1start == historyindex->sec1start) && (newcandidateindex->sec2start == historyindex->sec2start)) movetabu = true; // Move is classified as tabu. historyindex = historyindex->next; // Move to next recency-based history/memory element (in Tabu list). } while (historyindex != History); } if (!movetabu) if (bestcandidateindex->Fitness < newcandidateindex->Fitness) bestcandidateindex = newcandidateindex; else // (movetabu) if (BestFitness < newcandidateindex->Fitness) // Asperation criterion (move tabu but yields improvement). bestcandidateindex = newcandidateindex; movetabu = false; // Clear move as non-tabu. newcandidateindex = newcandidateindex->next; // Select next candidate solution. } while (newcandidateindex != Candidates); // Add selected move to new solution to recency-based history/memory (Tabu list). if (History == NULL) { History = new(HistoryMove); History->next = History->prev = History; historyindex = History; } else historyindex = new(HistoryMove); // (History != NULL) historyindex->move = bestcandidateindex->move; if (bestcandidateindex->move == 1) { // MOVE 1 historyindex->wrapdirection = 1 - bestcandidateindex->wrapdirection; historyindex->wraplength = bestcandidateindex->wraplength; } else if (bestcandidateindex->move == 2) { // MOVE 2 historyindex->bitchange = bestcandidateindex->bitchange; historyindex->bitpos = bestcandidateindex->bitpos; } else { // (bestcandidateindex->move == 3), MOVE 3 historyindex->sec1start = bestcandidateindex->sec2start; historyindex->sec2start = bestcandidateindex->sec1start; historyindex->seclength = bestcandidateindex->seclength; } History->prev->next = historyindex; // Insert best candidate solution move to recency-based memory tabu list. historyindex->prev = History->prev; historyindex->next = History; History->prev = historyindex; if (historycount > tabutenure) { historyindex = History; History->prev->next = History->next; History->next->prev = History->prev; History = History->next; historyindex->next = historyindex->prev = NULL; delete historyindex; // Remove oldest tabu move from recency-based history/memory tabu list. } else historycount++; // (historyindex <= tabutenure) Fitness = bestcandidateindex->Fitness; // Store current new candidate solution. for (counter1 = 0;counter1 < L;counter1++) DomArrayNumber[counter1] = bestcandidateindex->DomNumbers[counter1]; cerr << setw(6) << curiter++ << setw(10) << Fitness << ?/? << NumTickets << ? (Move ? << curmove << ? : ?; if (curmove == 1) // MOVE 1 cerr << ?direction = ? << bestcandidateindex->wrapdirection << ?, length = ? << bestcandidateindex->wraplength << ?)?; else if (curmove == 2) // MOVE 2 cerr << ?bitchange = ? << bestcandidateindex->bitchange << ?, bitpos = ? << bestcandidateindex->bitpos << ?)?; else // (curmove == 3), MOVE 3 cerr << ?sec1start = ? << bestcandidateindex->sec1start << ?, sec2start = ? << bestcandidateindex->sec2start << ?, seclength = ? << bestcandidateindex->seclength << ?, numelements = ? << numelements << ?)?; if (BestFitness < bestcandidateindex->Fitness) { // Store best solution found thus far. BestFitness = bestcandidateindex->Fitness; for (counter1 = 0;counter1 < L;counter1++) BestSolution[counter1] = bestcandidateindex->DomNumbers[counter1]; cerr << setw(3) << ?*? << endl; } else cerr << endl; while (Candidates != Candidates->next) { // Clear all generated candidate solutions. newcandidateindex = Candidates; Candidates->prev->next = Candidates->next; Candidates->next->prev = Candidates->prev; Candidates = Candidates->next; newcandidateindex->next = newcandidateindex->prev = NULL; delete [] newcandidateindex->DomNumbers; delete newcandidateindex; // Remove generated candidate from solution list. } Candidates->next = Candidates->prev = NULL; delete Candidates; Candidates = NULL; if (curiter <= iter) goto nextiteration; // Iterations not finished. short int index1, index2, index3, index4, indexm, indexn, indexk; long int tmpsum, tmpsumback = 0; cerr << endl << ?Best solution found : (fitness ? << BestFitness << ?/? << NumTickets << ?)? << endl; // Determine actual tickets corresponding to lexicographic ticket numbers of the Best solution found. for (index1 = 0;index1 < L;index1++) { indexm = m; indexn = n; tmpsum = tmpsumback = 0; index4 = 1; for (index2 = 0;index2 < n-1;index2++) { index3 = 1; tmpsum = tmpsumback; while (index3 < m) { tmpsumback = tmpsum; tmpsum += round((long double)fact(indexm-index3)/(long double)(fact(indexn-1)*fact(indexm-index3-indexn+1))); if (tmpsum >= DomArrayNumber[index1]) { DomArray[index1][index2] = index4++; goto nextelement2; } index3++; index4++; } nextelement2: A.6. Classical genetic algorithm 165 indexm = m - DomArray[index1][index2]; // Rescale search range. indexn--; } DomArray[index1][n-1] = DomArray[index1][n-2] + DomArrayNumber[index1] - tmpsumback; // Pad last element. for (index2 = 0;index2 < n;index2++) cerr << setw(3) << DomArray[index1][index2]; cerr << endl; } return 0; // Exit program. } A.6 Classical genetic algorithm #include // Header file for receiving input and generating output. #include // Header file for manipulating output strings. #include // Header file for using atoi (int char *) function. #include // Header file for calculating iteration times. #include // Header file for mathematical functions. #include // Header file for file input/output. #include // STL header file for handling sets. #include // STL header file for using iterators. #include ?randoma.h? // Header file for using Mersenne Twister pseudo-random number generator [78]. using namespace std; long double combination (const int, const int); long double combination (const int m, const int n) { if ((n == 1) || (n == m-1)) return (long) m; // ` m 1 ? = ` m (m?1) ? = m. if ((m == n) || (n == 0)) return 1; // ` m m ? = 1. if (n > m) return 0; // If n > m `m n ? = 0. long double fraction = m; // Generate the sequence (m?i+1)!i! where i = 2, . . . , n. for (short int i = 2; i <= n; fraction = fraction * (m - i + 1) / i++); return (long double) fraction; } int main(int argc, char* argv[]) { if ((argc > 1) && (argc < 7)) { // If insufficient command line parameters were given by the user. cerr << endl << ?\t\tGenetic algorithm for generating lottery sets for ?m,n; k?? << endl; cerr << ?\tUsage: ganormal m n k (where you supply the values for the lottery ?m,n; k?)? << endl << endl; return 0; } short int m, n, k, L, population, generations; time t StartTime; if (argc == 1) { // If no command line parameters were given by the user, read from standard input. cerr << endl << ?\tGenetic algorithm for generating lottery sets for ?m,n; k?? << endl << endl; cerr << ?\tPlease enter the following lottery parameters for ?m,n; k?:? << endl << endl; cerr << ?m = ?; cin >> m; cerr << ?n = ?; cin >> n; cerr << ?k = ?; cin >> k; cerr << ?L = ?; cin >> L; cerr << endl << endl << ?\tPlease enter the following genetic algorithm parameters:? << endl << endl; cerr << ?Population size = ?; cin >> population; cerr << ?# of generations = ?; cin >> generations; } else { // (argc != 1) Sufficient command line parameters were given by the user. m = (short int) atoi (argv[1]); n = (short int) atoi (argv[2]); k = (short int) atoi (argv[3]); L = (short int) atoi (argv[4]); population = (short int) atoi (argv[5]); generations = (short int) atoi (argv[6]); cerr << endl << ?\tGenetic algorithm for generating lottery sets for ?? << m << ?,? << n << ?;? << k << ??? << endl << endl; } // Check whether the user input was correct/valid. if ((n >= m) || (k >= n) || (k <= 0) || (population < 2) || (generations < 2)) { cerr << endl << ?Incorrect/invalid lottery parameter input. . . ? << endl; return 0; } if ((population % 2) != 0) { cerr << endl << ?Population size has to be even and > 2. . . ? << endl; return 0; } 166 APPENDIX A. COMPUTER PROGRAMS short int CurrentTicket[(const short int) n], NeighbouringTicket[(const short int) n], index = n; long int r = 0, i, j, AdjacencyCounter, NeighbouringTicketNumber, VertexCounter; for (short int i = k; i < n; i++) // Regularity of lottery graph G?m,n; k?. r += (long int) (combination (n,i) * combination (m - n, n - i)); const long int NumTickets = (long int) combination (m, n), q = (long int) (r * NumTickets / 2); // Order of lottery graph G?m,n; k?, 2 ? size of lottery graph G?m,n; k?. struct fitnessinfo { long int value, candidate; }; set > GAPopulation[(const long int) population][(const long int) L], CurrentSet, TempSet; // All candidates/chromosomes/playing sets of population. long int GAFitness[(const long int) population], CurrentGeneration = 0, CurrentTicketNumber, FitnessIndex, TempFitnessSum; // Fitness of candidates/chromosomes in population. unsigned long int GACrossoverPairs[(const long int) population], GAFitnessSum, GAMAXFitness, GAminFitness; double GAmEAnFitness; // Generate random initial population (consisting of cardinality L playing sets with random n-sets). cerr << ?Initialising GA with random population. . . ?; TRandomInit ((int) time (NULL)); // Initialise Mersenne twister pseudo-random number generator. for (i = 0; i < population; i++) for (j = 0; j < L; j++) { GAPopulation[i][j].clear (); while (GAPopulation[i][j].size () < n) GAPopulation[i][j].insert (GAPopulation[i][j].begin (), ((short int) TIRandom (0, m - 1))); } cerr << ?done!? << endl << endl << ? # min fitness mEAn fitness MAX fitness? << endl; cerr << ??? ????- ????? ????-? << endl; StartTime = time (NULL); // Capture start time of algorithm. goto startGA; mutationoperator: // Randomly select (with uniform distribution) cMutate candidates, and randomly (with uniform distribution) mutate // gMutate genes. static short int cMutate = (population / 10), gMutate = (L / 50); // cMutate% of chromosomes in population undergo // mutation, gMutate% of genes in chromosome undergo mutation. static short int MutateChromosome, MutateGene; for (i = 0; i < cMutate; i++) { // Mutate cMutate% of chromosomes in population. MutateChromosome = TIRandom (0, population - 1); // MutateChromosome ? {0, . . . , population? 1}. for (j = 0; j < gMutate; j++) { // Mutate gMutate% of genes in chromosome. MutateGene = TIRandom (0, L - 1); // MutateGene ? {0, . . . , L? 1}. GAPopulation[MutateChromosome][MutateGene].clear (); while (GAPopulation[MutateChromosome][MutateGene].size () < n) GAPopulation[MutateChromosome][MutateGene].insert (GAPopulation[MutateChromosome][MutateGene].begin (), ((short int) TIRandom (0, m - 1))); // Add completely new/random n-set. } } crossoveroperator: // Perform the crossover operator on the population of candidates. // PRECONDITION: Candidates are already paired for crossover. for (CurrentTicketNumber = 0; CurrentTicketNumber < population; CurrentTicketNumber++) if (GACrossoverPairs[CurrentTicketNumber] != -1) { i = TIRandom (0, L - 1); // Pick n-set to be exchanged from 1st candidate. j = TIRandom (0, L - 1); // Pick n-set to be exchanged from 2nd candidate. // Exchange n--sets of selected playing sets: c? a; a? b; b? c. TempSet.clear (); copy (GAPopulation[CurrentTicketNumber][i].begin (), GAPopulation[CurrentTicketNumber][i].end (), inserter (TempSet, TempSet.end ())); // Copy n--set te temporary set (c? a). GAPopulation[CurrentTicketNumber][i].clear (); // Copy n--set of 2nd candidate to 1st candidate (a? b). copy (GAPopulation[GACrossoverPairs[CurrentTicketNumber]][j].begin (), GAPopulation[GACrossoverPairs[CurrentTicketNumber]][j].end (), inserter (GAPopulation[CurrentTicketNumber][i], GAPopulation[CurrentTicketNumber][i].end ())); GAPopulation[GACrossoverPairs[CurrentTicketNumber]][j].clear (); // Copy n--set of temporary set to 2nd candidate (b? c). copy(TempSet.begin (), TempSet.end (), inserter(GAPopulation[GACrossoverPairs[CurrentTicketNumber]][j], GAPopulation[GACrossoverPairs[CurrentTicketNumber]][j].end ())); GACrossoverPairs[CurrentTicketNumber] = GACrossoverPairs[GACrossoverPairs[CurrentTicketNumber]] = 0 - 1; } startGA: // Update population fitness and determine crossover pairs. // Initialise to the first lexicographic n-set {0, . . . , n? 1}. for (i = 0; i < n; i++) CurrentTicket[i] = i; CurrentTicket[n - 1]--; for (i = 0; i < population; GAFitness[i++] = 0); // Initialise fitness of each candidate in population. A.7. Intelligent genetic algorithm (Algorithm 7) 167 for (CurrentTicketNumber = 0; CurrentTicketNumber < NumTickets; CurrentTicketNumber++) { // Generate the next lexicographic lottery ticket. CurrentTicket[index - 1]++; if (CurrentTicket[index - 1] == m) { CurrentTicket[index - 1]--; while ((index > 0) && (CurrentTicket[index - 1] == m - (n - index + 1))) index--; if (index > 0) CurrentTicket[index - 1]++; for (i = index; i < n; i++) CurrentTicket[i] = CurrentTicket[i - 1] + 1; index = n; } for (CurrentSet.clear (), i = 0; i < n; CurrentSet.insert (CurrentSet.end (), CurrentTicket[i++])); // Initialise ticket in set form. for (i = 0; i < population; i++) // Check for common k-subsets with current ticket in whole of population. for (j = 0; j < L; j++) { TempSet.clear (); // Clear temporary set to determine intersection. set intersection (GAPopulation[i][j].begin (), GAPopulation[i][j].end (), CurrentSet.begin (), CurrentSet.end (), inserter (TempSet, TempSet.end ())); if (!(TempSet.size () < k)) { // Determine whether sets share at least a common k-subset. GAFitness[i]++; break; } } } for (GAFitnessSum = i = 0; i < population; GAFitnessSum += GAFitness[i++]); // Tally fitness of population candidates (used in distribution of pairing candidates for crossover). for (GAminFitness = NumTickets, GAmEAnFitness = GAMAXFitness = i = 0; i < population; i++) { if (GAFitness[i] < GAminFitness) GAminFitness = GAFitness[i]; // Keep track of minimum fitness of population of candidates. else if (GAFitness[i] > GAMAXFitness) GAMAXFitness = GAFitness[i]; // Keep track of MAXIMUM fitness of population of candidates. } GAmEAnFitness = (GAFitnessSum / population); // Determine the mEAn fitness of the population of candidates. // Pair candidates for crossover relative to individual fitness (fitter/less fit candidates are more likely to be paired with fitter/less fit candidates). while (GAFitnessSum > 0) { FitnessIndex = TIRandom (1, GAFitnessSum); // Select 1st candidate, relative to fitness of whole population. for (TempFitnessSum = i = 0; TempFitnessSum < FitnessIndex; TempFitnessSum += GAFitness[i++]); // Find 1st candidate. GAFitnessSum -= GAFitness[--i]; GAFitness[i] = 0; FitnessIndex = TIRandom (1, GAFitnessSum); // Select 2nd candidate, relative to fitness of left over population. for (TempFitnessSum = j = 0; TempFitnessSum < FitnessIndex; TempFitnessSum += GAFitness[j++]); // Find 2nd candidate. GAFitnessSum -= GAFitness[--j]; GAFitness[j] = 0; GACrossoverPairs[i] = j; GACrossoverPairs[j] = i; } // Output minimum, mEAn and MAXIMUM fitness of population. if (CurrentGeneration++ <= generations) { cerr << setw (5) << (CurrentGeneration - 1) << ? ? << setw (9) << setprecision (4) << setiosflags (ios::showpoint) << (100 * (double) GAminFitness / NumTickets) << ?% ? << setw (10) << setprecision (4) << setiosflags (ios::showpoint) << (100 * GAmEAnFitness / NumTickets) << ?% ? << setw (9) << setprecision (4) << setiosflags (ios::showpoint) << (100 * (double) GAMAXFitness / NumTickets) << ?%? << endl; if (TRandom () > 0.5) goto mutationoperator; else // !(TRandom()? 0.5) goto crossoveroperator; } else { // (CurrentGeneration++ >= generations) } return 0; // Exit program. } A.7 Intelligent genetic algorithm (Algorithm 7) #include // Header file for receiving input and generating output. #include // Header file containing C++ standard libraries. #include // Header file for manipulating output. #include // Header file for using files. #include // Header file for calculating iteration times. #include // Header file for mathematical functions. #include // Header file for Standard Template Library (STLs) . // Fitness of playing set is given by: fitness = # vertices dominated by candidate# vertices in graph = ?`(m,n; k) 168 APPENDIX A. COMPUTER PROGRAMS long double fact (const int &); long int round (const long double); bool ValidTicket (const short int *, const short int &, const short int &); // Compute the factorial of n (i.e. n!). long double fact (const int &n) { if (n < 2) return 1; // Stop recursion. else return n * fact(n - 1); // (n > 1). } // Rounds a number off to the nearest integer to avoid possible numerical truncation errors. long int round (const long double n) { long int flrnum = (long int)floor(n); if (n - flrnum < 0.5) return flrnum; else return (long int)ceil(n); // (n - flrnum >= 0.5) } // Determine whether a ticket (n-set) is valid (ticket contains no double numbers). bool ValidTicket(short int *ticket, const short int &m, const short int &n) { multiset > index; multiset >::iterator i; for (short int counter = 0;counter < n;counter++) { index.insert(ticket[counter]); // Add number to index. if (index.count(ticket[counter]) > 1) return false; // Ticket is invalid. } i = index.begin(); // Arrange ticket elements lexicographically. for (short int counter = 0;i != index.end();ticket[counter++] = *i++); return true; // Ticket is valid. } int main () { short int m, n, k, L, p = 1, cMutate = 1, gMutate = 1; // Parameters for the lottery , playing set size (L), population size (p), candidate mutate size (cMutate < p), mutate set size (gMutate < L). long int t, gen, iter=1; // Time limit (t), generation limit (gen), number of iterations on the same parameters (iter). cout << endl << ?\t GENETIC ALGORITHM (GA)? << endl; cout << ?Please specify the following parameters for the lottery ?m,n;k?:? << endl; cout << ?m = ?; cin >> m; cout << ?n = ?; cin >> n; cout << ?k = ?; cin >> k; // If the user specified invalid lottery parameters. if ((n > m-1) || (k > n-1) || (m < 3) || (n < 2) || (k < 1)) { cout << endl << ?Invalid lottery parameters entered.? << endl; return 0; // Exit program. } const long int NumTickets = round(fact(m)/(fact(n)*(fact(m-n)))); cout << endl << ?The order of the lottery graph G?? << m << ?,? << n << ?;? << k << ?? is ? << NumTickets << ?.? << endl; cout << endl << ?Please specify the following GA parameters:? << endl; cout << ?Playing set size = ?; cin >> L; do { if (gMutate >= L) cout << ?Mutation set size must be strictly less than the playing set size (? << L << ?).? << endl; cout << ?gMutation set size = ?; cin >> gMutate; } while (gMutate >= L); while (floor(p/2) < ((double)p/2)) { cout << ?Population size = ?; cin >> p; if (floor(p/2) < ((double)p/2)) cout << ?Population size needs to be a multiple of 2.? << endl; } do { if (cMutate >= p) cout << ?# of candidates to mutate per generation must be strictly less than the population size (? << p << ?).? << endl; cout << ?cMutation set size = ?; cin >> cMutate; } while (cMutate >= p); cout << ?Generation limit = ?; cin >> gen; cout << ?Time limit (in sec) = ?; cin >> t; // If the user specified invalid GA parameters. if ((L < 2) || (L > (NumTickets-1)) || (p < 2) || (gen < 2) || (t < 2) || (cMutate < 1) || (gMutate < 1) || (iter < 1)) { cout << endl << ??Invalid GA parameters." << endl; return 0; // Exit program. } short int Population[p][L][n], TempInt, CurrentNumber = n, CurTicket[n], dcounter, tcounter, Intersect = 0, candidate1, candidate2; // A GA population (of size p) consisting of playing sets (of size L). float GAPopFit[p], selection, ccandidate, fitnessmin, fitnessavg, fitnessmax; // Vector for storing fitness of candidate playing sets (GAPopFit), values used for determining crossover partners (fitnesssum, selection, ccandidate), generation minimum fitness (fitnessmin), generation average fitness (fitnessavg), generation maximum fitness (fitnessmax). time t StartTime; // Trace execution time. long int NumDominated, fitnesssum, UniquelyDominated[p+1][L], curgen = 0, NewFitness[L]; set CrossoverIndex, CrossoverGenes; // (Integrity) Check for crossover procedure (CrossoverIndex), check genes used during crossover procedure (CrossoverGenes). struct Fitness { long int fitness; // Fitness of generation candidate (given by the number of dominated vertices. bool used, changed; // Candidate has been used and/or changed for crossover during a previous crossover procedure. short int number; // Generation candidate indentification number. Fitness *next; // Pointer to next fitness information of nextcandidate in linked-list. }; Fitness *FitnessList = new Fitness, *TempFitness, *TempFitness2; fstream GAFitnessFile(?GAFitness.txt?, ios::out); // Open ?GAFitness.txt? for output of GA fitness information. if (!GAFitnessFile) { // Check whether the file ?GAFitness.txt? could be opened. A.7. Intelligent genetic algorithm (Algorithm 7) 169 cerr << ?The file \?GAFitness.txt\? could not be opened.? << endl; exit(1); // Exit program. } fstream GAPopulationFile(?GAPopulation.txt?, ios::out); // Open ?GAPopulation.txt? for output of GA population info. if (!GAPopulationFile) { // Check whether the file ?GAPopulation.txt? could be opened. cerr << ?The file \?GAPopulation.txt\? could not be opened.? << endl; exit(1); // Exit program. } GAPopulationFile << ?GA for ?? << setw(2) << m << ?,? << setw(2) << n << ?;? << setw(2) << k << ?? :? << endl; GAFitnessFile << ?GA for ?? << setw(2) << m << ?,? << setw(2) << n << ?;? << setw(2) << k << ?? :? << endl << endl; cerr << endl << ?Initialising GA with ? << p << ? random playing set candidates, please wait. . . ?; GAFitnessFile << ?GA Parameters:? << endl << ?Playing set size = ? << setw(5) << L << endl << ?gMutation set size = ? << setw(5) << gMutate << endl << ?Population size = ? << setw(5) << p << endl << ?cMutation set size = ? << setw(5) << cMutate << endl << ?Generation limit = ? << setw(5) << gen << ? generations? << endl << ?Time limit = ? << setw(5) << t << ? seconds? << endl << endl; GAFitnessFile << ?Initialising GA population. . . ?; srandom(StartTime = time(NULL)); // Initialise execution time & pseudo random number generator. for (short int i = 0;i < p;i++) // Initialise GA with random population consisting of (p) playing set candidates. for (short int j = 0;j < L;j++) do for (short int l = 0;l < n;l++) Population[i][j][l] = ((short int)(((random())/(float)RAND MAX)*m)+1); // Generate random ticket. while (!ValidTicket(Population[i][j],m,n)); // Check whether generated ticket is valid. GAFitnessFile << ?OK! (? << time(NULL)-StartTime << ? s)? << endl << ?Initialising GA fitness. . . ?; StartTime = time(NULL); // Re-initialise execution time. fitnessmax = fitnesssum = 0; fitnessmin = 1; TempFitness = FitnessList; for (short int PopNum = 0;PopNum < p;PopNum++) { NumDominated = 0; for (short int i = 0;i < n;i++) CurTicket[i] = i+1; // Initialise ticket to [1,2,...,n] for (long int counter = 1;counter <= NumTickets;counter++) { Intersect = 0; // Check whether current ticket is dominated. for (short int DomTicketNum = 0;(DomTicketNum < L) && (Intersect < k);DomTicketNum++) { Intersect = dcounter = tcounter = 0; while ((dcounter < n) && (tcounter < n) && (Intersect < k)) if (Population[PopNum][DomTicketNum][dcounter] < CurTicket[tcounter]) dcounter++; else if (Population[PopNum][DomTicketNum][dcounter] > CurTicket[tcounter]) tcounter++; else { // (Population[PopNum][DomTicketNum][dcounter] == CurTicket[tcounter]) Intersect++; dcounter++; tcounter++; // Tickets intersect in 1 element. } if (Intersect == k) NumDominated++; // Check whether current ticket is dominated by candidate playing set. } CurTicket[CurrentNumber-1]++; // Generate next ticket in lexicographic sequence. if (CurTicket[CurrentNumber-1] > m) { CurTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurTicket[CurrentNumber-1]++; for (short int i = CurrentNumber;i < n;i++) CurTicket[i] = CurTicket[i-1] + 1; CurrentNumber = n; } } GAPopFit[PopNum] = (float)NumDominated/(float)NumTickets; // Store playing set candidate fitness. TempFitness->next = new Fitness; TempFitness = TempFitness->next; TempFitness->fitness = NumDominated; // Store playing set candidate fitness. TempFitness->number = PopNum; TempFitness->next = NULL; TempFitness->used = false; if (GAPopFit[PopNum] > fitnessmax) fitnessmax = GAPopFit[PopNum]; // Store maximum fitness of generation. if (GAPopFit[PopNum] < fitnessmin) fitnessmin = GAPopFit[PopNum]; // Store minimum fitness of generation. fitnesssum += NumDominated; } fitnessavg = fitnesssum/p; // Store average fitness of generation. cerr << ?finished!? << endl; GAFitnessFile << ?OK! (? << time(NULL)-StartTime << ? seconds)? << endl << endl; cerr << ?Genetic algorithm initialised, running. . . (generation limit ? << gen << ? generations, time limit ? << t << ?s)? << endl; StartTime = time(NULL); // Re-initialise execution time. GAFitnessFile << ? 0?; // Output initial GA population fitness. for (TempFitness = FitnessList;TempFitness->next != NULL;TempFitness = TempFitness->next) GAFitnessFile << setw(9) << setprecision(4) << setiosflags(ios::fixed|ios::showpoint) << TempFitness->next->fitness; GAFitnessFile << endl; short int inputgene1, outputgene1, inputgene2, outputgene2, curcandidate, TempArray[L]; long int newcandidate1fitness, newcandidate2fitness; while ((time(NULL)-StartTime < t) && (curgen++ < gen)) { // Start GA. GAPopulationFile << ?Generation ? << setw(4) << curgen << ?:? << endl; // Write GA Population to file. for (short int i = 0;i < L;i++) { for (short int j = 0;j < p;j++) { GAPopulationFile << ?{? << Population[j][i][0]; for (short int l = 1;l < n;l++) GAPopulationFile << ?,? << Population[j][i][l]; GAPopulationFile << ?} ?; } GAPopulationFile << endl; } 170 APPENDIX A. COMPUTER PROGRAMS GAPopulationFile << endl; for (TempFitness = FitnessList,fitnesssum = 0;TempFitness->next != NULL;TempFitness = TempFitness->next) { TempFitness->next->used = TempFitness->next->changed = false; // Candidate has not been used nor changed during crossover operation/procedure. fitnesssum += TempFitness->next->fitness; // Determine fitness range. } // CROSSOVER procedure (mating) relative to fitness of chromosomes (candidate playing sets). for (short int cocounter = 0;cocounter < p/2;cocounter++) { // Find crossover partners for 12 of population. // Determine crossover partners for crossover procedure. ccandidate = (((random())/(float)RAND MAX)*(float)fitnesssum/(float)NumTickets); // First mating candidate. selection = 0; TempFitness = FitnessList; while (selection < ccandidate) { // Search for chosen first candidate. while (TempFitness->next->used) TempFitness = TempFitness->next; selection += (float)TempFitness->next->fitness/(float)NumTickets; TempFitness = TempFitness->next; } candidate1 = TempFitness->number; // Store first crossover candidate. TempFitness->used = true; // Candidate has been used for crossover during this crossover procedure. fitnesssum -= TempFitness->fitness; // Remove chosen first candidate from fitness list by rescaling fitness range for next candidate. ccandidate = (((random())/(float)RAND MAX)*(float)fitnesssum/(float)NumTickets); // Second mating candidate. selection = 0; TempFitness2 = FitnessList; while (selection < ccandidate) { // Search for chosen second candidate. while (TempFitness2->next->used) TempFitness2 = TempFitness2->next; selection += (float)TempFitness2->next->fitness/(float)NumTickets; TempFitness2 = TempFitness2->next; } candidate2 = TempFitness2->number; // Store second crossover candidate. TempFitness2->used = true; // Candidate has been used for crossover during this crossover procedure. fitnesssum -= TempFitness2->fitness; // Remove chosen second candidate from fitness list by rescaling fitness range for next candidate. // Check which single gene exchange from different crossover candidates would yield fitness increase. curcandidate = candidate1; docrossover: if (curcandidate == candidate2) { // Store evolving maximum fitness. fitnessmax = (float)(TempFitness2->fitness)/(float)NumTickets; candidate2 = candidate1; candidate1 = curcandidate; inputgene2 = -1; // Exchange between crossover candidates. } else { // (curcandidate != candidate2) || (curcandidate == candidate1) fitnessmax = (float)(TempFitness->fitness)/(float)NumTickets; inputgene1 = -1; } for (short int i = 0;i < L;i++) { // First check if input gene is equivalent to any gene in crossover candidate. Intersect = 0; for (short int j = 0;(j < L) && (Intersect < k);j++) { dcounter = tcounter = 0; Intersect = k; while ((dcounter < n) && (tcounter < n) && (Intersect == k)) if (Population[candidate1][j][dcounter] == Population[candidate2][i][tcounter]) { dcounter++; tcounter++; } else Intersect = 0; // (Population[candidate1][j][dcounter] != Population[candidate2][i][tcounter]) } if (Intersect < k) { // Input gene is distinct from all genes in first candidate. for (short int j = 0;j < L;j++) { for (short int l = 0;l < n;l++) { TempArray[l] = Population[candidate1][j][l]; Population[candidate1][j][l] = Population[candidate2][i][l]; } NumDominated = 0; // Recalculate chromosome fitness with new gene. for (short int l = 0;l < n;l++) CurTicket[l] = l+1; // Initialise ticket to [1,2,...,n] for (long int counter = 1;counter <= NumTickets;counter++) { Intersect = 0; // Check whether current ticket is dominated. for (short int DomTicketNum = 0;(DomTicketNum < L) && (Intersect < k);DomTicketNum++) { Intersect = dcounter = tcounter = 0; while ((dcounter < n) && (tcounter < n) && (Intersect < k)) if (Population[candidate1][DomTicketNum][dcounter] < CurTicket[tcounter]) dcounter++; else if (Population[candidate1][DomTicketNum][dcounter] > CurTicket[tcounter]) tcounter++; else { // (Population[candidate1][DomTicketNum][dcounter] == CurTicket[tcounter]) Intersect++; dcounter++; tcounter++; // Tickets intersect in 1 element. } if (Intersect == k) // Check whether current ticket is dominated by candidate playing set. NumDominated++; } CurTicket[CurrentNumber-1]++; // Generate next ticket in lexicographic sequence. if (CurTicket[CurrentNumber-1] > m) { CurTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurTicket[CurrentNumber-1]++; for (short int l = CurrentNumber;l < n;l++) CurTicket[l] = CurTicket[l-1] + 1; CurrentNumber = n; } } if (((float)NumDominated/(float)NumTickets) > fitnessmax) { // Store specific gene exchange information. fitnessmax = (float)NumDominated/(float)NumTickets; if (curcandidate == TempFitness->number) { inputgene1 = j; outputgene1 = i; newcandidate1fitness = NumDominated; } A.7. Intelligent genetic algorithm (Algorithm 7) 171 else { // (curcandidate != TempFitness->number) || (curcandidate == TempFitness2->number) inputgene2 = j; outputgene2 = i; newcandidate2fitness = NumDominated; } } // Copy gene information back to candidate. for (short int l = 0;l < n;l++) Population[candidate1][j][l] = TempArray[l]; } } } if (curcandidate != TempFitness2->number) { // Repeat crossover procedure for other crossover candidate. curcandidate = candidate2; goto docrossover; } // If an exchange in genes is considered reasonable (causes fitness increase). if (inputgene1 > -1) { // Change first crossover candidate. TempFitness->fitness = newcandidate1fitness; // Change candidate 1 fitness. TempFitness->changed = true; // Candidate was changed during crossover operation/procedure. for (short int j = 0;j < n;j++) { TempArray[j] = Population[candidate2][inputgene1][j]; Population[TempFitness->number][inputgene1][j] = Population[TempFitness2->number][outputgene1][j]; } } if (inputgene2 > -1) { // Change second crossover candidate. TempFitness2->fitness = newcandidate2fitness; // Change candidate 2 fitness. TempFitness2->changed = true; // Candidate was changed during crossover operation/procedure. if (inputgene1 == outputgene2) for (short int j = 0;j < n;j++) Population[TempFitness->number][inputgene2][j] = TempArray[j]; else // (inputgene1 != outputgene2) for (short int j = 0;j < n;j++) Population[TempFitness2->number][inputgene2][j] = Population[TempFitness->number][outputgene2][j]; } } for (short int i = 0;i < cMutate;i++) { // MUTATE (gMutate) elements of cMutate candidates of the population (p). candidate1 = (short int)((random()/(float)RAND MAX)*p); TempFitness = FitnessList; while (TempFitness->next->number < candidate1) // Search for selected mutation candidate. TempFitness = TempFitness->next; for (short int j = 0;j < gMutate;j++) { candidate2 = (short int)((random()/(float)RAND MAX)*L); do // Move current domination ticket to nearest neighbour (maybe further). Population[candidate1][candidate2][(short int)((random()/(float)RAND MAX)*n)] = ((short int)(((random())/(float)RAND MAX)*m)+1); while (!ValidTicket(Population[candidate1][candidate2],m,n)); // Check whether generated ticket is valid. } NumDominated = 0; // Recalculate mutated chromosome fitness. for (short int j = 0;j < n;j++) CurTicket[j] = j+1; // Initialise ticket to [1,2,...,n]. for (long int counter = 0;counter < NumTickets;counter++) { Intersect = 0; // Check whether current ticket is dominated. for (short int DomTicketNum = 0;(DomTicketNum < L) && (Intersect < k);DomTicketNum++) { Intersect = dcounter = tcounter = 0; while ((dcounter < n) && (tcounter < n) && (Intersect < k)) if (Population[candidate1][DomTicketNum][dcounter] < CurTicket[tcounter]) dcounter++; else if (Population[candidate1][DomTicketNum][dcounter] > CurTicket[tcounter]) tcounter++; else { // (Population[candidate1][DomTicketNum][dcounter] == CurTicket[tcounter]) Intersect++; dcounter++; tcounter++; // Tickets intersect in 1 element. } if (Intersect == k) NumDominated++; // Check whether current ticket is dominated by candidate playing set. } CurTicket[CurrentNumber-1]++; // Generate next ticket in lexicographic sequence. if (CurTicket[CurrentNumber-1] > m) { CurTicket[CurrentNumber-1]--; while ((CurrentNumber > 0) && (CurTicket[CurrentNumber-1] == m-(n-CurrentNumber))) CurrentNumber--; CurTicket[CurrentNumber-1]++; for (short int j = CurrentNumber;j < n;j++) CurTicket[j] = CurTicket[j-1] + 1; CurrentNumber = n; } } TempFitness->next->fitness = NumDominated; // New fitness of mutated candidate. } GAFitnessFile << setw(3) << curgen; // Write population fitness to file. for (TempFitness = FitnessList;TempFitness->next != NULL;TempFitness = TempFitness->next) GAFitnessFile << setw(9) << TempFitness->next->fitness; GAFitnessFile << endl; cerr << ?.?; if ((long int)(curgen/20) == (float)curgen/20) cerr << ? (? << setw(4) << curgen << ?/? << gen << ?)? << endl; } GAFitnessFile << ?GA simulation time: ? << time(NULL)-StartTime << ?s.? << endl; GAFitnessFile.close(); // Close the Genetic Algorithm (GA) Fitness file. GAPopulationFile.close(); // Close the Genetic Algorithm (GA) Population file. cout << endl; return 0; // Exit program. } 172 APPENDIX A. COMPUTER PROGRAMS A.8 L?(m,n; k)?set characterisation algorithm (Algorithm 8) #include // Header file for receiving input and generating output. #include // Header file for manipulating output. #include // Header file for using files. #include // Header file for standard input/output. #include // Header file for catching signals. #include // Header file for calculating iteration times. #include // Header file for mathematical functions. #include // Header file used for catching signals. #include // Header file used for deleting files (int unlink(const char *pathname)). #include // Header file for manipulating strings. using namespace std; long double combination (const int, const int); void savedata (const short int); struct PsiElement { char *Construction; // Pointer to ticket construction. long double Value; // Number of elements dominated by ticket construction. PsiElement *next, *down; }; volatile sig atomic t keepgoing = 1; PsiElement *PList = new (PsiElement), *TempPList, *TempPList2; const short int maxbranches = 20; ostringstream filename[maxbranches]; char Ticket[1024]; // Pointer to ticket construction. short int m, L, SubTree = 1, CurrentLevel; long int NumTickets[10], NumTicketsRemoved[10], SubTreeTimes[maxbranches], SubTreeConstructions[maxbranches]; time t StartBranch; long double combination (const int m, const int n) { if ((n == 1) || (n == m-1)) return (long) m; // ` m 1 ? = ` m (m?1) ? = m. if ((m == n) || (n == 0)) return 1; // ` m m ? = 1. if (n > m) return 0; // If n > m `m n ? = 0. long double fraction = m; // Generate the sequence (m?i+1)!i! where i = 2, . . . , n. for (short int i = 2; i <= n; fraction = fraction * (m - i + 1) / i++); return (long double) fraction; } void savedata (const short int cont) { SubTreeTimes[SubTree] += time (NULL) - StartBranch; // Add processing time to current subtree time. // Open file ?LottoTreeSave.txt? to store last ticket (in case of a restart). fstream SaveOutput (?LottoTreeSave.txt?, ios::out); // Check whether the file ?LottoTreeSave.txt? could be opened. if (!SaveOutput) { cerr << ?The file \?LottoTreeSave.txt\? could not be opened.? << endl; exit (0); } else { // (SaveOutput) for (short int i = 0; i < pow (2, L + 1); i++) SaveOutput << setw (3) << (short int) Ticket[i]; // Store the current ticket construction being evaluated. SaveOutput << endl; for (short int i = 1; i < CurrentLevel; i++) SaveOutput << NumTickets[i] << ? ? << NumTicketsRemoved[i] << endl; // Store the number of tickets/contructions inserted [removed] from the lottery tree. for (short int i = 0; i < SubTree; i++) SaveOutput << SubTreeConstructions[i + 1] << ? ? << SubTreeTimes[i + 1] << endl; // Store the calculation times involved in traversing the completed subtrees/branches of the lottery tree. TempPList = PList->next->next; while (TempPList != NULL) { // Write saved/valid construction of Branch Subtree to save file. for (TempPList2 = TempPList, TempPList = TempPList->next; TempPList2 != NULL; TempPList2 = TempPList2->down) { SaveOutput << setw (10) << resetiosflags (ios::showpoint) << setiosflags (ios::fixed) << setprecision (0) << TempPList2->Value << ? ?; for (short int i = 0; i < pow (2, L); i++) SaveOutput << setw (3) << (short int) TempPList2->Construction[i]; SaveOutput << endl; } } SaveOutput << endl; SaveOutput.close (); } if (!cont) exit (0); } A.8. L?(m,n; k)?set characterisation algorithm (Algorithm 8) 173 /* * Algorithm: Permutations of {1, . . . , n} [41] * * FIRST PERMUTATION is given by x(i) = i for i = 1, . . . , n. * NEXT PERMUTATION after (x(1), . . . , x(n)): * Find the largest j for which x(j) < x(j + 1) (working back from the end). * If no such j exists, then the current permutation is the last. * Interchange the value of x(j) with the least x(k) greater than x(j) with k > j; * then reverse the sequence of values of x(j + 1), . . . , x(n); * return this permutation. */ int main () { short int n, t, k, TimeLimit, Aborted; long int LimitSeconds, ConstructionNumber; long double minPsi; // Read Lotto Tree input from file. fstream LottoTreeInput (?LottoTreeInput.txt?, ios::in); // Check whether the file ?LottoTreeInput.txt? could be opened. if (!LottoTreeInput) { cerr << ?The file \?LottoTreeInput.txt\? could not be opened.? << endl; return 0; } else // (LottoTreeInput) LottoTreeInput >> m >> n >> t >> k >> L >> TimeLimit >> LimitSeconds >> minPsi >> Aborted; // Read the lottery tree parameters from the file ?LottoTreeInput.txt?. // If the user specified invalid Lottery parameters. if ((n > m - 1) || (t > m - 1) || (k > n - 1) || (k > t - 1) || (m < 3) || (n < 2) || (t < 2) || (k < 1)) { cerr << endl << ?Invalid Lottery parameters.? << endl; return 0; } char Parent[(long int) pow (2, L + 1)]; // Pointer to ticket construction Parent. char TicketDup[(long int) pow (2, L + 1)]; // Pointer to ticket duplicate. char TicketBranch[(long int) pow (2, L + 1)]; // Pointer to Ticket with whole branch (predecessor) structure. PList->next = new (PsiElement); // Create dummy element in front of list in order to manage list effectively. PList->down = PList->next->down = PList->next->next = NULL; PList->Value = PList->next->Value = combination(m,t) + 1; fstream Constructions (?Constructions.txt?, ios::out); // Check whether the file ?Constructions.txt? could be opened. if (!Constructions) { cerr << ?The file \?Constructions.txt\? could not be opened.? << endl; return 0; } else // (Constructions) Constructions << ??? << m << ?,? << n << ?,? << t << ?;? << k << ? ? : ? << L << ? tickets? << endl << endl; time t StartTime, TempTime; short int Counter, TicketCover, LastTicketSum, i, TempVar; bool LastTicketFound = false, SimilarFound = false, Dominates; short int *Permutation = new short int [L + 1], *NewPermutation = new short int [L + 1], *TempPermutation; long int DominatePercentage = 0, r = 0, TicketSize; // (Best) Number of elements that Domination Element Characterisation dominates [does not dominate], Characterisation number that dominates the most for < m,n; k >. long double Dominate = 0, TotalDominate = 0; for (Counter = 2; Counter < pow (2, L+1); Ticket[Counter] = 0, Counter++); // Clear Ticket construction. for (Counter = 1; Counter <= L; NumTickets[Counter] = NumTicketsRemoved[Counter] = 0, Counter++); // Clear Ticket Level Info. for (Counter = 1; Counter <= n; SubTreeConstructions[Counter++] = 0) // Clear number of constructions/subtree memory. filename[Counter - 1] << ??Branch" << Counter; // Initialise domination construction tree. if (!Aborted) { Parent[0] = m - n; Parent[1] = n; CurrentLevel = 2; NumTickets[1] = 1; // Lottery tree has 1 root. TicketCover = n; LastTicketSum = 0; } else { // (Aborted) fstream SavedOutput (??LottoTreeSave.txt", ios::in); // Open ??LottoTreeSave.txt" containing all the saved information. for (short int l = 0, j; l < pow (2, L + 1); l++) { SavedOutput >> j; Parent[l] = Ticket[l] = j; // Read last saved child information/construction. } // Determine the current subtree in LottoTree. for (short int l = L + 1; l > 2; l--) for (short int j = 0; j < pow (2, l - 1); Parent[j++] += Parent[j + (short int) pow (2, l - 1)]); SubTree = (short int) Parent[1]; 174 APPENDIX A. COMPUTER PROGRAMS for (short int l = 0; l < pow (2, L); l++) // Generate Parent of last child. Parent[l] = Ticket[l] + Ticket[l + (short int) pow (2, L)]; LastTicketSum = Ticket[(short int) pow (2, L)]; Counter = 0; while (Ticket[Counter + (short int) pow (2, L)] == Parent[Counter++]) LastTicketSum += Ticket[Counter + (short int) pow (2, L)]; CurrentLevel = L + 1; for (long int l = 0; l < L; l++) // Read the number of tickets [removed] per level. SavedOutput >> NumTickets[l + 1] >> NumTicketsRemoved[l + 1]; for (short int s = 0; s < SubTree; s++) SavedOutput >> SubTreeConstructions[s + 1] >> SubTreeTimes[s + 1]; // Read times from ?LottoTreeSave.txt? file. for (short int s = 1; s < SubTree; s++) Constructions << ?Subtree ? << s << ? traversed in ? << SubTreeTimes[s] << ? seconds. . . ? << endl; // Read valid constructions found in last traversed subtree (necessarily sorted). TempPList2 = PList; SavedOutput >> Dominate; i = 0; while (i++ < SubTreeConstructions[SubTree]) { TempPList = new (PsiElement); TempPList->Construction = new char [(long int) pow (2, L)]; TempPList->Value = Dominate; for (short int j = 0; j < pow (2, L); j++) { SavedOutput >> Dominate; TempPList->Construction[j] = (char) Dominate; } if (TempPList2->next->Value == TempPList->Value) { TempPList->down = TempPList2->next; TempPList->next = NULL; TempPList2->next = TempPList; } else { // (TempPList2->next->Value > TempPList->Value) TempPList2->next->next = TempPList; TempPList->down = TempPList->next = NULL; TempPList2 = TempPList2->next; } SavedOutput >> Dominate; // Read in the multiplicities of the specific construction. } SavedOutput.close (); TicketCover = 0; } { StartTime = StartBranch = TempTime = time (NULL); // Capture start time of subtree traversal. TicketSize = (short int) pow (2, CurrentLevel); GenerateNewTicket: if (TimeLimit && ((time (NULL) - StartTime) > LimitSeconds)) savedata (0); else if (time (NULL) - TempTime > 900) { // Save data every 15 minutes. savedata (1); StartBranch = TempTime = time (NULL); } if (!keepgoing) savedata (0); Counter = TicketSize - 1; Ticket[Counter]++; TicketCover--; while (((Ticket[Counter] > Parent[Counter - (TicketSize / 2)]) && (Counter >= TicketSize / 2)) || (TicketCover < 0)) { TicketCover += Ticket[Counter] - 1; Ticket[Counter--] = 0; Ticket[Counter]++; } if (TicketCover == 0) { // If valid ticket is generated (i.e., n numbers covered). for (Counter = 0; Counter < TicketSize / 2; Ticket[Counter] = Parent[Counter] - Ticket[Counter + TicketSize / 2], Counter++); // Update ticket construction. Counter = 0; LastTicketSum = Ticket[TicketSize / 2]; while (Ticket[Counter + TicketSize / 2] == Parent[Counter++]) LastTicketSum += Ticket[Counter+TicketSize / 2]; // Check for possible pathalogical equivalent ticket constructions. for (i = 0, SimilarFound = false; (i < CurrentLevel - 1) && (!SimilarFound) && (CurrentLevel < L + 1); i++) { for (Counter = (TicketSize / 2) + 1, TempVar = 0; (Counter < TicketSize) && (!SimilarFound); Counter++) if ((Counter & (short int) pow (2, i)) > 0) TempVar += Ticket[Counter]; SimilarFound = (TempVar == n); // Invalid ticket construction (i.e., duplicate tickets). } if (SimilarFound) { // Match was found or not. NumTicketsRemoved[CurrentLevel]++; if (LastTicketSum == (CurrentLevel == L + 1 ? t : n)) goto SimilarFoundLastTicket; else // (LastTicketSum != n or t) goto GenerateNewTicket; } A.8. L?(m,n; k)?set characterisation algorithm (Algorithm 8) 175 else { // (!SimilarFound) if ((CurrentLevel > 2) && (CurrentLevel < L + 1)) { // Generate Ticket Branch. for (i = TicketSize - 1; i > 0; TicketBranch[i] = Ticket[i], i--); // Make copy of latest ticket addition. for (Counter = TicketSize; Counter > 4; Counter /= 2) for (i = Counter - 1; i > Counter / 2; TicketBranch[i - Counter / 2] = TicketBranch[i] + TicketBranch[i - Counter / 2], i--); // Generate Branch (parents). // Check for possible duplicate ticket construction generated (permutation of current ticket construction). // Keep track of current Permutation/Positioning. for (i = 0; i < CurrentLevel - 2; Permutation[i] = i++); // Initialise Permutation. Permutation[CurrentLevel - 2] = CurrentLevel - 1; Permutation[CurrentLevel - 1] = CurrentLevel - 2; // Skip 1st (identity) Permutation. Permutation[CurrentLevel] = NewPermutation[CurrentLevel] = CurrentLevel; // Avoid errors. while (!SimilarFound) { // Check for match according to some Permutation. for (Counter = 1; Counter < TicketSize - 1; Counter++) { for (i = r = 0; i < CurrentLevel; i++) // Construct Permutation indexing. r += (((short int) pow (2, Permutation[i]) & Counter) >> Permutation[i]) << i; TicketDup[r] = Ticket[Counter]; // Generate Ticket Permutation. } TicketDup[TicketSize - 1] = Ticket[TicketSize - 1]; // Ticket permutation generated; sort entries to check for duplicates. for (Counter = TicketSize; Counter > 4; Counter /= 2) for (i = Counter - 1; i > Counter / 2; TicketDup[i - Counter / 2] += TicketDup[i], i--); // Generate Branch (parents) of Duplicate Ticket. // Check if ticket is already generated in tree. Traverse 2 tickets for equivalence. for (i = 1; (i < TicketSize - 1) && (TicketDup[i] == TicketBranch[i]); i++); if ((i < TicketSize - 1) && (SimilarFound = (TicketDup[i] < TicketBranch[i]))) { // Match was found. NumTicketsRemoved[CurrentLevel]++; // Ticket Construction has been removed from current level. if (LastTicketSum == (CurrentLevel == L + 1 ? t : n)) goto SimilarFoundLastTicket; else // (LastTicketSum != n or t) goto GenerateNewTicket; } else { // (!SimilarFound) for (i = CurrentLevel - 2; (i >= 0) && (Permutation[i] > Permutation[i + 1]); i--); if (i >= 0) { // Not all Permutations have been saught through. TempVar = CurrentLevel; for (Counter = CurrentLevel - 1; Counter > i; Counter--) if ((Permutation[Counter] > Permutation[i]) && (Permutation[Counter] < Permutation[TempVar])) TempVar = Counter; Counter = Permutation[i]; // Interchange entries x(j) & x(k) according to Permutation algorithm. Permutation[i] = Permutation[TempVar]; Permutation[TempVar] = Counter; for (TempVar = 0; TempVar <= i; NewPermutation[TempVar] = Permutation[TempVar++]); for (TempVar = CurrentLevel - 1; TempVar > i; NewPermutation[i + (CurrentLevel - TempVar)] = Permutation[TempVar], TempVar--); TempPermutation = NewPermutation; NewPermutation = Permutation; Permutation = TempPermutation; } else // (i < 0) All permutations have been saught through. goto NextLevel; } } NextLevel: NumTickets[CurrentLevel]++; // Ticket Construction has been added to current level. for (i = 0; i < TicketSize; Parent[i] = Ticket[i], Ticket[i + TicketSize] = 0, i++); TicketSize = (short int) pow (2, ++CurrentLevel); // Child becomes new Parent. TicketCover = (CurrentLevel == L + 1 ? t : n); LastTicketSum = 0; goto GenerateNewTicket; } else if (CurrentLevel == L + 1) { // Check if current ticket is dominated by parent (on level L). for (i = 0, Dominates = false; (i < CurrentLevel - 1) && (!Dominates); i++) { for (r = (TicketSize / 2) + 1, TempVar = 0; (r < TicketSize) && (TempVar < k); r++) if (r & (short int) pow (2, i)) TempVar += Ticket[r]; // Count overlap with all other tickets. Dominates = (TempVar >= k); // New ticket is dominated by some other ticket. } if (Dominates) { Dominate = 1; for (i = 0; i < TicketSize / 2; i++) if ((Parent[i] > 1) && (Ticket[i] > 0)) Dominate *= combination (Parent[i], Ticket[i]); TotalDominate += Dominate; } if (LastTicketSum == (CurrentLevel == L + 1 ? t : n)) goto SimilarFoundLastTicket; else // (LastTicketSum != n or t) 176 APPENDIX A. COMPUTER PROGRAMS goto GenerateNewTicket; } else // (CurrentLevel == 2) goto NextLevel; } } } else // Invalid ticket was generated (i.e., < n numbers covered). goto GenerateNewTicket; } SimilarFoundLastTicket: if (CurrentLevel == L + 1) { if (TotalDominate > minPsi) { SubTreeConstructions[SubTree]++; TempPList = new (PsiElement); TempPList->Construction = new char [(long int) pow (2, L)]; // Pointer to Ticket construction. for (i = 0; i < pow (2, L); TempPList->Construction[i++] = Parent[i]); // Copy Parent construction in PsiList. TempPList->Value = TotalDominate; // Number of elements dominated. TempPList2 = PList; // |em Start finding correct insertion position from start of list. while ((TempPList2->next->Value > TotalDominate) && (TempPList2->next->next != NULL)) TempPList2 = TempPList2->next; // Search for appropriate position of insertion. if (TempPList2->next->Value == TotalDominate) { // Element with equivalent psi found. TempPList->next = TempPList2->next->next; TempPList->down = TempPList2->next; TempPList2->next = TempPList; } else if (TempPList2->next->Value < TotalDominate) { // Element with larger psi found. TempPList->next = TempPList2->next; TempPList->down = NULL; TempPList2->next = TempPList; } else { // (TempPList2->next->next == NULL) TempPList->next = TempPList->down = NULL; // Element with lowest psi found. TempPList2->next->next = TempPList; } } TotalDominate = 0; } // Move up one level in tree. for (i = 0; i < TicketSize / 4; i++) { Ticket[i] = Parent[i]; Parent[i] += Parent[i + TicketSize / 4]; } for (i = TicketSize / 4; i < TicketSize / 2; Ticket[i] = Parent[i], i++); TicketSize = (short int) pow (2, --CurrentLevel); if (CurrentLevel == 1) { Constructions << endl << ?\ tLottery tree statistics:? << endl << endl; for (i = 1; i <= L; i++) { Constructions << ?Level ? << i << ? : Inserted ? << setw (8) << NumTickets[i] << ? Removed ? << setw (8) << NumTicketsRemoved[i] << endl; } Constructions << endl; for (SubTree = 1; SubTree < n + 1; SubTree++) { // Load the specific branch of the lottery tree. fstream Branchfile (filename[SubTree - 1].str ().c str (), ios::in); // |em Check whether the file ??Branch??" could be opened. if (!Branchfile) { cerr << ?The file \?Branch? << SubTree << ?\? could not be opened.? << endl; return 0; } else { // (Branchfile) // Read information of Branch Subtree from file. while (SubTreeConstructions[SubTree]-- > 0) { TempPList = new (PsiElement); TempPList->Construction = new char [(long int) pow (2, L)]; Branchfile >> TempPList->Value; for (i = 0; i < pow (2, L); i++) { Branchfile >> Dominate; TempPList->Construction[i] = (char) Dominate; } TempPList2 = PList; // |em Start finding correct insertion position from start of list. while ((TempPList2->next->Value > TempPList->Value) && (TempPList2->next->next != NULL)) TempPList2 = TempPList2->next; // Search for appropriate position of insertion. if (TempPList2->next->Value == TempPList->Value) { // Element with equivalent psi found. TempPList->next = TempPList2->next->next; TempPList->down = TempPList2->next; TempPList2->next = TempPList; } else if (TempPList2->next->Value < TempPList->Value) { // Element with larger psi found. TempPList->next = TempPList2->next; TempPList->down = NULL; TempPList2->next = TempPList; } else { // |em (TempPList2->next->next == NULL) A.8. L?(m,n; k)?set characterisation algorithm (Algorithm 8) 177 TempPList->next = TempPList->down = NULL; // Element with lowest psi found. TempPList2->next->next = TempPList; } } Branchfile.close (); i = unlink (filename[SubTree - 1].str ().c str ()); // Delete the ?Branch??? filename. } } TempPList = PList->next->next; while (TempPList != NULL) { if (TempPList->down == NULL) { Constructions << ?*? << setw (4) << ?-?; for (i = 0; i < pow (2, L); i++) Constructions << setw (3) << (short int) TempPList->Construction[i]; delete [] TempPList->Construction; // Clear/release memory. Constructions << ? ? << setw (10) << setiosflags (ios::fixed) << resetiosflags (ios::showpoint) << setprecision (0) << TempPList->Value << ?/? << combination (m, t) << ? = ? << setw (8) << setiosflags (ios::fixed | ios::showpoint) << setprecision (4) << ((float) 100 * TempPList->Value) / combination (m, t) << ?%? << endl; TempPList2 = TempPList; TempPList = TempPList->next; TempPList2->next = NULL; delete TempPList2; // Clear/release memory. } else { // (TempPList->down != NULL) ConstructionNumber = 1; for (PList = TempPList, TempPList = TempPList->next; PList != NULL; TempPList2 = PList, PList = PList->down, TempPList2->down = NULL, delete TempPList2) { if (ConstructionNumber == 1) Constructions << ?*? << setw (4) << ConstructionNumber++; else // (ConstructionNumber > 1) Constructions << setw (5) << ConstructionNumber++; for (i = 0; i < pow (2, L); i++) Constructions << setw (3) << (short int) PList->Construction[i]; delete [] PList->Construction; Constructions << ? ? << setw (10) << resetiosflags (ios::showpoint) << setprecision (0) << PList->Value << ?/? << combination (m, t); if (ConstructionNumber == 2) Constructions << ? = ? << setw (8) << setiosflags (ios::fixed | ios::showpoint) << setprecision (4) << ((float) 100 * PList->Value) / combination (m, t) << ?%? << endl; else // (ConstructionNumber != 2) Constructions << endl; } } } Constructions.close (); return 0; } else if (CurrentLevel == 2) { SubTreeTimes[SubTree] += time (NULL) - StartBranch; // Save subtree traversal time. Constructions << ??Subtree " << SubTree << " traversed in " << SubTreeTimes[SubTree++] << " seconds. . . " << endl; { // Save the specific branch of the lottery tree (for backup purposes and to possibly save memory). fstream Branchfile( filename[SubTree-2].str ().c str (), ios::out); // Check whether the file ??Brach??" could be opened. if (!Branchfile) { cerr << ??The file \?Branch? << SubTree - 1 << ??\? could not be opened." << endl; return 0; } else { // (Branchfile) // Write information of Branch Subtree to file. TempPList = PList->next->next; while (TempPList != NULL) { for (PList = TempPList, TempPList = TempPList->next; PList != NULL; TempPList2 = PList, PList = PList->down, TempPList2->down = NULL, delete TempPList2) { Branchfile << setw (10) << resetiosflags (ios::showpoint) << setiosflags (ios::fixed) << setprecision (0) << PList->Value << ?? "; for (i = 0; i < pow (2, L); i++) Branchfile << setw (3) << (short int) PList->Construction[i]; delete [] PList->Construction; Branchfile << endl; } } Branchfile.close (); PList = new (PsiElement); PList->next = new (PsiElement); // Create dummy element in front of list in order to manage list effectively. PList->down = PList->next->down = PList->next->next = NULL; PList->Value = PList->next->Value = combination (m, t) + 1; } } StartBranch = time (NULL); // Capture start time of subtree traversal. } // Generate new LastTicketSum. for (Counter = 0; Counter < TicketSize / 2; Ticket[Counter] = Parent[Counter] - Ticket[Counter + TicketSize/2], 178 APPENDIX A. COMPUTER PROGRAMS Counter++); // pdate Ticket construction. Counter = 0; LastTicketSum = Ticket[TicketSize / 2]; while (Ticket[Counter + TicketSize / 2] == Parent[Counter++]) LastTicketSum += Ticket[Counter + TicketSize / 2]; if (LastTicketSum == (CurrentLevel == L + 1 ? t : n)) goto SimilarFoundLastTicket; else { // (LastTickerSum != n) Generate new TicketCover. TicketCover = (CurrentLevel == L + 1 ? t : n); for (i = TicketSize/2; (i < TicketSize);TicketCover -= Ticket[i], i++); goto GenerateNewTicket; } } Appendix B Best Internet bounds on L1(m,n; k) In this appendix, the playing set and best known lottery set of cardinality ` = 163 constructed by Algorithm 4 and obtained via the Internet [19, 44, 133] respectively for ?49, 6; 3? is given in Table B.1. Tables B.2 and B.3 present the best Internet bounds together with the best analytic bounds obtained in Chapter 4. 01 02 13 19 34 40 01 02 15 28 30 45 01 02 18 31 42 44 01 03 04 10 28 29 01 03 06 11 24 49 01 03 14 18 27 45 01 04 07 25 32 37 01 05 10 33 35 42 01 06 16 28 32 43 01 08 10 19 36 41 01 08 14 29 30 37 01 08 20 23 42 45 01 09 11 25 39 43 01 12 31 45 46 47 01 13 15 36 38 48 01 14 17 26 32 39 01 15 17 24 27 44 01 16 25 30 38 46 01 17 21 22 23 43 01 23 27 36 37 46 02 03 04 06 22 33 02 03 15 16 26 32 02 04 08 32 40 44 02 04 10 24 41 45 02 04 13 27 30 48 02 05 06 25 28 49 02 05 13 20 29 31 02 06 10 18 23 29 02 06 11 21 32 36 02 07 08 17 27 35 02 08 14 21 39 46 02 09 12 22 35 36 02 11 22 40 42 47 02 12 15 21 24 48 02 15 17 31 34 49 02 16 17 28 44 48 02 30 33 37 38 44 03 05 08 11 25 30 03 07 09 20 30 49 03 08 34 42 44 48 03 08 35 37 40 47 03 09 17 28 31 45 03 10 14 19 22 30 03 10 15 18 25 33 03 12 13 41 44 45 03 12 18 28 30 40 03 12 20 23 33 47 03 12 25 26 31 34 03 12 29 37 46 49 03 13 21 31 35 46 03 16 23 24 40 45 03 17 18 37 39 43 03 22 32 35 44 49 04 05 10 30 36 39 04 06 08 28 30 46 04 06 10 17 26 38 04 06 23 32 42 48 04 06 27 29 39 44 04 09 15 26 33 49 04 11 16 18 29 41 04 11 22 23 35 46 04 12 16 20 35 48 04 13 39 41 42 49 04 14 25 31 43 48 04 15 17 19 28 36 04 18 20 21 34 38 05 06 07 16 19 47 05 07 09 11 27 32 05 08 10 20 26 32 05 08 12 21 28 43 05 09 19 22 34 45 05 10 12 18 24 31 05 11 26 36 44 45 05 12 17 36 37 47 05 14 16 23 38 41 05 15 16 22 27 42 05 15 37 39 40 41 05 16 25 26 35 39 05 17 18 22 25 38 05 19 31 36 42 46 05 24 27 43 46 48 06 07 22 38 39 49 06 08 36 37 42 43 06 09 10 28 34 48 06 09 11 33 40 41 06 12 14 17 18 41 06 13 22 25 40 46 06 15 20 21 35 49 06 21 41 45 47 48 07 08 09 15 38 46 07 08 11 20 41 48 07 08 14 23 24 44 07 10 14 29 34 38 07 12 32 38 43 48 07 13 18 35 39 45 07 16 20 21 26 43 07 16 25 34 42 49 07 17 26 30 42 46 07 19 26 35 44 48 07 20 23 28 37 38 07 21 24 32 33 34 07 29 33 36 37 39 07 31 36 38 40 47 08 10 16 23 25 31 08 12 13 24 26 30 08 15 18 27 47 49 08 18 20 22 30 33 09 12 13 14 33 37 09 13 16 19 26 36 09 14 19 28 35 39 09 14 20 32 40 42 09 17 19 42 43 49 09 18 19 23 24 37 09 20 24 33 44 45 09 21 32 35 43 47 09 23 26 29 39 48 09 24 26 31 32 46 10 11 13 17 37 44 10 15 19 31 39 43 10 16 21 29 40 49 10 17 27 33 40 47 10 18 32 44 45 46 10 21 22 36 38 42 11 12 19 21 27 31 11 13 27 29 33 35 11 14 15 20 22 38 11 19 38 41 46 47 11 20 27 34 39 42 11 21 22 29 30 44 11 28 31 33 46 49 12 19 20 22 26 39 12 25 28 38 42 45 12 27 36 38 39 41 13 14 28 43 44 47 13 16 31 33 40 48 13 18 22 24 41 48 13 23 30 37 42 47 13 23 32 34 36 49 14 15 27 34 36 40 14 17 20 25 44 49 14 20 24 34 35 46 14 21 22 28 37 45 14 23 26 28 34 42 15 16 25 28 41 47 15 17 30 38 40 43 15 19 40 46 48 49 15 23 29 33 41 43 16 17 24 29 35 38 16 33 34 37 45 46 18 21 24 26 29 45 18 23 25 36 41 42 18 29 32 39 42 47 19 21 25 30 34 36 19 23 27 35 40 43 19 29 32 33 45 48 20 26 27 31 35 37 21 25 27 41 43 44 22 26 29 34 41 47 24 25 29 30 40 47 24 27 28 30 32 39 24 31 34 37 47 48 30 31 35 41 43 49 34 40 43 45 47 49 (a) Playing set of cardinality 163 generated by Algorithm 4 01 02 03 04 05 49 01 02 06 11 17 20 01 02 07 10 16 21 01 02 08 13 15 18 01 02 09 12 14 19 01 03 06 10 15 19 01 03 07 11 14 18 01 03 08 12 17 21 01 03 09 13 16 20 01 04 06 13 14 21 01 04 07 12 15 20 01 04 08 11 16 19 01 04 09 10 17 18 01 05 06 12 16 18 01 05 07 13 17 19 01 05 08 10 14 20 01 05 09 11 15 21 01 06 07 08 09 49 01 10 11 12 13 49 01 14 15 16 17 49 01 18 19 20 21 49 02 03 06 07 12 13 02 03 08 09 10 11 02 03 14 15 20 21 02 03 16 17 18 19 02 04 06 09 15 16 02 04 07 08 14 17 02 04 10 13 19 20 02 04 11 12 18 21 02 05 06 08 19 21 02 05 07 09 18 20 02 05 10 12 15 17 02 05 11 13 14 16 02 06 10 14 18 49 02 07 11 15 19 49 02 08 12 16 20 49 02 09 13 17 21 49 03 04 06 08 18 20 03 04 07 09 19 21 03 04 10 12 14 16 03 04 11 13 15 17 03 05 06 09 14 17 03 05 07 08 15 16 03 05 10 13 18 21 03 05 11 12 19 20 03 06 11 16 21 49 03 07 10 17 20 49 03 08 13 14 19 49 03 09 12 15 18 49 04 05 06 07 10 11 04 05 08 09 12 13 04 05 14 15 18 19 04 05 16 17 20 21 04 06 12 17 19 49 04 07 13 16 18 49 04 08 10 15 21 49 04 09 11 14 20 49 05 06 13 15 20 49 05 07 12 14 21 49 05 08 11 17 18 49 05 09 10 16 19 49 06 07 14 16 19 20 06 07 15 17 18 21 06 08 10 13 16 17 06 08 11 12 14 15 06 09 10 12 20 21 06 09 11 13 18 19 07 08 10 12 18 19 07 08 11 13 20 21 07 09 10 13 14 15 07 09 11 12 16 17 08 09 14 16 18 21 08 09 15 17 19 20 10 11 14 17 19 21 10 11 15 16 18 20 12 13 14 17 18 20 12 13 15 16 19 21 22 23 25 31 34 48 22 23 25 35 42 43 22 23 28 30 44 46 22 24 26 27 28 44 22 24 31 41 45 48 22 24 33 37 40 41 22 25 27 29 34 43 22 25 30 36 39 43 22 25 32 43 46 47 22 26 31 38 40 48 22 26 33 37 38 45 22 27 28 31 46 48 22 28 29 38 41 44 22 28 34 40 44 45 22 29 30 31 33 48 22 32 33 35 36 37 22 33 37 39 42 47 22 34 37 43 44 46 23 24 27 30 41 46 23 24 29 36 40 47 23 24 32 34 38 39 23 25 27 28 33 37 23 25 30 37 46 48 23 26 29 32 39 45 23 26 32 35 42 45 23 26 34 36 41 47 23 27 32 39 40 41 23 27 36 38 45 47 23 28 31 35 37 42 23 29 30 36 39 42 23 29 37 43 44 48 23 30 31 33 43 46 23 30 34 38 40 46 23 30 35 36 46 47 23 33 35 42 44 48 24 25 26 27 37 48 24 25 28 33 41 45 24 25 31 38 44 45 24 26 27 31 33 43 24 26 29 34 40 45 24 27 34 39 42 47 24 28 38 40 43 48 24 29 30 32 40 42 24 29 35 39 40 46 24 30 34 35 38 47 24 32 35 36 38 41 24 34 36 38 42 46 24 37 41 43 44 45 25 26 28 33 38 40 25 26 31 40 41 44 25 28 29 33 44 46 25 28 30 33 34 43 25 29 37 38 41 48 25 31 32 35 36 44 25 31 32 39 42 44 25 31 35 39 44 47 25 31 36 42 44 47 25 34 37 40 45 48 26 28 41 43 45 48 26 29 30 35 45 47 26 29 32 45 46 47 26 29 36 42 45 46 26 30 32 34 41 42 26 30 32 36 39 45 26 34 35 39 41 46 26 37 38 40 43 44 27 28 29 31 34 37 27 29 33 34 44 48 27 29 34 35 38 41 27 30 31 37 43 44 27 30 32 38 42 45 27 30 35 40 41 47 27 32 34 35 36 40 27 35 38 39 45 46 27 36 40 41 42 46 28 30 31 36 37 39 28 31 32 37 46 47 28 32 35 39 43 48 28 32 36 42 43 48 28 35 36 43 47 48 28 39 42 43 47 48 29 31 33 38 41 43 30 33 36 39 44 48 31 33 34 40 43 45 32 33 44 46 47 48 38 39 40 41 42 47 (b) Lottery set of cardinality 163 obtained from Internet repository tables Table B.1: The (a) playing set generated by Algorithm 4 and (b) lottery set obtained from Internet repository tables [19, 44, 133] yielding the lower bounds ?163(49, 6; 3) ? 13 752 98313 983 816 ? 98.3493% and ?163(49, 6; 3) ? 1 (or equivalently L1(49, 6; 3) ? 163), respectively. 179 180 BEST INTERNET BOUNDS ON L1(m,n; k) m L1(m, 3; 2) L1(m, 4; 2) L1(m, 4; 3) L1(m, 5; 2) L1(m, 5; 3) L1(m, 5; 4) 3 1a,u ? ? ? ? ? 4 1a,u 1a,u 1o,r,u ? ? ? 5 2a,u 1a,u 1o,r,u 1o,r,u,v 1o,r,u 1o,r,u 6 2a,u 1a,u 3s,u 1o,r,u,v 1o,r,u 1o,r,u 7 4a,u 2a,u 4u 1o,r,u,v 1o,r,u 3u 8 5a,u 2a,u 6u 1o,r,u,v 2o,j,k,l,u 5u 9 7a,u 2a,u 9o,k,l,u 2o,p,u,v 2o,j,k,l,u 9u 10 8a,u 3a,u 12u : 14u 2o,u,v 2g,o,j,k,l,u 10k,l,o,u : 14u 11 10c,u 3a,u 16u : 19u 2o,u,v 5u 17u : 22u 12 11a,u 3a,u 21u : 26u 2o,u,v 6u 25u : 35u 13 13a,u 5a,u 28u : 33u 3j,k,u,v 8u 36u : 48u 14 14a,u 5a,u 35u : 43u 3j,k,u,v 6u : 10u 50u : 72u 15 18a,u 7a,u 44u : 52u 3j,g,u,v 9u : 13u 68u : 99u 16 19a,u 7a,u 54u : 66u 3j,g,u,v 11u : 16u 91u : 134u 17 23a,u 9a,u 66u : 80u 4j,k,u,v 13u : 20u 119u : 193u 18 24a,u 9a,u 79u : 103u 4j,g,u,v 16u : 24u 153u : 256u 19 29a,u 11a,u 94u : 124u 4j,g,u,v 19u : 28u 194u : 319u 20 31a,u 12a,u 111u : 147i,u 4j,g,u,v 22u : 32u 242u : 400u 21 36a,u 12a : 14a 111i,u : 147u 6f,v 22i,u : 37u 283g : 461u 22 38a,u 13a,f : 14a 122g : 173u 6f,v 24g : 40u 347g : 575u 23 43c,f,u 14a,f : 17a 141g : 196u 7f : 8i,u,v 27g : 49u 421g : 702u 24 45a,u 16a : 18a 161g : 231u 7f : 8u 31g : 54u 506g : 835u 25 50a,u 17a,f : 18a 184g : 255u 8f : 9u 35g : 63u 604g : 980u 26 52a,u 18a,f : 21a 208g : 293u 9f : 10u 40g : 68u 715g : 1 158u 27 59a,u 20a : 22a 234g : 324u 9f : 11u 45g : 77u 841g : 1 355u 28 61a,u 21a,f : 22a 263g : 375u 10f : 12u 51g : 86u 983g : 1 608u 29 68a,u 23a : 25a 294g : 411u 11f : 13u 57g : 97u 1 142g : 1 854u 30 70a,u 24a : 27a 327g : 469u 11f : 14u 63g : 102u 1 320g : 2 134u 31 78a,u 26a,f : 27a 362g : 512u 12f : 15u 70g : 111u 1 518g : 2 497u 32 81a,u 28a : 29a 400g : 580u 12f,g,h : 16u 78g : 124u 1 736g : 2 918u 33 89a,u 30a : 31a 440g : 613u 14f : 17u 86g : 133u 1 978g : 3 330u 34 92a,u 32a,f 484g : 686u 14f : 18u 94g : 136d,u 2 244g : 3 868u 35 100c,f,u 33a,f : 34a 529g : 742u 14f,g,h : 19u 103g : 162u 2 537g : 4 464u 36 103a,u 35a 578g : 821u 15f,g,h : 20u 112g : 176u 2 856g : 4 918u 37 111a,u 37a,f 629g : 871u 17f : 21u 123g : 201u 3 206g : 5 520u 38 114a,u 38f,u 684g : 956u 18f : 22u 133g : 216u 3 586g : 5 898u 39 124a,u 39f,g,h,u 741g : 1 014u 18f,g,h : 23u 145g : 240u 3 999g : 6 555u 40 127a,u 44a,f 802g : 1 126u 19f : 24u 156g : 255u 4 446g : 7 514u 41 137a,u 45f,u 866g : 1 183u 21f : 25u 169g : 280u 4 931g : 8 557u 42 140a,u 46f,g,h,u 933g : 1 306u 22f : 26u 182g : 295u 5 453g : 9 609u 43 151a,u 51a,f 1 004g : 1 307u 23f : 27u 196g : 320u 6 017g : 10 643u 44 155a,u 52f,u 1 078g : 1 500u 23f : 27u 211g : 338u 6 622g : 11 292u 45 166a,u 53f,g,h,u 1 155g : 1 575u 26f : 29u 226g : 359u 7 273g : 11 910u 46 170a,u 58a,f 1 237g : 1 726u 26f : 30u 242g : 374u 7 970g : 13 485u 47 181c,f,u 59f,u 1 322g : 1 815u 27f : 32u 259g : 411u 8 716g : 15 205u 48 185a,u 60f,g,h,u 1 410g : 1 971u 27f,g,h : 33u 276g : 432u 9 513g : 16 940u 49 196a,u 66a,f 1 503g : 2 104u 30f : 35u 294g : 447u 10 364g : 18 911u 50 200a,u 67f,u 1 600g : 2 250u 30f : 36u 314g : 491u 11 270g : 20 961u Table B.2: Known lottery numbers and best bounds (using the notation lower bound : upper bound) on L1(m,n; k), 1 ? k ? n and 3 ? m ? 50 for n = 3, 4 and 5. Motivation for table entries are as follows: aClass of lottery numbers L(m, 3; 2), (1.2), and L1(m, 4; 2) due to Bate & Stanton [15]. bClass of lottery numbers L(m, 6; 2) due to Bate & Van Rees [17]. cActual bound on L1(m, 3; 2) for the case m ? 11 (mod 12) that differs from that derived by Bate & Stanton [15]. dDue to Colbourn [50]. eThe Payan asymptotic upper bound, (4.9). fThe Fu?redi lower bound, (4.25) [83]. gThe Tu?ran lower bound, (4.20) [59]. hThe Hanani lower bound, (4.24) [99]. iThe recursive lower bound, given in Theorem 2.2(a). jThe generalised Scho?nheim lower bound, (4.19). kThe Sterboul lower bound, (4.21) [236]. lThe Sterboul lower bound, (4.22) [236]. mThe Arnautov upper bound, (4.8). nThe Clark, et al. upper bound, (4.15). oThe graph theoretic lower bound, (4.1). pThe Payan and Marcu upper bound, (4.10). qThe Caro & Roditty upper bound, (4.11). rThe Vizing upper bound, (4.6). sThe Fulman upper bound, (4.13). tThe Reed upper bound, (4.14). uLottery and covering numbers available in repository tables on the Internet [19, 44, 133, 237]. vUpper bound obtained via Algorithms 2?7. BEST INTERNET BOUNDS ON L1(m,n; k) 181 m L1(m, 6; 2) L1(m, 6; 4) L1(m, 6; 5) 6 1b,o,r,u 1o,r,u 1o,r,u 7 1b,o,r,u 1o,r,u 1o,r,u 8 1b,o,r,u 1o,r,u 4u 9 1b,o,r,u 3u 7u 10 1b,o,r,u 3u 12u : 14u 11 2b,o,p,s,u 5u 17u : 22u 12 2b,f,j,k,l,o,u 6u 27u : 38u 13 2b,f,j,k,l,o,u 8u : 10u 43u : 61u 14 2b,f,j,k,l,o,u 8u : 14u 67u : 100u 15 2b,f,j,k,l,o,u 10u : 19u 100u : 152u 16 3b,f,j,k,l,u 13u : 26u 146u : 251u 17 3b,f,k,l,u 17u : 36u 207u : 355u 18 3b,f,j,k,l,u 22u : 42d,u 286u : 475u 19 3b,f,j,k,l,u 27u : 54u 388u : 652u 20 3b,f,j,k,l,u 34u : 66u 517u : 929u 21 4b,f,j,k,l,u 36g : 80u 639g : 1 126u 22 4b,f,j,k,l,u 44g : 105u 830g : 1 467u 23 4b,f,j,k,l,u 54g : 127u 1 063g : 1 914u 24 4b,f,g,j,k,l,u 65g : 152u 1 346g : 2 432u 25 4b,f,g,j,k,l,u 77g : 175u 1 687g : 3 080u 26 5b,f,g,k,l,u 91g : 220u 2 093g : 3 880u 27 5b,f,g,k,l,u 108g : 243u 2 574g : 4 966u 28 5b,f,g,h,j,k,l,u 126g : 301u 3 140g : 6 196u 29 5b,f,g,h,j,k,l,u 147g : 354u 3 801g : 7 701u 30 5b,f,g,h,j,k,l,u 170g : 411u 4 568g : 9 424u 31 7b,f,u 195g : 477u 5 454g : 11 461u 32 7b,f,u 224g : 577u 6 473g : 13 805u 33 7b,f,g,h,u 255g : 681u 7 639g : 16 650u 34 8b,f,u 290g : 792u 8 967g : 19 778u 35 9b,u 328g : 922u 10 472g : 23 508u 36 9b,f,u 369g : 1 008u 12 174g : 27 725u 37 10b,f,u 415g : 1 180u 14 090g : 32 470u 38 11b,u 464g : 1 364u 16 240g : 37 640u 39 11b,f,u 518g : 1 578u 18 644g : 43 040u 40 12b,u 577g : 1 727u 21 325g : 49 510u 41 12b,f,u 640g : 1 974u 24 305g : 56 972u 42 13b,f,u 708g : 2 100u 27 610g : 65 249u 43 13b,f,u 782g : 2 392u 31 264g : 74 491u 44 14b,u 861g : 2 579u 35 296g : 84 791u 45 15b,u 946g : 2 822u 39 732g : 94 714u 46 15b,f,u 1 038g : 3 074u 44 604g : 106 384u 47 17b,u 1 136g : 3 399u 49 943g : 119 777u 48 18b,u 1 240g : 3 593u 55 780g : 134 839u 49 19b,u 1 352g : 3 977u 62 151g : 151 771u 50 19b,u 1 470g : 4 278u 69 090g : 365 795n Table B.2 (continued): Known lottery numbers and best bounds (using the notation lower bound : upper bound) on L1(m,n; k), k = 2, 4 and 6, n = 6 and 3 ? m ? 50. Motivation for table entries are as follows: aClass of lottery numbers L(m, 3; 2), (1.2), and L1(m, 4; 2) due to Bate & Stanton [15]. bClass of lottery numbers L1(m, 6; 2) due to Bate & Van Rees [17]. cActual bound on L(m, 3; 2) for the case m ? 11 (mod 12) that differs from that derived by Bate & Stanton [15]. dDue to Colbourn [50]. eThe Payan asymptotic upper bound, (4.9). fThe Fu?redi lower bound, (4.25) [83]. gThe Tu?ran lower bound, (4.20) [59]. hThe Hanani lower bound, (4.24) [99]. iThe recursive lower bound, given in Theorem 2.2(a). jThe generalised Scho?nheim lower bound, (4.19). kThe Sterboul lower bound, (4.21) [236]. lThe Sterboul lower bound, (4.22) [236]. mThe Arnautov upper bound, (4.8). nThe Clark, et al. upper bound, (4.15). oThe graph theoretic lower bound, (4.1). pThe Payan and Marcu upper bound, (4.10). qThe Caro & Roditty upper bound, (4.11). rThe Vizing upper bound, (4.6). sThe Fulman upper bound, (4.13). tThe Reed upper bound, (4.14). uLottery and covering numbers available in repository tables on the Internet [19, 44, 133, 237]. vUpper bound obtained via Algorithms 2?7. 182 BEST INTERNET BOUNDS ON L1(m,n; k) m ` m 6 ? r L1 L2 L3 L4 L5 L6 L L1 L2 L3 L4 L5 L6 L7 6 1 0 1 1 1 1 ? 1 1 ? ? 1 1 ? 1 1 7 7 6 1 1 1 1 ? 1 1 ? 2 2 2 ? 2 1 8 28 27 1 1 1 1 ? 1 1 ? 2 3 3 4 4 1 9 84 83 1 1 1 1 ? 1 1 ? 2 4 5 5 5 1 10 210 194 2 2 2 2 2 1 2 ? 3 6 6 6 6 ? 11 462 380 2 2 2 2 2 1 2 ? 4 7 7 8 8 ? 12 924 661 2 2 2 2 2 1 2 ? 4 9 9 10 10 2 13 1 716 1 057 2 2 2 2 2 2 2 ? 4 12 12 12 12 4 14 3 003 1 588 2 2 3 3 3 2 4 ? 5 14 15 15 15 6 15 5 005 2 274 3 3 3 3 3 2 4 ? 7 18 18 19 19 9 16 8 008 3 135 3 3 3 3 3 3 5 ? 7 22 22 23 23 13 17 12 376 4 191 3 3 3 4 3 3 6 ? 8 26 26 27 27 18 18 18 564 5 462 4 4 4 4 5 4 7 ? 10 31 31 32 32 24 19 27 132 6 968 4 4 4 5 5 4 ? 9 11 36 36 38 38 31 20 38 760 8 729 5 5 5 5 6 5 ? 10 13 42 42 44 44 39 21 54 264 10 765 6 6 6 6 7 6 ? 13 14 49 49 51 51 49 22 74 613 13 096 6 6 6 7 6 7 ? 15 19 57 57 59 59 60 23 100 947 15 742 7 7 7 8 6 8 ? 17 21 65 65 68 68 72 24 134 596 18 723 8 8 8 8 7 9 ? 20 24 74 74 77 77 86 25 177 100 22 059 9 9 9 9 8 10 ? 22 28 84 84 88 88 102 26 230 230 25 770 9 9 9 10 8 12 ? 25 31 95 95 99 99 120 27 296 010 29 876 10 10 10 11 9 13 ? 27 35 107 107 111 112 139 28 376 740 34 397 11 11 11 13 10 15 ? 31 38 120 120 125 125 161 29 475 020 39 353 13 13 13 14 11 17 ? 35 43 134 134 139 139 184 30 593 775 44 764 14 14 14 15 13 19 ? 39 48 149 149 155 155 210 31 736 281 50 650 15 15 15 17 14 21 ? 45 53 165 165 171 172 238 32 906 192 57 031 16 16 16 18 16 23 ? 50 60 183 183 189 189 269 33 1 107 568 63 927 18 18 18 20 18 25 ? 55 66 201 201 209 209 302 34 1 344 904 71 358 19 19 19 21 20 28 ? 60 72 221 221 229 229 337 35 1 623 160 79 344 21 21 21 23 22 30 ? 66 78 242 242 251 251 376 36 1 947 792 87 905 23 23 23 25 24 33 ? 72 85 265 265 274 274 417 37 2 324 784 97 061 24 24 24 27 26 36 ? 78 92 288 288 298 298 461 38 2 760 681 106 832 26 26 26 29 29 39 ? 83 99 314 314 325 325 507 39 3 262 623 117 238 28 28 28 32 31 42 ? 89 105 340 340 352 352 557 40 3 838 380 128 299 30 30 30 34 34 46 ? 96 112 369 369 381 381 611 41 4 496 388 140 035 33 33 33 36 37 50 ? 102 120 398 399 412 412 667 42 5 245 786 152 466 35 35 35 39 40 54 ? 109 127 430 430 445 445 727 43 6 096 454 165 612 37 37 37 42 43 58 ? 117 135 463 463 479 479 790 44 7 059 052 179 493 40 40 40 44 47 62 ? 124 144 498 498 515 515 857 45 8 145 060 194 129 42 42 42 47 51 66 ? 131 151 535 535 552 552 927 46 9 366 819 209 540 45 45 45 51 55 71 ? 138 160 573 573 592 592 1 001 47 10 737 573 225 746 48 48 48 54 59 76 ? 146 168 613 613 633 633 1 080 48 12 271 512 242 767 51 51 51 57 63 81 ? 153 178 655 655 677 677 1 162 49 13 983 816 260 623 54 54 54 61 67 87 ? 163 186 700 700 722 722 1 248 50 15 890 700 279 334 57 57 57 64 72 92 ? 175 198 746 746 770 770 1 338 Table B.3: Best bounds on the lottery number L1(m, 6; 3) for all 6 ? m ? 50 in a comparative fashion. The table shows the order of the lottery graph, ( m 6 ) ; the degree of regularity of the lottery graph, r given in (2.1); the lower bound, L1, from classical graph domination theory according to (4.1) (also given in (4.4) and (4.23)); the combinatorial lower bound, L2, (4.23); the Sterboul lower bound, L3, (4.22); the Sterboul lower bound, L4, (4.21); the generalised Scho?nheim lower bound, L5, (4.19); the Tu?ran lower bound, L6 (4.20); the known complete lottery number L1(m, 6; 3), L; the best upper bounds, L1, available in covering and lottery number repository tables on the Internet [19, 44, 133, 237]; the recursive Li & Van Rees upper bound, L2, (4.31); the Clark, et al. upper bound, L3, (4.15); the Arnautov upper bound, L4, (4.8); the Caro & Roditty upper bound, L5, (4.11); the asymptotic upper bound, L6, (4.9); and the upper bound, L7, according to the generalised domination result 4.2, truncated after the second term, (4.17). A question mark (?) denotes that the lottery number L1(m, 6; 3) is not known. Appendix C Optimal ~X(`)?vector encodings This appendix contains the ~X(`)?vector structures discussed in ?6.2. Tables 6.4?6.6 contain the corre- sponding resource utilisations, ?`(m,n; k), for every ~X(`)?vector. As an example, the entry ?5(13, 3; 2) = 51.3986% in Table 6.4 may be interpreted as follows: when considering a playing set consisting of only five 3?sets in the lottery ?13, 3; 2?, then the best way of selecting these five 3?sets will only render a probability of 51.3986% of winning a 2?prize. The only ?5(13, 3; 2) = 2 ?5(13, 3; 2)?set structures by which this 51.3986% assurance may be achieved, is encoded ~X(3) = (0, 2, 2, 1, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ~X(3) = (0, 2, 1, 1, 2, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0). No commas were used to separate entries of the ~X(`)?vectors; in the rare cases where entries were 10 or 11 the letters A and B were used instead1. ~X(`)?vector structure encodings associated with Table 6.4, by table superscript: 1. (01123000) 2. (02213000) 3. (0002111030000000) 4. (03303000) 5. (0111111030000000) 6. (00010110011010003000000000000000) 7. (13303000) 8. (0211201030000000) (0221200020001000) 9. (01010110101010003000000000000000) 10. (23303000) 11. (0221300030000000) 12. (01111110200000002000000010000000) (01110110200010003000000000000000) 13. (33303000) 14. (0330300030000000) 15. (01111110300000003000000000000000) 16. (43303000) 17. (14404000) 18. (1330300030000000) 19. (0113400040000000) 20. (02212000200010003000000000000000) (02112010300000003000000000000000) 21. (53303000) 22. (24404000) 23. (2330300030000000) 24. (0222400040000000) 25. (02213000300000003000000000000000) 26. (63303000) 27. (34404000) 28. (3330300030000000) 29. (0331400040000000) 30. (03303000300000003000000000000000) 31. (01021120400000004000000000000000) 32. (73303000) 33. (44404000) 34. (4330300030000000) 35. (0440400040000000) 36. (13303000300000003000000000000000) 37. (03013010301000003010000000000000) 38. (83303000) 39. (54404000) 40. (25505000) 41. (5330300030000000) 42. (1440400040000000) 43. (23303000300000003000000000000000) 44. (03113010301000004000000000000000) 45. (93303000) 46. (64404000) 47. (35505000) 48. (6330300030000000) 49. (2440400040000000) 50. (33303000300000003000000000000000) 51. (03213010400000004000000000000000) (02224000400000004000000000000000) 52. (A3303000) 53. (74404000) 54. (45505000) 55. (7330300030000000) 56. (3440400040000000) 57. (43303000300000003000000000000000) 58. (03314000400000004000000000000000) 59. (B3303000) 60. (84404000) 61. (55505000) 62. (8330300030000000) 63. (4440400040000000) 64. (53303000300000003000000000000000) 65. (04404000400000004000000000000000) 1Note that if ??(m,n; k) ? 50, then only one solution is listed (indicated with a ?) in order to save space. In such cases the other ??(m,n; k)? 1 solutions are available from the author upon request. 183 184 APPENDIX C. OPTIMAL ~X(`)?VECTOR ENCODINGS ~X(`)?vector structure encodings associated with Table 6.5, by table superscript: 1. (00032110) 2. (01122110) 3. (0002011001102000) 4. (00000001000101100110100010000000) (00000002000110000100001020000000) 5. (02212110) 6. (0002111011101000) 7. (00010011010010000100100010100000) (00010001010010100110100010000000) (00000002011010000110100010000000) (00010110000110000100001020000000) 8. (03213010) (03303001) 9. (0111111011101000) 10. (00010110011010000110100010000000) 11. (03314000) (13213010) (13303001) (22212110) 12. (01145000) 13. (0211111020101000) (0220111020011000) (1111111011101000) 14. (0004011020003000) 15. (01010110011010001010100010000000) (01100110011010001001100010000000) (10010110011010000110100010000000) 16. (04404000) (13314000) (23213010) (23303001) (32212110) 17. (03313110) (03224010) 18. (0221201021001000) (0221111030001000) (0221210030000010) (1211111020101000) (1220111020011000) (2111111011101000) 19. (0003022040001000) 20. (01110110101010001100100010000000) (01101110100110001110000010000000) (01110110011010002000100010000000) (01111100011010002000001010000000) (01111100101010002000001001000000) (11010110011010001010100010000000) (11100110011010001001100010000000) (20010110011010000110100010000000) 21. (00010111011010000110100020000000) 22. (14404000) (23314000) (33213010) (33303001) (42212110) 23. (04314010) 24. (0311301030100000) (0321201030001000) (1221201021001000) (0330200130001000) (0330300030000001) (0221211040000000) (1221111030001000) (1221210030000010) (2211111020101000) (2220111020011000) (3111111011101000) 25. (0112211021101000) 26. (01111110101010002100000010000000) (02010110201010002010100000000000) (02110110101010002000100010000000) (02111010101010002000010010000000) (11110110101010001100100010000000) (02101110100110002010000010000000) (02200110100110002000100010000000) (02200110200010002000100000010000) (02201100100110002000001010000000) (11101110100110001110000010000000) (01111110011010003000000010000000) (01111110111000003000000000001000) (11110110011010002000100010000000) (11111100011010002000001010000000) (11111100101010002000001001000000) (21010110011010001010100010000000) (21100110011010001001100010000000) (30010110011010000110100010000000) 27. (00020110011020001110100010000000) 28. (24404000) (33314000) (43213010) (43303001) (52212110) 29. (04415000) 30. (02246000) 31. (0331300030001000) (0321301040000000) (1311301030100000) (1321201030001000) (2221201021001000) (0330300140000000) (1330200130001000) (1330300030000001) (1221211040000000) (2221111030001000) (2221210030000010) (3211111020101000) (3220111020011000) (4111111011101000) 32. (0221211021101000) 33. (02112010110010002010000010000000) (02111110200010002010000010000000) (02210110200010002000100010000000) (01212100200000102100000010000000) (02211100200000102000100010000000) (02212000200000102000010010000000) (02110110201010003000100000000000) (02111100201010003000001000000000) (02111110101010003000000010000000) (02111110201000003000000000001000) (11111110101010002100000010000000) (12010110201010002010100000000000) (12110110101010002000100010000000) (12111010101010002000010010000000) (21110110101010001100100010000000) (02200110200110003000100000000000) (02201110100110003000000010000000) (02201110200010003000000000010000) (02201110200100003000000000001000) (12101110100110002010000010000000) (12200110100110002000100010000000) (12200110200010002000100000010000) (12201100100110002000001010000000) (21101110100110001110000010000000) (01111110111010004000000000000000) (11111110011010003000000010000000) (11111110111000003000000000001000) (21110110011010002000100010000000) (21111100011010002000001010000000) (21111100101010002000001001000000) (31010110011010001010100010000000) (31100110011010001001100010000000) (40010110011010000110100010000000) 34. (00021110111010001110100010000000) 35. (34404000) (43314000) (53213010) (53303001) (62212110) 36. (05505000) 37. (03336000) 38. (0331400040000000) (1331300030001000) (1321301040000000) (2311301030100000) (2321201030001000) (3221201021001000) (1330300140000000) (2330200130001000) (2330300030000001) (2221211040000000) (3221111030001000) (3221210030000010) (4211111020101000) (4220111020011000) (5111111011101000) 39. (0321211030101000) 185 40. (02212010200010002100000010000000) (02212010110010003000000010000000) (12112010110010002010000010000000) (03202001200010002010000010000000) (02111110300010003010000000000000) (02210110300010003000100000000000) (02211110200010003000000010000000) (02211110300000003000000000001000) (12111110200010002010000010000000) (12210110200010002000100010000000) (01212100300000103100000000000000) (02211100300000103000100000000000) (02212000300000103000010000000000) (02212100200000103000000010000000) (02212100300000003000000000000010) (11212100200000102100000010000000) (12211100200000102000100010000000) (12212000200000102000010010000000) (02111110201010004000000000000000) (12110110201010003000100000000000) (12111100201010003000001000000000) (12111110101010003000000010000000) (12111110201000003000000000001000) (21111110101010002100000010000000) (22010110201010002010100000000000) (22110110101010002000100010000000) (22111010101010002000010010000000) (31110110101010001100100010000000) (02201110200110004000000000000000) (12200110200110003000100000000000) (12201110100110003000000010000000) (12201110200010003000000000010000) (12201110200100003000000000001000) (22101110100110002010000010000000) (22200110100110002000100010000000) (22200110200010002000100000010000) (22201100100110002000001010000000) (31101110100110001110000010000000) (11111110111010004000000000000000) (21111110011010003000000010000000) (21111110111000003000000000001000) (31110110011010002000100010000000) (31111100011010002000001010000000) (31111100101010002000001001000000) (41010110011010001010100010000000) (41100110011010001001100010000000) (50010110011010000110100010000000) 41. (01111110111010001110100010000000) 42. (44404000) (53314000) (63213010) (63303001) (72212110) 43. (15505000) 44. (04426000) 45. (0440400040000000) (1331400040000000) (2331300030001000) (2321301040000000) (3311301030100000) (3321201030001000) (4221201021001000) (2330300140000000) (3330200130001000) (3330300030000001) (3221211040000000) (4221111030001000) (4221210030000010) (5211111020101000) (5220111020011000) (6111111011101000) 46. (0331301031001000) (0331211040001000) 47. (0004222060000000) 48. (03013010301000003010000000000000)? 49. (02111110111010002010100010000000) 50. (54404000) (63314000) (73213010) (73303001) (82212110) 51. (25505000) 52. (05516000) 53. (1440400040000000) (2331400040000000) (3331300030001000) (3321301040000000) (4311301030100000) (4321201030001000) (5221201021001000) (3330300140000000) (4330200130001000) (4330300030000001) (4221211040000000) (5221111030001000) (5221210030000010) (6211111020101000) (6220111020011000) (7111111011101000) 54. (0421401040100000) (0431301040001000) (0331311050000000) 55. (0113222060000000) 56. (03213010300000003000000010000000)? 57. (02211110201010002100100010000000) (02211110111010003000100010000000) 58. (00010112022020006000000000000000) 59. (64404000) (73314000) (83213010) (83303001) (92212110) 60. (35505000) 61. (06606000) 62. (2440400040000000) (3331400040000000) (4331300030001000) (4321301040000000) (5311301030100000) (5321201030001000) (6221201021001000) (4330300140000000) (5330200130001000) (5330300030000001) (5221211040000000) (6221111030001000) (6221210030000010) (7211111020101000) (7220111020011000) (8111111011101000) 63. (0441400040001000) (0431401050000000) 64. (0222222060000000) 65. (03313000300010004000000000000000)? 66. (02212110201010003100000010000000) (03111110301010003010100000000000) (03211110201010003000100010000000) (02212110111010004000000010000000) 67. (00020220022020006000000000000000) 68. (74404000) (83314000) (93213010) (93303001) (A2212110) 69. (45505000) 70. (16606000) 71. (3440400040000000) (4331400040000000) (5331300030001000) (5321301040000000) (6311301030100000) (6321201030001000) (7221201021001000) (5330300140000000) (6330200130001000) (6330300030000001) (6221211040000000) (7221111030001000) (7221210030000010) (8211111020101000) (8220111020011000) (9111111011101000) 72. (0441500050000000) 73. (0322312060000000) 74. (03314000400000004000000000000000)? 75. (03213010210010003010000010000000) (03212110300010003010000010000000) (03311110300010003000100010000000) (03211110301010004000100000000000) (03212110201010004000000010000000) (02212110211010005000000000000000) 76. (01020220112020006000000000000000) 77. (84404000) (93314000) (A3213010) (A3303001) (B2212110) 78. (55505000) 79. (26606000) 186 APPENDIX C. OPTIMAL ~X(`)?VECTOR ENCODINGS 80. (4440400040000000) (5331400040000000) (6331300030001000) (6321301040000000) (7311301030100000) (7321201030001000) (8221201021001000) (6330300140000000) (7330200130001000) (7330300030000001) (7221211040000000) (8221111030001000) (8221210030000010) (9211111020101000) (9220111020011000) (A111111011101000) 81. (0550500050000000) 82. (0441311050001000) 83. (04404000400000004000000000000000)? 84. (03313010300010003100000010000000) (03313010210010004000000010000000) (03212110400010004010000000000000) (03311110400010004000100000000000) (03312110300010004000000010000000) (03212110301010005000000000000000) 85. (01120220211020006000000000000000) ~X(`)?vector structure encodings associated with Table 6.6, by table superscript: 1. (01020230) 2. (0001010102000030) 3. (01121220) 4. (0001011102101010) 5. (00000001000101100100011010100000) (00010001000001100000011011100000) (00010000000001200001011011000000) (00000001000101100200001000101000) 6. (02211220) (11121220) (02212111) 7. (0101012001201100) (0001022002201000) (0101012010111100) 8. (00010010000111000100011010100000) 9. (03301220) (12211220) (03302111) (03212120) (21121220) (12212111) (03303002) 10. (04010150) 11. (0210012001201100) (0110022002201000) (1101012001201100) (1001022002201000) (0210012010111100) (0201102010200200) (0201012010201100) (0111111011100110) (0111021011101010) (0110022011111000) (0101022011201000) (0201012001202000) (1101012010111100) (0111111020010110) (0111111011101001) 12. (0001013004000020) 13. (01000110002001000110001001001000) (00000120011001000210000000101000) (01010010001011001000011001100000) (01000110002001001001001001001000) (00010110011010001100001000100100) (00010110011001001100001000101000) (00010110002001001100001001001000) (00010110001011001100001001100000) (00010100002011001100002001000000) (00000120011001001101000000101000) (00010200002010001000002002000000) (00010110011010001000011001100000) (00000210012000001001001001001000) (01100010000111000100011010100000) (01000110001110000110001010000100) (01000110001101000110001010001000) (00100110001101000200001010001000) (00000120001101000210000010001000) (00000110001111000210001010000000) (01010010001002000100101010100000) (00010020001002000200100010100000) (00010110011001000110100010000010) (00010110010001100110100010100000) (00000110011001100111100010000000) (00010200011000100110001010001000) (10010010000111000100011010100000) (01010010001011001000011010010000) (01000020100101001001010000101000) (00010110011010000110100010000001) 14. (13301220) (04302120) (22211220) (13302111) (13212120) (04303011) (03313110) (31121220) (22212111) (13303002) 15. (02222220) 16. (1210012001201100) (1110022002201000) (0310102010200200) (0310012010201100) (0220111011100110) (0220021011101010) (0210112011200100) (0210022011201000) (0110122012200000) (0310012001202000) (0220012002102000) (2101012001201100) (2001022002201000) (1210012010111100) (1201102010200200) (1201012010201100) (1111111011100110) (1111021011101010) (1110022011111000) (1101022011201000) (0220111020010110) (0220021020011010) (0211111020100110) (0211102020100200) (0211012020101100) (0210112020110100) (0210022020111000) (0111121021100010) (0111022021101000) (0310101110201100) (0220111011101001) (1201012001202000) (0310012010112000) (0211111011101010) (0111112012101000) (2101012010111100) (1111111020010110) (1111111011101001) (0220200120010110) (0220111020011001) 17. (0002022002202000) 18. (11000110002001000110001001001000)? 19. (00010000002003000200003010000000) (00000001003002000300002000001000) 20. (23301220) (14302120) (05303020) (04403110) (32211220) (23302111) (23212120) (14303011) (13313110) (04404001) (41121220) (32212111) (23303002) 21. (03312220) 22. (2210012001201100)? 23. (0111022002202000) 24. (01111100101010002000001001000001)? 25. (00010100012011000200003010000000) (00010101011010100110101011000000) 26. (33301220) (24302120) (15303020) (14403110) (05404010) (42211220) (33302111) (33212120) (24303011) (23313110) (14404001) (51121220) (42212111) (33303002) 27. (04313120) 28. (3210012001201100)? 29. (0211022011202000) 187 30. (02200110200010002000100000010001)? 31. (00000220011110000220000010001000) 32. (43301220) (34302120) (25303020) (24403110) (15404010) (05505000) (52211220) (43302111) (43212120) (34303011) (33313110) (24404001) (61121220) (52212111) (43303002) 33. (04414110) 34. (07101060) 35. (4210012001201100)? 36. (0311112011202000) 37. (0200006005101000) 38. (12200110200010002000100000010001)? 39. (00010220012010000210100020000000) 40. (53301220) (44302120) (35303020) (34403110) (25404010) (15505000) (62211220) (53302111) (53212120) (44303011) (43313110) (34404001) (71121220) (62212111) (53303002) 41. (05504110) (14414110) (05505001) 42. (04413220) 43. (5210012001201100)? 44. (0221122031101000) (0221212022101000) 45. (0401013001303000) 46. (22200110200010002000100000010001)? 47. (01010120012020001210100010000000) 48. (00010220022000000220000000003000) 49. (74100140) (73200230) (64201130) (63301220) (54302120) (45303020) (44403110) (35404010) (25505000) (72211220) (63302111) (63212120) (54303011) (53313110) (44404001) (81121220) (72212111) (63303002) 50. (15504110) (06505010) (24414110) (15505001) 51. (05414120) 52. (3330300030000002)? 53. (0321212031101000) 54. (0411013011203000) 55. (03303000300000003000000000000002)? 56. (02010120012020002110100010000000) 57. (00010220022010000220100010001000) 58. (84100140) (83200230) (74201130) (73301220) (64302120) (55303020) (54403110) (45404010) (35505000) (82211220) (73302111) (73212120) (64303011) (63313110) (54404001) (91121220) (82212111) (73303002) 59. (25504110) (16505010) (06606000) (34414110) (25505001) 60. (05515110) 61. (08202060) 62. (4330300030000002)? 63. (0331311031101000) 64. (0321122021202000) 65. (13303000300000003000000000000002)? 66. (01110220211010002110100010000000) (01111120121010002110100010000000) 67. (00010220022020001220100010000000) 68. (94100140) (93200230) (84201130) (83301220) (74302120) (65303020) (64403110) (55404010) (45505000) (92211220) (83302111) (83212120) (74303011) (73313110) (64404001) (A1121220) (92212111) (83303002) 69. (35504110) (26505010) (16606000) (44414110) (35505001) 70. (06605110) 71. (08303050) 72. (5330300030000002)? 73. (0440311031101000) (1331311031101000) (0440311040011000) 74. (0421212021202000) 75. (23303000300000003000000000000002)? 76. (02111120211010002110100010000000) 77. (03010120012020000120200020000000) 78. (94100140) (93200230) (84201130) (83301220) (74302120) (65303020) (64403110) (55404010) (45505000) (92211220) (83302111) (83212120) (74303011) (73313110) (64404001) (A1121220) (92212111) (83303002) 79. (45504110) (36505010) (26606000) (54414110) (45505001) 80. (07606010) 81. (08404040) 82. (6330300030000002) 83. (1440311031101000) (0540401040100100) (0540311040101000) (0440411041100000) (2331311031101000) (1440311040011000) 84. (0331222041101000) 85. (33303000300000003000000000000002) 86. (02212110211010002110100010000000) 87. (01110220022020003110100010000000)