{ "query": "what are sets and spaces? in 250 words", "namespace": "924dbc22-31b1-4285-ad02-9f10843c9937", "messages": [ { "role": "assistant", "content": "Hallo NF SepTest,\n\nich bin Simon, dein KI-Chatbot, der mit dem Large Language Model gemini-1.5-flash arbeitet. Ich bin hier, um all deine Fragen pr\u00e4zise und umfassend zu beantworten. \n\nUnser System KIOS bietet dir Zugriff auf eine Wissensdatenbank namens 10-2, die eine Vielzahl von Informationen enth\u00e4lt. In dieser Datenbank befinden sich folgende Dokumente:\n\n* **Algebraic Topology AT-toc.pdf:** Ein Inhaltsverzeichnis f\u00fcr ein Buch \u00fcber algebraische Topologie, das Themen wie Homotopie, Homologie, Kohomologie und Homotopietheorie behandelt.\n* **An Introduction to the Theory of Numbers - Leo Moser (PDF).pdf:** Vorlesungsunterlagen \u00fcber elementare Zahlentheorie, die Themen wie Kompositionen und Partitionen, arithmetische Funktionen, Verteilung von Primzahlen, irrationale Zahlen, Kongruenzen, diophantische Gleichungen, kombinatorische Zahlentheorie und Geometrie der Zahlen abdecken.\n\nM\u00f6chtest du mehr \u00fcber die Themen in diesen Dokumenten erfahren? Hier sind ein paar Vorschl\u00e4ge:\n\n* \ud83e\uddee **Grundlagen der algebraischen Topologie:** Was sind Homotopie und Homologie? Wie werden sie in der Topologie verwendet?\n* \ud83d\udd22 **Elementare Zahlentheorie:** Was sind Primzahlen und wie werden sie verteilt? Wie funktionieren arithmetische Funktionen?\n* \ud83d\udd0e **Ungel\u00f6ste Probleme in der Zahlentheorie:** Was sind die Goldbachsche Vermutung, die Euler-Vermutung und die Zwillings-Primzahl-Vermutung?\n* \ud83d\udcda **Vergleich der beiden Dokumente:** Welche Gemeinsamkeiten und Unterschiede gibt es zwischen den beiden Dokumenten?\n\nWas m\u00f6chtest du dir heute genauer ansehen? \ud83d\ude0a\n\n\nwhat are sets and spaces? in 250 words\n\n FOR ADDITIONAL CONTEXT:\n\nKnowledgebase name: 10-2\nKnowledgebase files:\nAlgebraic Topology AT-toc.pdf\nAn Introduction to the Theory of Numbers - Leo Moser (PDF).pdf\nAlgorithms and Complexity - Herbert S. Wilf (PDF).pdf\nKnowledgebases crawlers:\n" }, { "role": "user", "content": "halo" }, { "role": "assistant", "content": "Hello! \ud83d\udc4b How can I help you today? \ud83d\ude0a" }, { "role": "user", "content": "can you write me 500 words on what is the contents of your context?" }, { "role": "assistant", "content": "The provided context is a Table of Contents (TOC) and a section titled \"Standard Notations\" from a book titled \"Algebraic Topology\" by Allen Hatcher. \n\n**Table of Contents:**\n\nThe TOC outlines the book's structure, dividing the content into chapters and sections. It covers fundamental geometric notions, the fundamental group, covering spaces, and additional topics. Each chapter is further divided into sections, providing a detailed overview of the book's content.\n\n**Standard Notations:**\n\nThis section defines various mathematical notations used throughout the book. It covers:\n\n- **Sets and Spaces:**\n - **Z, Q, R, C, H, O**: Integers, rationals, reals, complexes, quaternions, and octonions.\n - **Zn**: Integers modulo n.\n - **Rn**: n-dimensional Euclidean space.\n - **Cn**: Complex n-space.\n - **I**: Unit interval.\n - **Sn**: Unit sphere in \\(R^{n+1}\\).\n - **Dn**: Unit disk or ball in \\(R^n\\).\n - **\u2202Dn**: Boundary of the n-disk.\n - **en**: n-cell.\n - **|S|**: Disjoint union of sets or spaces.\n - **\u00d7, \u220f**: Product of sets, groups, or spaces.\n - **\u2245**: Isomorphism.\n - **A \u2282 B**: Set-theoretic containment.\n - **A \u21aa B**: Inclusion map.\n - **A - B**: Set-theoretic difference.\n\n- **Mathematical Symbols:**\n - **1**: Identity function.\n - **iff**: If and only if.\n\nThe section also clarifies that definitions of mathematical terms are provided within the text rather than in separate lists.\n\n**Overall, the context provides a glimpse into the structure and content of the book \"Algebraic Topology\" by Allen Hatcher. It outlines the book's organization, defines standard mathematical notations, and clarifies the book's approach to presenting definitions.**" }, { "role": "assistant", "content": "Thank you for providing the context. If you have any specific questions about the content of \"Algebraic Topology\" by Allen Hatcher, or if you need clarification on any of the standard notations or topics mentioned in the Table of Contents, please feel free to ask! I'm here to assist you with precise and accurate information." }, { "role": "assistant", "content": "It seems that I currently do not have access to the specific content of the files listed in the knowledgebase. However, if you have questions about algebraic topology or related topics, feel free to ask, and I will do my best to provide accurate and relevant information based on my training. If you need detailed information from the documents, I recommend reviewing them directly." }, { "role": "user", "content": "what are sets and spaces? quote information from your context" }, { "role": "assistant", "content": "The provided context focuses on the geometry of numbers and doesn't explicitly define \"sets\" and \"spaces\" in the way you might find in a set theory or topology textbook. \n\nHowever, the context does use the concept of sets in a few ways:\n\n* **Sets of Lattice Points:** The text discusses lattice points, which are points with integer coordinates. It mentions \"every lattice point other than \\(O\\)\" and \"no lattice point can be in either semicircle.\" This implies a set of lattice points within a given region.\n* **Sets of Linear Inequalities:** The context mentions \"solving in integers a set of linear inequalities.\" This refers to finding integer solutions that satisfy a collection of inequalities, which can be viewed as a set of conditions.\n\nThe context also uses the concept of \"space\" in the context of geometry:\n\n* **n-dimensional Space:** The text mentions generalizing the fundamental theorem of Minkowski to \"n-dimensional space.\" This refers to a geometric space with n dimensions.\n\nWhile the context doesn't provide a formal definition of \"sets\" and \"spaces,\" it uses these concepts implicitly within the discussion of geometric and number-theoretic problems. \n\nWould you like me to elaborate on any of these concepts or provide examples from the context?" }, { "role": "assistant", "content": "The context provided does not explicitly define \"sets\" and \"spaces\" in a formal mathematical sense, but it does utilize these concepts in relation to geometry and number theory. Here\u2019s a brief overview based on the context:\n\n1. **Sets:**\n - The context refers to sets of lattice points, which are points in a coordinate system where both coordinates are integers. For example, the mention of \"every lattice point other than \\(O\\)\" indicates a specific set of points excluding the origin.\n - It also discusses sets of linear inequalities, which involve finding integer solutions that satisfy multiple conditions. This can be viewed as a collection of constraints that define a set of possible solutions.\n\n2. **Spaces:**\n - The term \"n-dimensional space\" is used, which refers to a geometric space that extends into n dimensions. This concept is fundamental in various areas of mathematics, including algebraic topology and geometry.\n\nIf you would like more detailed explanations or examples related to these concepts, please let me know!" }, { "role": "assistant", "content": "The context provided does not explicitly define \"sets\" and \"spaces\" in a formal mathematical sense, but it does utilize these concepts in relation to geometry and number theory. Here\u2019s a brief overview based on the context:\n\n1. **Sets:**\n - The context refers to sets of lattice points, which are points in a coordinate system where both coordinates are integers. For example, the mention of \"every lattice point other than \\(O\\)\" indicates a specific set of points excluding the origin.\n - It also discusses sets of linear inequalities, which involve finding integer solutions that satisfy multiple conditions. This can be viewed as a collection of constraints that define a set of possible solutions.\n\n2. **Spaces:**\n - The term \"n-dimensional space\" is used, which refers to a geometric space that extends into n dimensions. This concept is fundamental in various areas of mathematics, including algebraic topology and geometry.\n\nIf you would like more detailed explanations or examples related to these concepts, please let me know!" }, { "role": "user", "content": "what are sets and spaces? in 250 words" }, { "role": "assistant", "content": "" } ], "stream": true, "language_level": "", "chat_channel": ":4457:1727871687775", "language": "German", "tone": "neutral", "writing_style": "standard", "model": "gemini-1.5-flash", "knowledgebase": "ki-dev-large", "seed": 1055, "client_id": 1727871687775, "all_context": false, "follow_up_for": null, "knowledgebase_files_count": 3, "override_command": null, "disable_clarity_check": false, "custom_primer": "", "logging": true, "query_route": "" } INITIALIZATION Knowledgebase: ki-dev-large Base Query: what are sets and spaces? in 250 words Model: gemini-1.5-flash **Elapsed Time: 0.00 seconds** ROUTING Query type: summary **Elapsed Time: 1.71 seconds** RAG PARAMETERS Max Context To Include: 100 Lowest Score to Consider: 0.1 ================================================== **Elapsed Time: 0.14 seconds** ================================================== VECTOR SEARCH ALGORITHM TO USE Use MMR search?: True Use Similarity search?: False ================================================== **Elapsed Time: 0.10 seconds** ================================================== VECTOR SEARCH DONE ================================================== **Elapsed Time: 6.43 seconds** ================================================== PRIMER Primer: You are Simon, a highly intelligent personal assistant in a system called KIOS. You are a chatbot that can read knowledgebases through the "CONTEXT" that is included in the user's chat message. Your role is to act as an expert at summarization and analysis. In your responses to enterprise users, prioritize clarity, trustworthiness, and appropriate formality. Be honest by admitting when a topic falls outside your scope of knowledge, and suggest alternative avenues for obtaining information when necessary. Make effective use of chat history to avoid redundancy and enhance response relevance, continuously adapting to integrate all necessary details in your interactions. Use as much tokens as possible to provide a detailed response. **Elapsed Time: 0.19 seconds** FINAL QUERY Final Query: CONTEXT: ########## File: Algebraic%20Topology%20AT-toc.pdf Page: 1 Context: # Algebraic Topology ## Allen Hatcher Copyright © 2001 by Allen Hatcher Paper or electronic copies for noncommercial use may be made freely without explicit permission from the author. All other rights reserved. Image Analysis: ### Analysis of Visual Content #### 1. Localization and Attribution - **Image 1**: - Position: This is the only image on the page, located centrally. #### 4. Text Analysis - **Image 1**: - **Detected Text**: - Title: "Algebraic Topology". - Author: "Allen Hatcher". - Copyright Notice: - "Copyright © 2001 by Allen Hatcher". - "Paper or electronic copies for noncommercial use may be made freely without explicit permission from the author. All other rights reserved." - **Content Significance**: - The title indicates that the document focuses on "Algebraic Topology," a branch of mathematics. - The author’s name, "Allen Hatcher," identifies the individual responsible for the work. - The copyright notice provides information regarding the legal use of the material, specifying that copying for noncommercial purposes is permitted. #### 6. Product Analysis - **Image 1**: - **Main Features**: - **Illustration**: A central geometric design likely indicates a topological or mathematical concept, typical in academic and educational publications. - **Materials and Colors**: The illustration uses intersecting loops in blue and red hues, creating an appealing pattern. - **Comparison**: There is only one design element, so internal comparison isn’t applicable here. #### 8. Color Analysis - **Image 1**: - **Color Composition**: - Dominant Colors: Blue and red, used in the central geometric pattern. - Impact: The use of blue and red draws attention to the geometric design, which is intricate and visually stimulating. #### 9. Perspective and Composition - **Image 1**: - **Perspective**: The image is presented from a front-on, flat perspective, typical for book covers. - **Composition**: - The geometric design is central and symmetrical. - The title and author's name are positioned above the design, with the copyright information below. - The design and text are framed by a blue border, providing structure and focus. #### 10. Contextual Significance - **Image 1**: - **Overall Contribution**: - The image serves as the cover of a textbook on "Algebraic Topology." - The geometric design visually represents mathematical complexity, aligning with the book’s subject. - The clean, structured layout and professional design establish the document as an academic publication. #### 13. Process Flows - Not Applicable: There are no process flows depicted in the image. #### 14. Process Descriptions - Not Applicable: There are no process descriptions in the image. ### Conclusion This image serves as an academic book cover for "Algebraic Topology" by Allen Hatcher. The design elements, color composition, and structured layout emphasize its educational purpose, visually reflecting the abstract and complex nature of the subject matter. #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 3 Context: # Table of Contents ## Preface - Standard Notations ix - Standard Notations xii ## Chapter 0. Some Underlying Geometric Notions 1. Homotopy and Homotopy Type 1. Cell Complexes 5 2. Operations on Spaces 8 3. Two Criteria for Homotopy Equivalence 10 4. The Homotopy Extension Property 14 ## Chapter 1. The Fundamental Group ### 1.1 Basic Constructions - Paths and Homotopy 25 - The Fundamental Group of the Circle 29 - Induced Homomorphisms 34 ### 1.2 Van Kampen’s Theorem - Free Products of Groups 41 - The van Kampen Theorem 43 - Applications to Cell Complexes 49 ### 1.3 Covering Spaces - Lifting Properties 60 - The Classification of Covering Spaces 63 - Deck Transformations and Group Actions 70 ## Additional Topics ### 1.A Graphs and Free Groups 83 ### 1.B KG(1) Spaces and Graphs of Groups 85 #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 4 Context: # Chapter 2. Homology . . . . . . . . . . . . . . . . . . . . 97 ## 2.1. Simplicial and Singular Homology . . . . . . . . . 102 - Δ-Complexes 102 - Simplicial Homology 104 - Singular Homology 108 - Homotopy Invariance 110 - Exact Sequences and Excision 113 - The Equivalence of Simplicial and Singular Homology 128 ## 2.2. Computations and Applications . . . . . . . . . . 134 - Degree 134 - Cellular Homology 137 - Mayer-Vietoris Sequences 149 - Homology with Coefficients 153 ## 2.3. The Formal Viewpoint . . . . . . . . . . . . . . . 160 - Axioms for Homology 160 - Categories and Functors 162 ### Additional Topics - **2.A**. Homology and Fundamental Group 166 - **2.B**. Classical Applications 169 - **2.C**. Simplicial Approximation 177 # Chapter 3. Cohomology . . . . . . . . . . . . . . . . . . 185 ## 3.1. Cohomology Groups . . . . . . . . . . . . . . . . 190 - The Universal Coefficient Theorem 190 - Cohomology of Spaces 197 ## 3.2. Cup Product . . . . . . . . . . . . . . . . . . . 206 - The Cohomology Ring 212 - A Künneth Formula 214 - Spaces with Polynomial Cohomology 220 ## 3.3. Poincaré Duality . . . . . . . . . . . . . . . . 230 - Orientations and Homology 233 - The Duality Theorem 239 - Connection with Cup Product 249 - Other Forms of Duality 252 ### Additional Topics - **3.A**. Coefficients for Homology 261 - **3.B**. The General Künneth Formula 268 - **3.C**. H-Spaces and Hopf Algebras 281 - **3.D**. The Cohomology of \( S^0(n) \) 292 - **3.E**. Bockstein Homomorphisms 321 - **3.F**. Limits and Ext 311 - **3.G**. Local Coefficients 327 #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 5 Context: # Chapter 4. Homotopy Theory ## 4.1. Homotopy Groups - Definitions and Basic Constructions 340. - Whitehead’s Theorem 346. - Cellular Approximation 348. - CW Approximation 352. ## 4.2. Elementary Methods of Calculation - Excision for Homotopy Groups 360. - The Hurewicz Theorem 366. - Fiber Bundles 375. - Stable Homotopy Groups 384. ## 4.3. Connections with Cohomology - The Homotopy Construction of Cohomology 393. - Fibrations 405. - Postnikov Towers 410. - Obstruction Theory 415. # Additional Topics ### 4.A. Basepoints and Homotopy 421. ### 4.B. The Hopf Invariant 427. ### 4.C. Minimal Cell Structures 429. ### 4.D. Cohomology of Fiber Bundles 431. ### 4.E. The Brown Representability Theorem 448. ### 4.F. Spectra and Homology Theories 452. ### 4.G. Gluing Constructions 456. ### 4.H. Eckmann-Hilton Duality 460. ### 4.I. Stable Splittings of Spaces 466. ### 4.J. The Loopspace of a Suspension 470. ### 4.K. The Dold-Thom Theorem 475. ### 4.L. Steenrod Squares and Powers 487. # Appendix - Topology of Cell Complexes 519. - The Compact-Open Topology 529. - The Homotopy Extension Property 533. - Simplicial CW Structures 534. # Bibliography # Index #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 6 Context: # Preface This book was written to be a readable introduction to algebraic topology with rather broad coverage of the subject. The viewpoint is quite classical in spirit, and stays well within the confines of pure algebraic topology. In a sense, the book could have been written thirty or forty years ago since virtually everything in it is at least that old. However, the passage of the intervening years has helped clarify what are the most important results and techniques. For example, CW complexes have proved over time to be the most natural class of spaces for algebraic topology, so they are emphasized here much more than in the books of an earlier generation. This emphasis also illustrates the book's general slant towards geometric, rather than algebraic, aspects of the subject. The geometry of algebraic topology is so pretty, it would seem a pity to slight it and to miss all the intuition it provides. At the elementary level, algebraic topology separates naturally into the two broad channels of homology and homotopy. This material is here divided into four chapters, roughly according to increasing sophistication, with homotopy split between Chapters 1 and 4, and homology and its mirror variant cohomology in Chapters 2 and 3. These four chapters do not have to be read in this order, however. One could begin with homology and perhaps continue with cohomology before turning to homotopy. In the other direction, one could postpone homology and cohomology until after parts of Chapter 4. If this latter strategy is pushed to its natural limit, homology and cohomology can be developed just as branches of homotopy theory. Appealing as this approach is from a strictly logical point of view, it places more demands on the reader, and since readability is one of the first priorities of the book, this homotopic interpretation of homology and cohomology is described only after the latter theories have been developed independently of homotopy theory. Preceding the four main chapters there is a preliminary Chapter 0 introducing some of the basic geometric concepts and constructions that play a central role in both the homological and homotopical sides of the subject. This can either be read before the other chapters or skipped and referred back to later for specific topics as they become needed in the subsequent chapters. Each of the four main chapters concludes with a selection of additional topics that the reader can sample at will, independent of the basic core of the book contained in the earlier parts of the chapters. Many of these extra topics are in fact rather important in the overall scheme of algebraic topology, though they might not fit into the time #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 7 Context: # Preface The additional topics amount to nearly half the book, and they are included here both to make the book more comprehensive and to give the reader who takes the time to dive into them a more substantial sample of the true richness and beauty of the subject. There is also an Appendix dealing mainly with a number of matters of a point-set topological nature that arise in algebraic topology. Since this is a textbook on algebraic topology, details involving point-set topology are often treated lightly or skipped entirely in the body of the text. Not included in this book is the important but somewhat more sophisticated topic of spectral sequences. It was very tempting to include something about this marvelous tool here, but spectral sequences are such a big topic that it seemed best to start with them afresh in a new volume. This is tentatively titled *Spectral Sequences in Algebraic Topology* and is referred to herein as [SSAT]. There is also a third book in progress, on vector bundles, characteristic classes, and K-theory, which will be largely independent of [SSAT] and of much of the present book. This is referred to as [VBKT], its provisional title being *Vector Bundles and K-Theory*. In terms of prerequisites, the present book assumes the reader has some familiarity with the content of the standard undergraduate courses in algebra and point-set topology. In particular, the reader should know about quotient spaces, or identification spaces as they are sometimes called, which are quite important for algebraic topology. Good sources for this concept are the textbooks [Armstrong 1983] and [Jänich 1984] listed in the Bibliography. A book such as this one, whose aim is to present classical material from a rather classical viewpoint, is not the place to indulge in wild innovation. There is, however, one small novelty in the exposition that may be worth commenting upon, even though one might say that it plays a relatively minor role. This is the use of what we call Δ-complexes, which are a mild generalization of the classical notion of a simplicial complex. The idea is to decompose a space into simplices allowing different faces of a simplex to coincide and dropping the requirement that simplices are uniquely determined by their vertices. For example, if one takes the standard picture of the torus as a square with opposite edges identified and divides the square into two triangles by cutting along a diagonal, then the result is a Δ-complex structure on the torus having 2 triangles, 3 edges, and 1 vertex. By contrast, a simplicial complex structure on the torus must have at least 14 triangles, 21 edges, and 7 vertices. So Δ-complexes provide a significant improvement in efficiency, which is nice from a pedagogical viewpoint since it simplifies calculations in examples. A more fundamental reason for considering Δ-complexes is that they seem to be very natural objects from the viewpoint of algebraic topology. They are the natural domain of definition for simplicial homology, and a number of standard constructions produce Δ-complexes rather than simplicial complexes. Historically, Δ-complexes were first introduced by #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 8 Context: # Preface Eilenberg and Zilber in 1950 under the name of semisimilpicial complexes. Soon after this, additional structure in the form of certain 'degeneracy maps' was introduced, leading to a very useful class of objects that came to be called semisimplical sets. The semisimplical complexes of Eilenberg and Zilber then became 'semisimplical sets', but in this book, we have chosen to use the shorter term 'd-complex'. This book will remain available online in electronic form after it has been printed in the traditional fashion. The web address is [http://www.math.cornell.edu/~hatcher](http://www.math.cornell.edu/~hatcher) One can also find here the parts of the other two books in the sequence that are currently available. Although the present book has gone through countless revisions, including the correction of many small errors both typographical and mathematical found by careful readers of earlier versions, it is inevitable that some errors remain, so the web page includes a list of corrections to the printed version. With the electronic version of the book, it will be possible not only to incorporate corrections but also to make more substantial revisions and additions. Readers are encouraged to send comments and suggestions as well as corrections to the email address posted on the web page. ## Note on the 2015 reprinting A large number of corrections are included in this reprinting. In addition, there are two places in the book where the material was rearranged to an extent requiring renumbering of theorems, etc. In §3.2 starting on page 210, the renumbering is the following: | old | 3.11 | 3.12 | 3.13 | 3.14 | 3.15 | 3.16 | 3.17 | 3.18 | 3.19 | 3.20 | 3.21 | |-----|------|------|------|------|------|------|------|------|------|------|------| | new | 3.16 | 3.19 | 3.14 | 3.11 | 3.13 | 3.15 | 3.20 | 3.16 | 3.17 | 3.21 | 3.18 | In §4.1 the following renumbering occurs in pages 352-355: | old | 4.13 | 4.14 | 4.15 | 4.16 | 4.17 | |-----|------|------|------|------|------| | new | 4.17 | 4.13 | 4.14 | 4.15 | 4.16 | #################### File: Algebraic%20Topology%20AT-toc.pdf Page: 9 Context: # Standard Notations **Z, Q, R, C, H, O** : the integers, rationals, reals, complexes, quaternions, and octonions. - **Zn** : the integers mod n. - **Rn** : n-dimensional Euclidean space. - **Cn** : complex n-space. In particular, **R^0 = {0} = C^0**, zero-dimensional vector spaces. - **I = [0, 1]** : the unit interval. - **Sn** : the unit sphere in **R^(n+1)**, all points of distance 1 from the origin. - **Dn** : the unit disk or ball in **R^n**, all points of distance ≤ 1 from the origin. - **∂Dn = Sn-1** : the boundary of the n-disk. - **en** : an n-cell, homeomorphic to the open n-disk **Dn - ∂Dn**. In particular, **D^0** and **e^0** consist of a single point since **R^0 = {0}**. But **S^0** consists of two points since it is **∂D^1**. - **1** : the identity function from a set to itself. - **|S|** : disjoint union of sets or spaces. - **×, ∏** : product of sets, groups, or spaces. - **≅** : isomorphism. - **A ⊂ B** or **B ⊃ A** : set-theoretic containment, not necessarily proper. - **A ↪ B** : the inclusion map **A → B** when **A ⊂ B**. - **A - B** : set-theoretic difference, all points in **A** that are not in **B**. - **iff** : if and only if. There are also a few notations used in this book that are not completely standard. The union of a set **X** with a family of sets **Yi**, with **i** ranging over some index set, is usually written simply as **X ∪ Yi** rather than something more elaborate such as **X ∪ (∪i Yi)**. Intersections and other similar operations are treated in the same way. Definitions of mathematical terms are given within paragraphs of text, rather than displayed separately like theorems. These definitions are indicated by the use of **boldface** type for the more important terms, with italics being used for less important or simpler definitions as well as simple emphasis as in standard written prose. Terms defined using boldface appear in the Index, with the page number where the definition occurs listed first. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 4 Context: # Preface For the past several years, mathematics majors in the computing track at the University of Pennsylvania have taken a course in continuous algorithms (numerical analysis) in the junior year, and in discrete algorithms in the senior year. This book has grown out of the senior course as I have been teaching it recently. It has also been tried out on a large class of computer science and mathematics majors, including seniors and graduate students, with good results. Selection by the instructor of topics of interest will be very important, because normally I've found that I can't cover anywhere near all of this material in a semester. A reasonable choice for a first try might be to begin with Chapter 2 (recursive algorithms) which contains lots of motivation. Then, as new ideas are needed in Chapter 2, one might delve into the appropriate sections of Chapter 1 to get the concepts and techniques well in hand. After Chapter 2, Chapter 4, on number theory, discusses material that is extremely attractive, and surprisingly pure and applicable at the same time. Chapter 5 would be next, since the foundations would then all be in place. Finally, material from Chapter 3, which is rather independent of the rest of the book, but is strongly connected to combinatorial algorithms in general, might be studied as time permits. Throughout the book, there are opportunities to ask students to write programs and get them running. These are not mentioned explicitly, with a few exceptions, but will be obvious when encountered. Students should all have the experience of writing, debugging, and using a program that is nontrivially recursive, for example. The concept of recursion is subtle and powerful, and is helped a lot by hands-on practice. Any of the algorithms of Chapter 2 would be suitable for this purpose. The recursive graph algorithms are particularly recommended since they are usually quite foreign to students’ previous experience and therefore have great learning value. In addition to the exercises that appear in this book, student assignments might consist of writing occasional programs, as well as delivering reports in class on assigned readings. The latter might be found among the references cited in the bibliographies in each chapter. I am indebted first of all to the students on whom I worked out these ideas, and to a number of colleagues for their helpful advice and friendly criticism. Among the latter I will mention Richard Brault, Daniel Kleitman, Albert Nijenhuis, Robert Tarjan, and Alan Tucker. For the no-doubt-numerous shortcomings that remain, I accept full responsibility. This book was typeset in TeX. To the extent that it’s a delight to look at, thank TeX. For the deficiencies in its appearance, thank my limitations as a typesetter. It was, however, a pleasure for me to have had the chance to typeset my own book. My thanks to the Computer Science department of the University of Pennsylvania, and particularly to Aravind Joshi, for generously allowing me the use of TeX facilities. Herbert S. Wilf #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 5 Context: # Chapter 0: What This Book Is About ## 0.1 Background An algorithm is a method for solving a class of problems on a computer. The complexity of an algorithm is the cost, measured in running time, or storage, or whatever units are relevant, of using the algorithm to solve one of those problems. This book is about algorithms and complexity, and so it is about methods for solving problems on computers and the costs (usually the running time) of using those methods. Computing takes time. Some problems take a very long time, others can be done quickly. Some problems seem to take a long time, and then someone discovers a faster way to do them (a ‘faster algorithm’). The study of the amount of computational effort that is needed in order to perform certain kinds of computations is the study of computational complexity. Naturally, we would expect that a computing problem for which millions of bits of input data are required would probably take longer than another problem that needs only a few items of input. So the time complexity of a calculation is measured by expressing the running time of the calculation as a function of some measure of the amount of data that is needed to describe the problem to the computer. For instance, think about this statement: “I just bought a matrix inversion program, and it can invert an \( n \times n \) matrix in just \( 1.2n^3 \) minutes.” We see here a typical description of the complexity of a certain algorithm. The running time of the program is being given as a function of the size of the input matrix. A faster program for the same job might run in \( 0.8n^3 \) minutes for an \( n \times n \) matrix. If someone were to make a really important discovery (see section 2.4), then maybe we could actually lower the exponent, instead of merely shaving the multiplicative constant. Thus, a program that would invert an \( n \times n \) matrix in only \( n^2 \log n \) minutes would represent a striking improvement of the state of the art. For the purposes of this book, a computation that is guaranteed to take at most \( c n^3 \) time for input of size \( n \) will be thought of as 'easy' computation. One that needs at most \( n^{10} \) time is also easy. If a certain calculation on an \( n \times n \) matrix were to require \( 2^n \) minutes, then that would be a 'hard' problem. Naturally some of the computations that we are calling 'easy' may take a very long time to run, but still, from our present point of view the important distinction to maintain will be the polynomial time guarantee or lack of it. The general rule is that if the running time is not a polynomial function of the amount of input data, then the calculation is an easy one; otherwise it’s hard. Many problems in computer science are known to be easy. To convince someone that a problem is easy, it is enough to describe a fast method for solving that problem. To convince someone that a problem is hard is hard, because you will have to prove to them that it is impossible to find a fast way of doing the calculation. It will not be enough to point to a particular algorithm and to lament its slowness. After all, that algorithm may be slow, but maybe there’s a faster way. Matrix inversion is easy. The familiar Gaussian elimination method can invert an \( n \times n \) matrix in time of at most \( O(n^3) \). To give an example of a hard computational problem we have to go far afield. One interesting one is called the 'tiling problem'. Suppose we are given infinitely many identical floor tiles, each shaped like a regular hexagon. Then we can tile the whole plane with them, i.e., we can cover the plane with no empty spaces left over. This can also be done if the tiles are identical rectangles, but not if they are regular hexagons. In Fig. 0.1 we show a tiling of the plane by identical rectangles, and in Fig. 0.2 is a tiling by regular hexagons. --- 1. See, for instance, Martin Gardner’s article in *Scientific American*, January 1977, pp. 110-121. 2. R. Berger, “The undecidability of the domino problem,” *Amer. Math. Soc.* 66 (1966), Amer. Image Analysis: ## Analysis of the Attached Visual Content ### 1. Localization and Attribution - **Image**: There is only one image present on the page. ### 2. Scene and Activity Analysis - **Scene Description**: The entire scene appears to be a page from a book or document. - **Activity**: There is no specific activity depicted. The main focus is on the textual content provided on this page. ### 4. Text Analysis - **Extracted Text**: - **Title**: "Chapter 0: What This Book Is About" - **Section**: "0.1 Background" - **Content**: The text describes algorithms, computational complexity, and introduces the purpose and scope of the book. It provides definitions and examples to explain how computational problems can be classified as easy or difficult based on the amount of computational effort required. - **Examples and Explanations**: - Discusses matrix inversion problems. - Mention of "tiling problem" with illustrations (Fig. 0.1 and Fig. 0.2) referred to but not shown in the extracted image. - **References**: - Martin Gardner's article in *Scientific American*. - R. Berger's work on the undecidability of the domino problem. ### 7. Anomaly Detection - **Anomalies**: There are no noticeable anomalies or unusual elements in the image. The layout and content appear to be standard for an academic or technical document. ### 8. Color Analysis - **Color Composition**: The image is black and white with text and some footnotes in a standard format. - **Dominant Colors**: Black text on a white background, which is typical for printed academic material. ### 9. Perspective and Composition - **Perspective**: The perspective is a direct, flat view of the page, typical of a scanned document or a digital book page. - **Composition**: The text is structured with a title, section heading, main body text, and footnotes. There is clear demarcation between sections with proper use of paragraphs and indentations. ### 12. Graph and Trend Analysis - **Existing Graphs**: There are references to figures (Fig. 0.1 and Fig. 0.2) related to tiling problems, but these figures are not part of the extracted image. ### Additional Aspects: #### Prozessbeschreibungen (Process Descriptions) - **Description**: The text provides a process description of computational complexity, explaining how various problems can be classified based on the time they take to compute. #### Typen Bezeichnung (Type Designations) - **Types/Categories**: - Problems are classified based on computational effort. - Examples given involve matrix inversion and tiling problems. - Terms like "easy", "hard", and "polynomial time" are used to categorize problems. ### Contextual Significance - **Overall Document Context**: This page serves as an introductory section to an academic or technical book on algorithms and computational complexity. It provides the reader with foundational knowledge necessary to understand subsequent chapters. - **Contribution to Overall Message**: The image sets the stage for comprehensive discourse on algorithms by explaining fundamental concepts and laying the groundwork for more detailed exploration of computational problems. ### Conclusion The visual content analyzed is an informative introductory page of a book or document centered on computational complexity and algorithms. It introduces key concepts, definitions, and examples, preparing readers for detailed discussions in subsequent sections. The layout, text structure, and references are typical of technical or academic literature. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 6 Context: # Chapter 0: What This Book Is About ![Fig. 0.1: Tiling with rectangles](path/to/rectangles-image) ![Fig. 0.2: Tiling with hexagons](path/to/hexagons-image) The way to do it, so even looking for an algorithm would be fruitless. That doesn’t mean that the question is hard for every polygon. Hard problems can have easy instances. What has been proved is that no single method exists that can guarantee that it will decide this question for every polygon. The fact that a computational problem is hard doesn’t mean that every instance of it has to be hard. The problem is hard because we cannot devise an algorithm for which we can give a guarantee of fast performance for all instances. Notice that the amount of input data to the computer in this example is quite small. All we need to input is the shape of the basic polygon. Yet not only is it impossible to devise a fast algorithm for this problem, it has been proved impossible to devise any algorithm at all that is guaranteed to terminate with a Yes/No answer after finitely many steps. That’s really hard! ## 0.2 Hard vs. Easy Problems Let’s take a moment more to say in another way exactly what we mean by an ‘easy’ computation vs. a ‘hard’ one. Think of an algorithm as being a little box that can solve a certain class of computational problems. Into the box goes a description of a particular problem in that class, and then, after a certain amount of time, or of computational effort, the answer appears. A **fast** algorithm is one that carries a guarantee of fast performance. Here are some examples. **Example 1.** It is guaranteed that if the input problem is described with B bits of data, then an answer will be output after at most \(6B^3\) minutes. **Example 2.** It is guaranteed that every problem that can be input with B bits of data will be solved in at most \(O(B^{1.5})\) seconds. A performance guarantee, like the two above, is sometimes called a ‘worst-case complexity estimate,’ and it’s easy to see why. If we have an algorithm that will, for example, sort any given sequence of numbers into ascending order of size (see section 2.1) it may find that some sequences are easier to sort than others. For instance, the sequence `1, 2, 7, 11, 10, 15, 20` is nearly in order already, so our algorithm might, if it takes advantage of the near-order, sort it very rapidly. Other sequences might be a lot harder for it to handle, and might therefore take more time. Math. Soc., Providence, RI 2 Image Analysis: ### Image Analysis #### 1. Localization and Attribution - **Image 1** is at the top center of the page. - **Image 2** is below **Image 1**, also at the center of the page. #### 2. Object Detection and Classification - **Image 1:** - **Object:** Grid pattern - **Category:** Geometric figure - **Key Features:** Consists of several intersecting horizontal and vertical lines forming rectangles. - **Image 2:** - **Object:** Hexagonal tiling - **Category:** Geometric figure - **Key Features:** Composed of multiple hexagons arranged in a regular pattern. #### 3. Scene and Activity Analysis - **Image 1:** - **Scene Description:** The image shows a simple grid pattern created by perpendicular lines intersecting to form rectangles. - **Main Actors and Actions:** None. - **Image 2:** - **Scene Description:** The image depicts a pattern formed by multiple hexagons joined together. - **Main Actors and Actions:** None. #### 4. Text Analysis - **Detected Text:** - "Chapter 0: What This Book Is About" - "Fig. 0.1: Tiling with rectangles" - "Fig. 0.2: Tiling with hexagons" - Additional body text discusses the difference between hard and easy computational problems and examples of each. - **Text Content Analysis:** - The text explains computational complexity, differentiating between easy and hard problems. It provides a brief introduction to the chapter's content and uses figures to illustrate examples of tiling patterns, which likely relate to computational problem examples. - Significant extracts: - "Fig. 0.1: Tiling with rectangles" and "Fig. 0.2: Tiling with hexagons" are captions that explain the images of tiling patterns. - The body text refers to the problem of tiling patterns, implying some connection to algorithmic complexity and computational problems. #### 10. Contextual Significance - The images and text are part of a chapter introduction about computational problems, specifically focusing on examples that illustrate differences between easy and hard problems. The tiling patterns with rectangles and hexagons visually represent examples of problems that an algorithm might need to solve. #### 12. Graph and Trend Analysis - There are no traditional graphs with axes and data points, but the tiling patterns might be interpreted as visual "graphs" in the sense of theoretical computer science problems (e.g., tiling and coverage problems). #### 13. Graph Numbers - Not applicable as there are no numerically labeled graphs. #### Additional Aspects - **Ablaufprozesse (Process Flows):** - None depicted. - **Prozessbeschreibungen (Process Descriptions):** - Descriptions refer to computational problem definitions and characteristics in the text, not shown visually as processes. - **Typen Bezeichnung (Type Designations):** - Types of problems (hard vs. easy) defined and exemplified in the text. - **Trend and Interpretation:** - Trend towards explaining complexity through visual and textual examples, emphasizing how different problem types demonstrate computational difficulty. - **Tables:** - None present in the document. ### Summary The document's main focus is to introduce computational problems and distinguish between those that are considered hard and easy. The images are geometric figures showing tiling with rectangles and hexagons, correlating to examples mentioned in the text. The text provides context on the computational complexity of problems using these visual examples to help illustrate different types of computational challenges. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 7 Context: The problem is this. Let \(n\) be a given integer. We want to find out if \(n\) is prime. The method that we choose is the following. For each integer \(m = 2, 3, \ldots, \sqrt{n}\)| we ask if \(m\) divides (evenly into) \(n\). If all of the answers are ‘No,’ then we declare \( n \) to be a prime number, else it is composite. First, we look at the computational complexity of this algorithm. That means that we are going to find out how much work is involved in doing the test. For a given integer \( n \) the work that we have to do can be measured in units of divisions of a whole number by another whole number. In those units, we obviously will do about \(\sqrt{n}\) units of work. It seems as though this is a tractable problem, because, after all, \(\sqrt{n}\) is of polynomial growth in \( n \). For instance, we do less than \( n \) units of work, and that’s certainly a polynomial in \( n \), isn’t it? So, according to our definition of fast and slow algorithms, the distinction was made on the basis of polynomial vs. faster-than-polynomial growth of the work done with the problem size, and therefore this problem must be easy. Right? Well, no not really. References to the distinction between fast and slow methods will show that we have to measure the amount of work done as a function of the number of bits of input to the problem. In this example, \( n \) is not the number of bits of input. For instance, if \( n = 59 \), we don’t need 59 bits to describe it, but only 6. In general, the number of binary digits in the bit string of an integer \( n \) is close to \(\log_2 n\). So in the problem of this example, testing the primality of a given integer \( n \), the length of the input bit string \( B \) is about \(\log_2n\). Seen in this light, the calculation suddenly seems very long. A string consisting of mere \(\log_2 n\) 0’s and 1’s has caused our mighty computer to do about \(\sqrt{n}\) units of work. If we express the amount of work done as a function of \( B \), we find that the complexity of this calculation is approximately \(2^{B/2}\), and that grows much faster than any polynomial function of \( B \). Therefore, the method that we have just discussed for testing the primality of a given integer is slow. See Chapter 4 for further discussions of this problem. At the present time no one has found a fast way to test for primality, nor has anyone proved that there isn’t a fast way. Primality testing belongs to the (well-populated) class of seemingly, but not provably, intractable problems. In this book we will deal with some easy problems and some seemingly hard ones. It’s the ‘seemingly’ that makes things very interesting. These are problems for which no one has found a fast computer algorithm, --- ### Scene and Activity Analysis: #### Described Scene and Activities: - The scene described in the image is a text-heavy document discussing computational problems, particularly focusing on the complexity and computational time of algorithms. - There are discussions of worst-case bounds, average case bounds, and the difference between fast and slow algorithms, followed by an example problem regarding the determination of whether a given integer is prime. #### Main Actors: - The main actors in the scene are algorithms and computational problems. - The text describes the actions of measuring computational complexity, evaluating polynomial vs. non-polynomial time, and testing algorithm efficiency. ### Contextual Significance: #### Contribution to Overall Message: - This text excerpt appears to be from a textbook or academic paper focusing on computational complexity, likely aimed at explaining the difference between easy and hard problems in computer science. - The example provided (primality testing) is used to illustrate these concepts and highlight the challenges associated with algorithm efficiency. ### Perspective and Composition: #### Perspective: - The perspective is that of a reader or student studying the material presented on the page. #### Composition: - The text is organized in a traditional scholarly format, with clear headings, paragraphs, and a structured presentation of concepts and examples. ### Anomaly Detection: - No anomalies were detected in the image; the text appears to be consistent with a standard academic document discussing computational complexity. ### Color Analysis: #### Color Composition: - The image consists entirely of black text on a white background. #### Dominant Colors: - The dominant colors are black and white. ### Graph and Trend Analysis: - There are no graphs present in this image. ### Diagram and Chart Analysis: - There are no diagrams or charts present in this image. ### Metadata Analysis: - There is no visible metadata within the image. ### Additional Aspects: #### Prozessbeschreibungen (Process Descriptions): - The described process is related to evaluating the computational complexity of algorithms, specifically mentioning worst-case and average-case scenarios and providing an example with testing for primality. #### Typen Bezeichnung (Type Designations): - Type designations include polynomial-time algorithms and non-polynomial-time algorithms, as well as tractable and intractable problems. ### Conclusion: This image contains a detailed section of text from what appears to be a textbook or academic paper on computational complexity, focusing on the difference between easy and hard computational problems, with a specific example relating to primality testing. The text touches upon polynomial-time guarantees, worst-case and average-case bounds, and the conceptual distinction between fast and slow algorithms. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 7 Context: So in some problems whose input bit string has \( B \) bits, the algorithm might operate in time \( 6B \) and on others it might need, say, \( 100 \log B \) time units, and for still other problems instances of length \( B \) the algorithm might need \( 5B^2 \) time units to get the job done. Well then, what would the warranty card say? I would have to pick out the worst possibility; otherwise the guarantee wouldn’t be valid. It would assure me that if the input problem instance can be described by \( B \) bits, then an answer will appear after at most \( 5B^2 \) time units. Hence, a performance guarantee is equivalent to an estimation of the worst possible scenario: the longest possible calculation that might ensue if \( B \) were input to the program. ### Worst-case bounds Worst-case bounds are the most common kind, but there are other kinds of bounds for running time. We might give an average case bound instead (see section 5.7). That wouldn’t guarantee performance no worse than \( \varepsilon \); it would state that if the performance is averaged over all possible input bit strings of \( B \) bits, then the average amount of computing time will be so-and-so (as a function of \( B \)). Now let’s talk about the difference between easy and hard computational problems and between fast and slow algorithms. A warranty that would not guarantee ‘fast’ performance would contain some function of \( B \) that grows faster than any polynomial, like \( 2^B \), for instance, or like \( n^{\log n} \), etc. It is the polynomial time vs. necessarily polynomial time guarantee that makes the difference between the easy and hard classes of problems, or between the fast and the slow algorithms. It is highly desirable to work with algorithms such that we can give a performance guarantee for running time that is at most a polynomial function of the number of bits of input. An algorithm is slow if, whatever polynomial \( P \) we think of, there exists arbitrary large values of \( B \), such that the input data strings of \( B \) bits, that cause the algorithm to do more than \( P(B) \) units of work. A computational problem is **intractable** if it can be proved that there is no fast algorithm for it. ### Example 3 Here is a familiar computational problem and a method, or algorithm, for solving it. Let’s see if the method has a polynomial time guarantee or not. The problem is this. Let \( n \) be a given integer. We want to find out if \( n \) is prime. The method that we choose is the following. For each integer \( n = 2, 3, \ldots, \sqrt{n} \) we ask if \( n \) divides (evenly into) \( n \). If all the answers are ‘No,’ then we declare \( n \) to be a prime number; else it is composite. In this way, we look at the computational complexity of this algorithm. Therefore, we are going to find out how much work is involved in doing the test. For a given integer \( n \) that we have to do can be measured in units of divisions of a whole number by another whole number. In those units, we obviously will do about \( \sqrt{n} \) units of work. It seems as though this is a tractable problem, because, after all, \( \sqrt{n} \) is of polynomial growth in \( n \). For instance, we do less than \( n \) units of work, and that’s certainly a polynomial in \( n \), isn’t it? So, according to our definition of fast and slow algorithms, this distinction was made on the basis of polynomial vs. faster-than-polynomial growth of the work done with the problem size, and therefore this problem must be easy. Right? Well, not really. Reference to the distinction between fast and slow methods will show that we have to measure the amount of work done as a function of the number of bits of input to the problem. In this example, \( n \) is not the number of bits of input. For instance, if \( n = 59 \), we don’t need 59 bits to describe it, but only 6. In general, the number of binary digits in the bit string of an integer \( n \) is close to \( \log_2 n \). So in the problem of this example, testing the primality of a given integer \( n \), the length of the input bit string \( B \) is about \( 10 \log_2 n \). Seen in this light, the calculation suddenly seems very long, a string consisting of mere log \( 0 \)’s and 1’s has caused our mighty computer to do about \( \sqrt{n} \) units of work. If we express the amount of work done as a function of \( B \), we find that the complexity of this calculation is approximately \( 2^{B/2} \), and that grows much faster than any polynomial function of \( B \). Therefore, note that we have just discussed for testing the primality of a given integer is slow. See Chapter 6 for further discussion of this problem. At the present time no one has found a fast way to test for primality, nor has anyone proved that there isn’t a fast way. Primality testing belongs to the (well-publicized) class of seemingly, but not provably, intractable problems. In this book, we will deal with some easy problems and some seemingly hard ones. It’s the ‘seemingly’ that makes things very interesting. These are problems for which no one has found a fast computer algorithm. Image Analysis: ### Localization and Attribution - The image consists of a single page of a text document. - This can be referred to as **Image 1**. ### Text Analysis #### Extracted Text The main section of the image contains printed text. Below is the complete text extracted from the image: --- **0.2 Hard vs. easy problems** So in some problems whose input bit string has \(B\) bits the algorithm might operate in time \(6B\), and on others its input need, say, \(120\log B\) time units, and for still other problem instances of length \(B\) bits the algorithm might need \(5B^2\) time units to get the job done. Well then, what would the warranty card say? It would have to pick out the worst possibility, otherwise the guarantee wouldn’t be valid. It would assure a user that if the input problem instance can be described by \(B\) bits, then an answer will appear after at most \(5B^2\) time units. Hence a performance guarantee is equivalent to an estimation of the worst possible scenario: the longest possible calculation that might ensue if \(B\) bits are input to the program. Worst-case bounds are the most common kind, but there are other kinds of bounds for running time. We might give an average case bound instead (see section 5.7). That wouldn’t guarantee performance no worse than so-and-so; it would state that if the performance is averaged over all possible input bit strings of \(B\) bits, then the average amount of computing time will be so-and-so (as a function of \(B\)). Now let’s talk about the difference between easy and hard computational problems and between fast and slow algorithms. A warranty that would not guarantee ‘fast’ performance would contain some function of \(B\) that grows faster than any polynomial. Like \(B^B\), for instance, or like \(2^{2^B}\), etc. It is the polynomial time vs. not necessarily polynomial time guarantee that makes the difference between the easy and the hard classes of problems, or between the fast and the slow algorithms. It is highly desirable to work with algorithms such that we can give a performance guarantee for running time that is at most a polynomial \(P(B)\) of the number of bits of input. An algorithm is slow if, whatever polynomial \( P \) we think of, there exist arbitrarily large values of \( B \), and input data strings of \( B \) bits, that cause the algorithm to do more than \( P(B) \) units of work. A computational problem is trackable if there is a fast algorithm that will find all its instances of it. A computational problem is intractable if it can be proved that there is no fast algorithm for it. **Example 3.** Here is a familiar computational problem and a method, or algorithm, for solving it. Let’s see if the method has a polynomial time guarantee or not. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 8 Context: # Chapter 0: What This Book Is About but also, no one has proved the impossibility of doing so. It should be added that the entire area is vigorously being researched because of the attractiveness and the importance of the many unanswered questions that remain. Thus, even though we just don’t know many things that we’d like to know in this field, it isn’t for lack of trying! ## 0.3 Preview Chapter 1 contains some of the mathematical background that will be needed for our study of algorithms. It is not intended that reading this book or using it as a text in a course must necessarily begin with Chapter 1. It’s probably a better idea to plunge into Chapter 2 directly, and then when particular skills or concepts are needed, to read the relevant portions of Chapter 1. Otherwise, the definitions and ideas that are in that chapter may seem to be unmotivated, when in fact motivation in great quantities resides in the later chapters of the book. Chapter 2 deals with recursive algorithms and the analyses of their complexities. Chapter 3 is about a problem that seems as though it might be hard, but turns out to be easy, namely the network flow problem. Thanks to quite recent research, there are fast algorithms for network flow problems, and they have many important applications. In Chapter 4, we study algorithms in one of the oldest branches of mathematics, the theory of numbers. Remarkably, the connections between this ancient subject and the most modern research in computer methods are very strong. In Chapter 5, we will see that there is a large family of problems, including a number of very important computational questions, that are bound together by a good deal of structural unity. We don’t know if they’re hard or easy. We do know that we haven’t found a fast way to do them yet, and most people suspect that they’re hard. We also know that if any one of these problems is hard, then they all are, and if any one of them is easy, then they all are. We hope that, having found out something about what people know and what people don’t know, the reader will have enjoyed the trip through this subject and may be interested in helping to find out a little more. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 9 Context: # Chapter 1: Mathematical Preliminaries ## 1.1 Orders of Magnitude In this section we're going to discuss the rates of growth of different functions and to introduce the five symbols of asymptotics that are used to describe those rates of growth. In the context of algorithms, the reason for this discussion is that we need a good language for the purpose of comparing the speeds with which different algorithms do the same job, or the amounts of memory that they use, or whatever other measure of the complexity of the algorithm we happen to be using. Suppose we have a method of inverting square nonsingular matrices. How might we measure its speed? Most commonly we would say something like: “if the matrix is \( n \times n \), then the method will run in time \( 16.8n^3 \).” Then we would know that if a \( 100 \times 100 \) matrix can be inverted with this method, in 1 minute of computer time, then a \( 200 \times 200 \) matrix would require \( 2^3 \) times as long, or about 8 minutes. The constant \( 16.8 \) wasn't used at all in this example; only the fact that the labor grows as the third power of the matrix size was relevant. Hence we need a language that will allow us to say that the computing time, as a function of \( n \), grows “in the order of \( n^3 \)” or “not as fast as \( n^3 \)”, or “at least as fast as \( n \log n \)”, etc. The new symbols that are used in the language of comparing the rates of growth of functions are the following five: \( o \) (read 'is little of'), \( O \) (read 'is big O of'), \( \Theta \) (read 'is theta of'), \( \sim \) (read 'is asymptotically equal to'), and \( \Omega \) (read 'is omega of'). Now let's explain what each of them means. Let \( f(x) \) and \( g(x) \) be two functions of \( x \). Each of the five symbols above is intended to compare the rapidity of growth of \( f \) and \( g \). If we say that \( f(x) = o(g(x)) \), then informally we are saying that \( f \) grows more slowly than \( g \) when \( x \) is very large. Formally, we state the following: ### Definition We say that \( f(x) \) is \( o(g(x)) \) (as \( x \to \infty \)) if \( \lim_{x \to \infty} f(x)/g(x) \) exists and is equal to 0. Here are some examples: - (a) \( x^2 = o(x^3) \) - (b) \( \sin x = o(x) \) - (c) \( 1.4 \log n = o(n/2 + 7 \cos x) \) - (d) \( 1/2 = o(1) \) ? - (e) \( 23 \log x = o(x^2) \) We can see from these few examples that sometimes it might be easy to prove that a \( o \) relationship is true and sometimes it might be rather difficult. Example (e), for instance, requires the use of L'Hospital's rule. If we leave two computer programs, and if one of them inverses a \( n \times n \) matrix in \( 53n^3 \) and the other one does so in time \( o(n^3) \), then we know that for all sufficiently large values of \( n \) the performance guarantee of the second program will be superior to that of the first program. Of course, the first program might run faster on small matrices, say up to size \( 10,000 \times 10,000 \). If a certain program runs in time \( n^{2.8} \) and someone were to produce another program for the same problem that runs in \( o(n \log n) \), then that second program would be an improvement, at least in the theoretical sense. The reason for the “theoretical” qualification, once more, is that the second program would be known to be superior only if \( n \) were sufficiently large. The second symbol of the asymptotics vocabulary is the \( O \). When we say that \( f(x) = O(g(x)) \), we mean, informally, that \( f \) certainly doesn't grow at a faster rate than \( g \). It might grow at the same rate or it might grow more slowly; both are possibilities that the \( O \) permits. Formally, we have the next statement: ### Definition We say that \( f(x) = O(g(x)) \) (as \( x \to x_0 \)) if \( |f(x)| \leq C |g(x)| \) (for \( x \geq x_0 \)). The qualifier \( x \to \infty \) will usually be omitted, since it will be understood that we will most often be interested in large values of the variables that are involved. For example, it is certainly true that \( n = O(1) \), but even more can be said, namely that \( n^2 = O(n) \). Also \( 3x^2 + 7x = o(x^2) \) and \( 1/(1 + x^2) = O(1) \). Now we can see how to tighten the system, providing information than the \( O \); for we can sharpen the last example by saying that \( 1/(1 + x^2) = o(1) \). This is Image Analysis: ### Comprehensive Examination of the Visual Content **1. Localization and Attribution:** - **Single Image:** - The page contains one image which consists of text and mathematical notations. - Position: Central part of the page. **2. Object Detection and Classification:** - **Image 1:** - Objects detected: Text, mathematical symbols, and equations. - Key Features: The text includes both inline and block-style mathematical expressions. **3. Text Analysis:** - **Detected Text:** - Chapter 1: Mathematical Preliminaries - **Subsection: 1.1 Orders of magnitude** - **Content Analysis:** - The text discusses the concept of orders of magnitude, introducing the mathematical symbols used to describe growth rates of functions. - Various symbols such as 'o', 'O', 'Θ', '∼', and 'Ω' are explained with examples indicating their use in comparing the rates of growth of different functions. - Definitions and example equations are provided to clarify each concept: - Example equation (a) n^2 = o(2^n) - Example equation (b) sin n = o(2^n) - Example equation (c) 14n^2/√π = O(n^3 + 7 cos n) - Example equation (d) 1/(1 + e^n) = Θ(1) - Example equation (e) 23 log(n) = o(n^(1/2)) **5. Diagram and Chart Analysis:** - **Image 1:** - No diagrams or charts are present in this image. **13. Graph Numbers:** - **Equation Data Points:** - Equation (a): n^2 grows slower than 2^n - Equation (b): sin(n) grows slower than 2^n - Equation (c): 14n^2/√π is bounded above by a constant multiple of n^3 + 7 cos(n) - Equation (d): 1/(1 + e^n) grows at a constant rate (Θ) - Equation (e): 23 log(n) grows slower than √n **14. Ablaufprozesse (Process Flows):** - **Described Processes:** - The text explains the process of determining the rates of growth of functions. - The relationship between two functions f(n) and g(n) is analyzed using different asymptotic notations. **15. Typen Bezeichnung (Type Designations):** - Types/categories specified: - 'o': Little-o notation. - 'O': Big-O notation. - 'Ω': Omega notation. - '∼': Asymptotic equivalence. - 'Θ': Theta notation. **Summary:** - This page from a mathematical textbook introduces asymptotic notations to compare and analyze the growth rates of different functions. It also provides definitions and examples to clarify the usage of different notations, such as 'o', 'O', 'Ω', '∼', and 'Θ'. The examples help to illustrate the theoretical concepts and their applications in algorithm analysis. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 10 Context: # Chapter 1: Mathematical Preliminaries Sharper because not only does it tell us that the function is bounded when \( x \) is large, we learn that the function actually approaches \( 0 \) as \( x \to \infty \). This is typical of the relationship between \( O \) and \( o \). It often happens that a \( O \) result is sufficient for an application. However, that may not be the case, and we may need the more precise \( o \) estimate. ## Definition We say that \( f(x) = o(g(x)) \) if there are constants \( c_0 > 0, c_1 > 0 \) such that for all \( x > x_0 \) it is true that \( c_1 g(x) < f(x) < c_0 g(x) \). We might then say that \( f \) and \( g \) are of the same rate of growth; only the multiplicative constants are uncertain. Some examples of the \( o \) at work are: \[ (x + 1)^2 = O(3x^2) \] \[ (x^2 + 5x + 7)/(5x^3 + 7x + 2) = \Theta(1/x) \] \[ \sqrt{3} \sqrt{x} = \Theta(x^{1/2}) \] \[ (1 + 3/x)^{1/2} = O(1). \] The \( \Theta \) is much more precise than either the \( O \) or the \( o \). If we know that \( f(x) = \Theta(x^2) \), then we know that \( f(x)/g(x) \) stays between two nonzero constants for all sufficiently large values of \( x \). The rate of growth of \( f \) is established: it grows quadratically with \( x \). The notation for the symbols of asymptotics is the \( \sim \). It tells us that not only do \( f \) and \( g \) grow at the same rate, but that in fact \( f/g \) approaches \( 1 \) as \( x \to \infty \). ## Definition We say that \( f(x) \sim g(x) \) if \( \lim_{x \to \infty} f(x)/g(x) = 1 \). Here are some examples. \[ x^2 + x^2 \] \[ (3x + 1)^2 = \Theta(x^2) \] \[ \sin(1/x) \sim 1/x \] \[ (2x^3 + 5x + 7)/(x^2 + 4) \sim 2x \] \[ y^2 + 10y + c \sim x^2 \] Observe the importance of getting the multiplicative constants exactly right when the \( \sim \) symbol is used. While it is true that \( 2x^2 = \Theta(x^2) \), it is not true that \( 2x^2 \sim x^2 \). It’s, by the way, also true that \( 2x^2 = O(17x^2) \), but to make such an assertion is to lose said style since no more information is conveyed with the \( \sim \) without it. The last symbol in the asymptotic set that we will need is the \( \Omega \). In a useful light, \( f(x) = \Omega(g(x)) \) means that it is true that \( f(x) \geq c g(x) \). In the study of algorithms for computing, the \( \Omega \) is used when we want to express the thought that a certain calculation takes at least \(\text{sometime}\) to do. For instance, we can multiply together two \( n \times n \) matrices in time \( O(n^{2.81}) \). Later on in this book we will see how to multiply two matrices even faster, in time \( O(n^2) \). People know of even faster ways to do that job, but one thing that we can be sure of is this: nobody will ever be able to write a matrix multiplication program that will multiply pairs \( n \times n \) matrices with fewer than \( n^3 \) computational steps, because whatever program we write will have to look at the input data, and there are \( 2n^2 \) entries in the input matrices. Thus, a computing time of \( c n^2 \) is certainly a lower bound on the speed of any possible general matrix multiplication program. We might say, therefore, that the problem of multiplying two \( n \times n \) matrices requires \( \Omega(n^3) \) time. The exact definition of the \( \Omega \) that was given above is actually rather delicate. We stated it as the negation of something. Can we rephrase it as a positive assertion? Yes, with a bit of work (see exercises 6 and 7 below). Since if \( f(x) = o(g(x)) \), the symbol \( f = \Omega(g) \) means that \( f \) does not approach zero. We assume that \( g \) takes positive values only, which is usually the case in practice, then to say that \( f/g \) does approach \( 0 \) is to say that there exists \( x_0 \) and an infinite sequence of values of \( x \), tending to \( \infty \), such that \( |f|/|g| < c \). So we don’t have to show that \( |f|/|g| > c \) for all large \( x \), but only for infinitely many large \( x \). Image Analysis: ### Localization and Attribution: - **Image Identification:** - The image is a single page and will be designated as **Image 1**. ### Text Analysis: - **Image 1: Detected Text:** ``` Chapter 1: Mathematical Preliminaries sharper because not only does it tell us that the function is bounded when x is large, we learn that the function actually approaches 0 as x → ∞. This is typical of the relationship between O and o. It often happens that a ‘O’ result is sufficient for an application. However, that may not be the case, and we may need the more precise ‘o’ estimate. The third symbol of the language of asymptotics is the ‘Θ’: Definition. We say that f(x) = Θ(g(x)) if there are constants c1 > 0, c2 > 0, and x0 ≥ 0, such that for all x ≥ x0 it is true that c1g(x) ≤ f(x) ≤ c2g(x). We might then say that f and g are of the same rate of growth, only the multiplicative constants are uncertain. Some examples of the ‘Θ’ at work are (x + 1)^2 = Θ(x^2) (x^2 + 5x + 7)/ (5x^2 + 7x + 2) = Θ(1/x) √3 + √x + 2 = Θ(x^1/2) (1 + 3)/x^2 = Θ(1). The ‘Θ’ is much more precise than either the ‘O’ or the ‘o.’ If we know that f(x) = Θ(x^2), then we know that f(x)/x^2 stays between two nonzero constants for all sufficiently large values of x. The rate of growth of f is established: it grows quadratically with x. The next phrase of the symbols of asymptotics is the ‘∼.’ It tells us that not only do f and g grow at the same rate, but that in fact f/g approaches 1 as x → ∞. Definition. We say that f(x) ∼ g(x) if lim(x→∞) f(x)/g(x) = 1. Here are some examples. x^2 + x ∼ x^2 (3x + 1)^4 ∼ 81x^4 sin 1/x ∼ 1/x (2x^4 + 5x + 7)/ (x^4 + 4) ∼ 2x x^3 + 10x^2 + cos x ∼ x^3. Observe the importance of getting the multiplicative constants exactly right when the ‘∼’ symbol is used. While it is true that 2x^2 = Θ(x^2), it is not true that 2x^2 ∼ x^2. It is, by the way, also true that 2x^2 = Θ(17x^2), but to make such an assertion is to be sad style since no more information is conveyed with the ‘17′ than without it. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 11 Context: ### Contextual Significance: - **Overall Message**: This page aims to educate the reader on the different rates at which functions grow and to establish a foundational understanding of comparative growth rates in mathematical analysis. - **Contribution to Theme**: It likely contributes to a larger section or chapter on mathematical analysis, specifically focusing on asymptotic behavior of functions. This foundational knowledge is essential for understanding more advanced concepts in mathematical and computational analysis. #### 12. Graph and Trend Analysis: - The page does not contain graphs or visual data plots but rather focuses on textual descriptions and mathematical expressions. #### 13. Graph Numbers: - Since no graphs are present on this page, no numerical data points for graphs can be provided. ### Summary: - The provided visual content is an excerpt from a mathematical text discussing the concept of orders of magnitude in function growth. It provides formal definitions, examples using limits, and explanations of different growth rates (polynomial, exponential, and beyond). The analysis here helps in understanding the structure and significance of the content in a broader educational context. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 11 Context: # 1.1 Orders of magnitude **Definition.** We say that \( f(x) = \Omega(g(x)) \) if there is an \( \epsilon > 0 \) and a sequence \( x_1, x_2, \ldots \) such that \( \forall j: f(x_j) > \epsilon g(x_j) \). Now let's introduce a hierarchy of functions according to their rates of growth when \( x \) is large. Among commonly occurring functions of \( x \) that grow without bound as \( x \to \infty \), perhaps the slowest growing ones are functions like \( \log x \) or maybe \( (\log x)^3 \) or things of that sort. It is certainly true that \( \log \log x \to \infty \), but it takes its time about it. When \( x = 1{,}000{,}000 \), for example, \( \log_2 x \) has the value 19.3. Just a bit faster growing than the ‘snails’ above is \( x^{\frac{1}{10}} \). After all, for \( x = 1{,}000 \), we have \( 1{,}000^{\frac{1}{10}} \approx 2.5 \). If we had a computer algorithm that could do \( n \) things in time \( \log n \) and someone found another method that could do the same job in time \( O(\log \log n) \), then the second method, other things being equal, would indeed be an improvement, but it might have to be extremely large before you would notice the improvement. Next on the scale of rapidity of growth we might mention the powers of \( x \). For instance, think about \( x^{0.1} \). It grows faster than \( \log x \), although you wouldn’t believe it if you tried to substitute a few values of \( x \) and to compare the answers (see exercise 1 at the end of this section). **How could we prove that \( x^{0.1} \) grows faster than \( \log x \)?** By using L'Hôpital's rule. **Example.** Consider the limit \( \lim_{x \to \infty} \frac{x^{0.1}}{\log x} \) as \( x \to \infty \). As \( x \to \infty \) assumes the indeterminate form \( \infty/\infty \), and it is therefore a candidate for L'Hôpital's rule, which tells us that if we want to find the limit then we can differentiate the numerator, differentiate the denominator, and try again to let \( x \to \infty \). If we do this, then instead of the original ratio, we find the ratio \[ \frac{(-0.1)x^{-0.9}}{1/x} = -0.1x^{0.1} \] which obviously grows without bound as \( x \to \infty \). Therefore the original ratio \( \frac{x^{0.1}}{\log x} \) also grows without bound. What we have proved, precisely, is that \( x^{0.1} \) grows faster than \( \log x \). To continue up the scale of rates of growth, we meet \( x^2, x^3, x^{15} \log^2 x \), etc., and then encounter functions that grow faster than every fixed power of \( x \) just as \( x^2 \) grows faster than every fixed power of \( x \). Consider \( e^{x^2} \). Since this is the same as \( e^{x \cdot x} \), it will obviously grow faster than \( x^{1000} \), in fact it will be larger than \( x^{1000} \) as soon as \( x > 1000 \), i.e., as soon as \( x > e^{1000} \) (don’t hold your breath!). Hence \( e^{x^2} \) is an example of a function that grows faster than every fixed power of \( x \). Another such example is \( e^{\sqrt{x}} \). **Definition.** A function that grows faster than \( x^n \) for every constant \( n \), but grows slower than \( e^c \) for every constant \( c \) is said to be of moderately exponential growth if for every \( \epsilon > 0 \) we have \( f(x) = \Omega(x^n) \) and for every \( c > 0 \) we have \( f(x) = O(e^c) \). Beyond the range of moderately exponential growth are the functions that grow exponentially fast. Typical of such functions are \( 10^{n} \), \( 2^{n^2} \), and so forth. Formally, we have the: **Definition.** A function \( f \) is of exponential growth if there exists \( c > 1 \) such that \( f(x) = \Omega(c^x) \) and there exists \( d \) such that \( f(x) = O(d^x) \). If we truncate up a function of exponential growth with smaller functions then we will not change the fact that it is of exponential growth. The series \( e^{x^2/(n^2 + 37)} \) remains of exponential growth, because \( e^{x^2} \) is by itself, and it resists the efforts of the smaller functions to change its mind. Beyond the exponentially growing functions there are functions that grow as fast as you might please. Like \( n! \), for instance, which grows faster than \( c^n \) for every fixed constant \( c \) and like \( 2^{n!} \), which grows much faster than \( n! \). The growth ranges that are the most common to computer scientists are ‘between’ the very slowly, logarithmically growing functions and the functions that are of exponential growth. The reason is simple: if a computer algorithm requires more than an exponential amount of time to do its job, then it will probably not be used, or at any rate it will be used only in highly unusual circumstances. In this book, the algorithms that we will deal with fall in this range. Now we have discussed the various symmetries and asymptotes that are used to compare the rates of growth of pairs of functions, and we have dismissed the pecking order of rapidity of growth, so that we have a small catalogue of functions that grow slowly, medium-fast, fast, and super-fast. Next, let’s look at the growth of sums that involve elementary functions, with a view toward discovering the rates at which the sums grow. Image Analysis: **Text Analysis:** 1. **Text Detection and Extraction:** - The page contains a significant amount of text discussing mathematical functions and their rates of growth. 2. **Content Analysis and Significance:** - **Definitions and Explanations:** - The text defines the notation \(f(x) = \Omega(g(x))\) for functions that grow without bound. - It discusses functions growing faster than linear, such as logarithmic, polynomial, and exponential functions. - Examples illustrate the concepts further using L'Hôpital's rule to compare growth rates. - **Function Hierarchy:** - It introduces a hierarchy of functions according to their growth rates when \(x \to \infty\). - Examples include \(\log \log x\), \(\log x\), \(x^c\), and various polynomial and exponential functions. - **Moderately Exponential and Exponential Growth:** - Definitions around moderately exponential growth (\(f(x) = \Omega(a^{(\gamma x)}\))) - Explanation involving exponential growth (\(f(x) = \Theta(e^{cx})\)) and functions of faster growth beyond exponential. - **General Discussion:** - The importance of comparing growth rates is emphasized, particularly for understanding computational complexity. - Techniques such as L'Hôpital's rule are presented for proving and understanding these contrasts in growth rates. **Localization and Attribution:** 1. **Page Layout:** - Single page visual, holding multiple sections of text with definitions, explanations, and examples all centered around mathematical functions and growth rates. **Scene and Activity Analysis:** 1. **Scene Description:** - The entire scene is text-based with mathematical formulas and theoretical explanations filling the content. - The activity involves explanations, definitions, and examples intended to educate readers on the rates of growth for functions in mathematical terms. There are no human actors; the main component is the academic content. **Diagram and Chart Analysis:** - There are no diagrams or charts in this section of text. **Product Analysis:** - No products are depicted. **Anomaly Detection:** - No anomalies are apparent. **Color Analysis:** 1. **Color Composition:** - The text is black on a white background, creating high readability and a standard academic format. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 11 Context: **Perspective and Composition:** 1. **Perspective:** - Standard straight-on view of the page, as commonly found in scanned documents or electronic texts. 2. **Composition:** - Text is organized into sections with headings for definitions, examples, and specific types of function growth. - Each paragraph builds on the previous, contributing to the overall understanding of function growth rates. **Contextual Significance:** 1. **Overall Document Context:** - Likely part of a mathematical textbook or academic paper. - The content plays a crucial role in teaching or explaining the complexity related to function growth rates, which is relevant in fields like computer science, mathematics, and related disciplines focusing on algorithm complexity. **Tables:** - No tables are included in the image. **Metadata Analysis:** - No metadata can be analyzed from the visual. **Graph and Trend Analysis:** - No graphs are included in the image. **Graph Numbers:** - No graphs to provide data points for. **Ablaufprozesse (Process Flows):** - No process flows depicted. **Prozessbeschreibungen (Process Descriptions):** - No detailed processes depicted beyond the instructional explanations about different function growth rates. **Typen Bezeichnung (Type Designations):** - Discusses types of function growth (e.g., polynomial, exponential). **Trend and Interpretation:** 1. **Trend Identification:** - The trend focuses on the increasing complexity and rates of growth in mathematical functions. 2. **Interpretation:** - Understanding these trends is crucial for comparing algorithms and their efficiencies. In summarizing the visual content, the focus is academic, dissecting different types of functions and their growth rates, benefiting professionals and students in mathematics and computer science. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 12 Context: # Chapter 1: Mathematical Preliminaries Think about this one: $$ f(n) = \sum_{j=0}^{n} j^2 = 1^2 + 2^2 + 3^2 + \ldots + n^2 \tag{1.1} $$ Thus, \( f(n) \) is the sum of the squares of the first \( n \) positive integers. How fast does \( f(n) \) grow when \( n \) is large? Notice at once that among the \( n \) terms in the sum that defines \( f(n) \), the biggest one is the last one, namely \( n^2 \). Since there are \( n \) terms in the sum and the biggest one is only \( n^2 \), it is certainly true that \( f(n) = O(n^3) \), and even more, that \( f(n) \sim \frac{n^3}{3} \) for all \( n \geq 1 \). Suppose we wanted more precise information about the growth of \( f(n) \), such as a statement like \( f(n) \sim \frac{n^3}{3} \). The best way to begin is to visualize the sum in (1.1) as shown in Fig. 1.1.1. ![Fig. 1.1.1: How to overestimate a sum](./path_to_your_image_here) In that figure we see the graph of the curve \( y = x^2 \) in the \( x-y \) plane. Further, there is a rectangle drawn over every interval of unit length in the range from \( x = 1 \) to \( x = n \). The rectangles all lie under the curve. Consequently, the total area of all of the rectangles is smaller than the area under the curve, which is to say that $$ \sum_{j=1}^{n-1} j^2 \leq \int_1^n x^2 \, dx \tag{1.2} $$ If we compare (1.2) and (1.1.1) we notice that we have proved that \( f(n) \leq \left( (n+1)^2 - 1 \right)/3 \). Now we’re going to get a lower bound on \( f(n) \) in the same way. This time we use the setup in Fig. 1.2, where we again show the curve \( y = x^2 \), but this time we have drawn the rectangles so they lie above the curve. From the picture we see immediately that $$ 1^2 + 2^2 + \ldots + n^2 \geq \frac{1}{3} n^3 \tag{1.3} $$ Now our function \( f(n) \) has been bounded on both sides, rather tightly. What we know about it is that for all \( n \geq 2 \): $$ \frac{n^3}{3} \leq f(n) \leq \frac{(n+1)^3 - 1}{3} $$ From this we have immediately that \( f(n) \sim \frac{n^3}{3} \), which gives us quite a good idea of the rate of growth of \( f(n) \) when \( n \) is large. The reader will also have noticed that the \( \sim \) gives a much more satisfying estimate of growth than the \( O \) does. Image Analysis: ### Analysis of the Visual Content #### Localization and Attribution: - **Image 1**: - Location: Center of the page. - Caption: "Fig. 1.1.1: How to overestimate a sum" #### Object Detection and Classification: - **Image 1 (Graph)**: - Detected Objects: Graph with plotted rectangles. - Classification Categories: Mathematical graph, geometric figures. #### Scene and Activity Analysis: - **Image 1**: - Scene Description: A graph of the function \( y = x^2 \) on the \( x-y \) plane. Rectangles are drawn over intervals from \( x = 1 \) to \( x = n \) showing the area under the curve. - Activities: Demonstration of mathematical overestimation. #### Text Analysis: - **Text Content**: 1. "Think about this one:" 2. \( f(n) = \sum_{j=0}^n j^2 = 1^2 + 2^2 + 3^2 + ... + n^2 \) 3. Explanation text discussing bounds and growth of \( f(n) \). 4. Caption: "Fig. 1.1.1: How to overestimate a sum" - **Significance**: - The text introduces a mathematical function \( f(n) \) and discusses its growth. - The explanation provides bounding techniques and visual methods to understand \( f(n) \). #### Diagram and Chart Analysis: - **Image 1 (Diagram)**: - Axes: \( x \) and \( y \) axes with the function \( y = x^2 \). - Scales: Not explicitly mentioned, implied unit intervals on the \( x \)-axis. - Legends: No legends, but visual elements such as rectangles indicate the area calculation. - Key Insights: The diagram visualizes the overestimation method for the sum of squares, showing the higher bound compared to the curve \( y = x^2 \). #### Color Analysis: - **Image 1**: - Dominant Colors: Monochrome (black and white). - Impact: The simplicity and contrast help focus on the mathematical concepts being presented. #### Perspective and Composition: - **Image 1**: - Perspective: Standard front view for graphical representation. - Composition: The graph is neatly centered with clear labels and aligned accurately with explanatory text. #### Contextual Significance: - **Image's Role in the Document**: - Context: The image is part of a mathematical textbook, likely in a chapter discussing preliminary information. - Contribution: It aids in visually demonstrating abstract mathematical concepts, enhancing understanding through visual representation. ### Conclusion: The visual content on the page includes a mathematical explanation of bounding a sum of squares \( f(n) \) using graphical methods. The graph in the center, labeled as "Fig. 1.1.1", illustrates the upper bound of the sum via an overestimation technique. The text supports the graph by providing mathematical justifications and bounds, enriching the reader's conceptual understanding. The monochrome color scheme and structured composition align with educational content, directing focus on the mathematical demonstration. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 15 Context: # 1.2 Positional number systems is a function \( h \) such that \( h = o(h) \) and \( h = \Theta(g) \). Give an explicit construction for the function \( h \) in terms of \( g \). 6. (This exercise is a warmup for exercise 7.) Below there appear several mathematical propositions. In each case, write a proposition that is the negation of the given one. Furthermore, in the negation, do not use the word 'not' or any negation symbols. In each case the question is, “If this isn’t true, then what is true?” (a) \( \forall x > 0, f(x) \neq 0 \) (b) \( \forall y > 0, f(y) > 0 \) (c) \( \forall z \in \mathbb{R}, \, f(z) < f(x) \) (d) \( \exists y > 3 \, \forall z < f(y) \) (e) \( \forall x \exists z \, z < f(y) \) Can you formulate a general method for negating such propositions? Given a proposition that contains \( \forall, \exists \), what rule would apply in order to negate the proposition and leave the result in positive form (containing no negation symbols or ‘not’s)? 7. In this exercise we will work out the definition of the \( \Omega \): (a) Write out the precise definition of the statement \( \lim_{n \to \infty} h(n) = 0 \) (use `\varepsilon`). (b) Write out the negation of your answer to part (a) as a positive assertion. (c) Use your answer to part (b) to give a positive definition of the assertion \( f(n) \neq o(g(n)) \), and thereby justify the definition of the \( \Omega \) symbol that was given in the text. 8. Arrange the following functions in increasing order of their rates of growth, for large \( n \). List them so that each one is ‘little o’ of its successor: \[ 2^{\sqrt{n}}, n^{3.01}, n^{2}, n^{1.6}, \log^{3} n + 1, \sqrt{n}, n \log n, n^{3} \log(\log n), n^{2}, (n + 4)^{12} \] 9. Find a function \( f(x) \) such that \( f(x) = O(2^{x}) \) is true for every \( \varepsilon > 0 \), but for which it is not true that \( f(x) = O(1) \). 10. Prove that the statement \( f(n) = O(2^{\varepsilon}) \) for every \( \varepsilon > 0 \) is equivalent to the statement \( f(n) = \Omega(2^{\varepsilon}) \) for every \( \varepsilon > 0 \). ## 1.2 Positional number systems This section will provide a brief review of the representation of numbers in different bases. The usual decimal system represents numbers by using the digits \( 0, 1, \ldots, 9 \). For the purpose of representing whole numbers we can imagine that the powers of 10 are displayed below like this: \[ \cdots, 100000, 10000, 1000, 100, 10, 1. \] Then, to represent an integer we can specify how many copies of each power of 10 we would like to have. If we write 237, for example, then that means that we want 2 copies of \( 10^2 \) and 3 copies of \( 10^1 \) and 7 copies of \( 10^0 \). In general, if we write out the string of digits that represents a number in the decimal system, as \( d_m d_{m-1} \ldots d_1 d_0 \), then the number that is being represented by that string of digits is \[ n = \sum_{i=0}^{m} d_i \cdot 10^i. \] Now let’s try the binary system. Instead of using \( 10 \)’s we’re going to use \( 2 \)’s. So we imagine that the powers of \( 2 \) are displayed below as: \[ \cdots, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1. \] Image Analysis: ### Comprehensive Examination of the Visual Content #### 1. Localization and Attribution: - The entire content is one cohesive image displaying a single document page. - The page includes both text and mathematical notation, interspersed with explanations. #### 2. Object Detection and Classification: - **Detected Objects:** - Text: The page is predominantly filled with textual content. - Mathematical Notations: Various mathematical expressions and equations are present. #### 3. Scene and Activity Analysis: - **Scene:** The image represents a textbook page. - **Activities:** - The text appears to be an explanation of mathematical concepts, problems, and theorems. - The page is broken down into several exercises or sections (labelled 6, 7, 8, 9, etc.). #### 4. Text Analysis: - **Extracted Text:** The text includes exercises and explanations regarding functions, propositions in mathematics, the definition and application of the 'Ω' (big-Omega) notation, and a brief discussion on positional number systems. - **Key Text Components:** - **Exercise 6:** Deals with understanding the concepts of functions with respect to 'o(h)' and 'o(g)'. - **Exercise 7:** Focuses on the definition of the 'Ω' notation and its implications. - **Exercise 8:** Sorting functions based on their growth rates. - **Exercise 9:** Finding a function \( f(n) \) relative to growth orders. - **Section 1.2:** Discusses positional number systems and their representation. #### 5. Diagram and Chart Analysis: - **No diagrams or charts are present in the content.** #### 7. Anomaly Detection: - **None detected.** The page content appears consistent with typical textbook formatting. #### 8. Color Analysis: - **Color Composition:** The page is in grayscale, predominantly black text on a white background. #### 9. Perspective and Composition: - **Perspective:** Standard head-on view of the document page. - **Composition:** The text is well-organized with structured sections and numbered exercises, typical of textbook formatting. #### 10. Contextual Significance: - **Context:** The image is part of a mathematical or computer science textbook. - **Contributions:** It serves an educational purpose, likely aimed at undergraduate students studying algorithms or theoretical computer science. #### 13. Graph Numbers: - **Data Points:** - **Functions arranged by growth rates:** \( 2^{\sqrt{\log n}}, e^{(\log n)^2}, n^{3\log \log n}, 2^n, n^2, n^{2^n}, \log^2 n + \sqrt{n}, n^{1.6}, \log^2 n + 1, \sqrt{n}, n^{\log \log n}, n^3 \log n, (\log \log n)^3, n^{1.52}, (\pi + 4)^{\log n}, n^3 log n, n (log \log n)^{3/2}, (\pi + 4)^2 \). - These descriptions categorize various functions by their growth rates, providing a foundational understanding of algorithmic efficiency and complexity. #### Textual Breakdown and Analysis: - **Mathematical Propositions:** Exercise 6 gives multiple scenarios of logical and mathematical propositions, exploring negations and defining related terms. - **Growth Rates:** Exercise 8 asks to organize various functions by their growth rates, critical for algorithm analysis. - **Positional Number Systems:** The section 1.2 provides an introduction to positional number systems, a fundamental concept in number theory and computer science. #### Tables: - **No explicit tables are present.** This analysis helps to understand the content of the page thoroughly, laying out detailed insights into the educational content it presents and its structural components. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 16 Context: # Chapter 1: Mathematical Preliminaries To represent a number we will now specify how many copies of each power of \(2\) we would like to have. For instance, if we write \(1101\), then we want an \(8\), a \(4\), and a \(1\), so this must be the decimal number \(13\). We will write \[ (13)_{10} = (1101)_{2} \] to mean that the number \(13\) in the base \(10\) is the same as the number \(1101\) in the base \(2\). In the binary system (base \(2\)) the only digits we will ever need are \(0\) and \(1\). What that means is that if we use only \(0\)’s and \(1\)’s then we can represent every number in exactly one way. The unique representation of every number is, after all, what we must expect and demand of any proposed system. Let’s elaborate on this last point. If we were allowed to use more digits than just \(0\)’s and \(1\)’s then we would be able to represent the number \(13\) as a binary number in a whole lot of ways. For instance, we might make the mistake of allowing digits \(0, 1, 2\), \(3\), \(4\), etc. Then \(13\) would be representable as \(3 \cdot 2^{2} + 1 \cdot 2^{1} + 0 \cdot 2^{0}\) etc. So if we were to allow too many different digits then numbers would be representable in more than one way as a string of digits. If we were to allow too few different digits then we would find that some numbers have no representation at all. For instance, if we were to use the decimal system with only the digits \(0, 1, \ldots, 9\), then infinitely many numbers would not be able to be represented, so we had better keep the \(9\)s. The general proposition is this. ### Theorem 1.2.1 Let \(b > 1\) be a positive integer (the 'base'). Then every positive integer \(n\) can be written in one and only one way in the form \[ n = d_k b^k + d_{k-1} b^{k-1} + d_{k-2} b^{k-2} + \ldots \] if the digits \(d_0, d_1, \ldots\) lie in the range \(0 \leq d_i < b - 1\) for all \(i\). **Remark:** The theorem says, for instance, that in the base \(10\) we need the digits \(0, 1, 2, \ldots, 9\); in the base \(2\) we need only \(0\) and \(1\), in the base \(16\) we need sixteen digits, etc. **Proof of the theorem:** If \(b\) is fixed, the proof is by induction on \(n\), the number being represented. Clearly, the number \(1\) can be represented in one and only one way with the available digits (why?). Suppose, inductively, that every integer \(1, 2, \ldots, n - 1\) is uniquely representable. Now consider the integer \(n\). Define \(d = n \mod b\). Then \(d\) is one of the permissible digits. By induction, the number \(n' = (n - d) / b\) is uniquely representable, say \[ n' = d_k b^k + d_{k-1} b^{k-1} + d_{k-2} b^{k-2} + \ldots \] Then clearly, \[ n = d + n' b = d + d_k b^{k+1} + d_{k-1} b^{k} + d_{k-2} b^{k-1} + \ldots \] is a representation of \(n\) that uses only the allowed digits. Finally, suppose that \(n\) has some other representation in this form also. Then we would have \[ n = a_0 + a_1 b + a_2 b^{2} + \ldots = c_0 + c_1 b + c_2 b^{2} + \ldots \] Since \(a_0\) and \(c_0\) are both equal to \(n \mod b\), they are equal to each other. Hence the number \(n' = (n - a_0) / b\) has two different representations, which contradicts the inductive assumption, since we have assumed the truth of the result for all \(n < m\). The bases \(b\) that are the most widely used are, aside from \(2\) (binary system), \(8\) (octal system) and \(16\) (hexadecimal system). The binary system is extremely simple because it uses only two digits. This is very convenient if you’re a computer or a computer designer because the digits can be determined by some component being either ‘on’ (digit \(1\)) or ‘off’ (digit \(0\)). The binary digits of a number are called its bits or its bit string. Image Analysis: ### Analysis of the Attached Visual Content #### 1. Localization and Attribution - **Image Position**: The provided image is positioned on a single page with continuous textual content. #### 2. Object Detection and Classification - **Detected Objects**: - Textual content with mathematical expressions and explanations. - Equations and formulas. #### 3. Scene and Activity Analysis - **Scene Description**: The scene is a page from a mathematical textbook or an academic paper. - **Activities**: Mathematical explanation and theorem proof demonstration. #### 4. Text Analysis - **Extracted Text**: - Chapter heading: "Chapter 1: Mathematical Preliminaries" - Explanation on binary number representation. - Theorem discussion: "Theorem 1.2.1. Let b > 1 be a positive integer (the ‘base’). ..." - Mathematical proof and associated equations. - Remarks on different base representations and their implications. - **Text Content Analysis**: - This text is a part of a mathematical discussion about number representation in different bases. - It starts with an introduction to binary numbers and extends to a general theorem concerning the representation of numbers in any base greater than 1. - Theorem 1.2.1 is stated and proved utilizing induction. - Remarks provide practical insights into the utility of different bases, particularly the binary system. #### 9. Perspective and Composition - **Perspective**: The image is captured from a straight-on perspective, typical of scanned or digitized documents. - **Composition**: The page is well-structured with headings, paragraphs, and equations clearly demarcated and logically arranged. #### 11. Metadata Analysis - **Captured Metadata**: Not available in the provided visual content. ### Additional Aspects: #### Prozessbeschreibungen (Process Descriptions): - **Description**: - **Binary Representation**: Explanation of how the number 13 is represented in binary as (1101)_2. - **General Theorem**: Step-by-step proof demonstrates that any number can be uniquely represented in a given base. - **Inductive Proof**: The proof involves demonstrating that any integer can be represented using a set of permissible digits from 0 to b-1. ### Summary The document is a detailed excerpt from a mathematical text that focuses on number representation in various bases, specifically emphasizing binary, decimal, and hexadecimal systems. It provides theoretical explanations, theorem proofs, and practical remarks on the applications and representations of numbers in different bases, particularly within computer science and numerical analysis. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 20 Context: # Chapter 1: Mathematical Preliminaries Similarly, multiplying the \(n\)th coefficient of a power series by \(x^p\) will change the sum from \(f(x)\) to \((x^p f)(x)\), but that’s not all. What happens if we multiply the coefficient of \(x^r\) by, say, \(3x^2 + 2n + 5\)? If the sum previously was \(f(x)\), then it will be changed to \((3x^2 + 2x + 5)f(x)\). The sum \[ \sum_{j=0}^{\infty} (2j^2 + 5) x^j \] is therefore equal to \((2x^4 + 5)(1/(1 - z))\), and after doing the differentiations we find the answer in the form \((7x^2 - 8x + 5)/(1 - z^2)\). Here is the general rule: if \(P(x)\) is any polynomial then \[ \sum_{j} P(j)x^j = P\left(\frac{d}{dx}\right) \sum_{j} x^j. \tag{1.13} \] ## Exercises for section 1.3 1. Find simple, explicit formulas for the sums of each of the following series. - (a) \(\sum_{j=1}^{\infty} \log(j) j^{-s}\) - (b) \(\sum_{j=1}^{\infty} (2n + 7) j^{-5}\) - (c) \(\sum_{j=1}^{\infty} j^2/(2j!)\) - (d) \(1 = -1/3 + 2/4 - 1/5 + \ldots\) - (e) \(1 = \sum_{n=1}^{\infty} (2n + 3)/(2n + 1)\) 2. Explain why \(\sum_{n=0}^{\infty} (-1)^n x^{n+1}/(2n + 1) = 0\). - (a) \(1 + t + t^2\) - (b) \(3 - 2 + 2\sin^2 t\) - (c) \((1 + t)^2/(1 - t)^2\) ## 4 Recurrence relations A recurrence relation is a formula that permits us to compute the members of a sequence one after another, starting with one or more given values. Here is a small example. Suppose we are to find an infinite sequence of numbers \(x_0, x_1, \ldots\) by means of \[ x_{n+1} = c x_n, \quad (n \geq 0; x_0 = 1). \tag{1.41} \] This relation tells us that \(x_1 = c x_0\), and \(x_2 = c x_1\), etc., and therefore \(x_n = c^n x_0\). We say that the solution of the recurrence relation (i.e., "difference equation") (1.41) is given by \(x_n = c^n\) for all \(n \geq 0\). Equation (1.41) is a first-order recurrence relation because a new value of the sequence is computed from just one preceding value (i.e., \(x_{n+1}\) is obtained solely from \(x_n\) and does not involve \(x_{n-1}\) or any earlier values). Observe the format of the equation (1.41). The parenthetical remarks are essential. The first one \(x > 0\) tells us for what values of \(n\) the recurrence formula is valid, and the second one \(x_0 = 1\) gives the starting value. If one of these is missing, the solution may not be uniquely determined. The recurrence relation \[ x_{n+1} = x_n + x_{n-1} \tag{1.42} \] needs two starting values in order to "get going"; but it is missing both of those starting values and the range of \(n\). Consequently (1.42) (which is a second-order recurrence) does not uniquely determine the sequence. Image Analysis: ### Analysis of the Attached Visual Content #### 1. Localization and Attribution - **Page Layout:** - The content is presented on a single page with textual information and mathematical notations. #### 2. Object Detection and Classification - **Detected Objects:** - **Text Elements:** Mathematical notations, formulae, and paragraphs of explanation. - **Categories:** Written text, mathematical formulas, exercises, explanations. #### 3. Scene and Activity Analysis - **Scene Description:** - The page appears to be from a textbook or academic paper related to mathematics. - The content includes explanations of mathematical concepts, specific examples, and exercises for the reader to solve. #### 4. Text Analysis - **Extracted Text:** - **Chapter Title:** Chapter 1: Mathematical Preliminaries - **Sections:** - Overview of power series coefficients and their transformations. - General rule for polynomial P(x) and its series representation. - Exercises for reader practice. - Recurrence relations. - **Significance:** - The text is educational, aiming to teach mathematical operations and properties related to series and recurrence relations. - Exercises are given to reinforce learning. #### 5. Diagram and Chart Analysis - **Analysis:** - No diagrams or charts are present on this page. #### 6. Product Analysis - **Analysis:** - No products are depicted on this page. #### 7. Anomaly Detection - **Analysis:** - No anomalies or unusual elements were detected. #### 8. Color Analysis - **Analysis:** - The page is monochromatic, consisting of black text on a white background. This is typical for academic papers and textbooks where the focus is on readability and clarity. #### 9. Perspective and Composition - **Perspective:** - The image is taken from a straight-on perspective, showing a full page of text. - **Composition:** - The text is organized in a standard textbook layout with headings, sub-sections, and exercises clearly delineated. #### 10. Contextual Significance - **Contextual Analysis:** - The mathematical explanations and exercises are integral to the educational content, providing theory and practical problems for the reader. - The material contributes to the foundational understanding necessary for more advanced topics in mathematics. #### 11. Metadata Analysis - **Analysis:** - No metadata is available from the image. #### 13. Graph Numbers - **Analysis:** - No graphs or numerical data points are provided in the text. #### Additional Aspects - **Ablaufprozesse (Process Flows):** - The process of transforming power series coefficients and working with recurrence relations is described. - **Prozessbeschreibungen (Process Descriptions):** - Detailed process descriptions for manipulation of power series and methods for solving recurrence relations. - **Typen Bezeichnung (Type Designations):** - Various types of sums and series expansions are listed in the exercises. - **Trend and Interpretation:** - Trends in the textbook include foundational explanations followed by practical exercises to ensure comprehension. - **Tables:** - No tables are included in the text. --- The text and analysis focus on key aspects relevant to a mathematical pedagogy context, enabling thorough comprehension and practice through explanatory and exercise sections. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 23 Context: **Tables:** - No tables are present. This comprehensive analysis provides detailed insights into the instructional content depicted in the image, enhancing understanding of its academic focus on mathematical recurrence relations. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 23 Context: The Fibonacci numbers are in fact 1, 1, 2, 3, 5, 8, 13, 21, 34, ... It isn't even obvious that the formula (1.4.15) gives integer values for the \( F_n \). The reader should check that the formula indeed gives the first few \( F_n \) correctly. Just to exercise our newly acquired skills in asymptotics, let’s observe that since \( (1 + \sqrt{5})/2 > 1 \) and \( |(1 - \sqrt{5})/2| < 1 \), it follows that when \( n \) is large we have \[ F_n \sim \left( \frac{(1 + \sqrt{5})}{2} \right)^{n+1}/\sqrt{5}. \] The process of looking for a solution in a certain form, namely in the form \( \alpha^n \), is subject to the same kind of special treatment, in the case of repeated roots, that we find in differential equations. Corresponding to a double root of the associated quadratic equation \( \alpha^2 - \alpha \omega - 1 = 0 \) would find two independent solutions \( \alpha^n \) and \( n \alpha^n \), so the general solution would be in the form \( \alpha^n(c_1 + c_2 n) \). ### Example Consider the recurrence \[ x_{n+1} = 2x_n - x_{n-1} \quad (n \geq 1; \quad x_0 = 5; \quad x_1 = 5). \] (1.4.16) If we try a solution of the type \( x_n = \alpha^n \), then we find that it satisfies the quadratic equation \( \alpha^2 = 2\alpha - 1 \). Hence the two roots are \( 1 \) and \( 1 \). The general solution is \( x_n = c_1 \alpha^n + c_2 n \alpha^n \). After inserting the given initial conditions, we find that \[ x_0 = 1 = c_1; \quad x_1 = 5 = c_1 + c_2. \] If we solve for \( c_1 \) and \( c_2 \) we obtain \( c_1 = 1, \quad c_2 = 4 \), and therefore the complete solution of the recurrence (1.4.16) is given by \( x_n = 4n + 1 \). Now let’s look at recurrent inequalities, like this one: \[ x_{n+1} \leq x_n + x_{n-1} + n^2 \quad (n \geq 1; \quad x_0 = 0; \quad x_1 = 0). \] (1.4.17) The question is, what restriction is placed on the growth of the sequence \( \{ x_n \} \) by (1.4.17)? By analogy with the case of difference equations with constant coefficients, the thing to try here is \( x_n \leq K n^r \). So suppose it is true that \( x_n \leq K n^r \) for all \( n = 0, 1, 2, ..., N \). Then from (1.4.17) with \( n = N \) we find \[ x_{N+1} \leq K N^r + K N^{r-1} + N^2. \] Let \( c \) be the positive real root of the equation \( z^2 = c + 1 \) and suppose that \( \alpha > c \). Then \( \alpha^2 > \alpha + 1 \), say, where \( t > 0 \). Hence, \[ x_{N+1} \leq K N^{r-1}(1 + \alpha) + N^2 = K N^{r-1}(\alpha - t) + N^2 = K^{N+1} \left( K^{r-1} - N^r \right). \] (1.4.18) In order to ensure that \( x_{N+1} < K^{N+1}N^2 \), we need to fix \( K \). \[ K > \max \left( \frac{N^2}{K^{r-1}} \right). \] (1.4.19) In which the right member is clearly finite; the inductive step will go through. The conclusion is that (1.4.17) implies that for every fixed \( t > 0 \), \( x_n = O(n^{c+\epsilon}) \), where \( c = (1 + \sqrt{5})/2 \). The same argument applies to the general situation that is expressed in Image Analysis: ### Comprehensive Examination of the Attached Visual Content #### 1. **Localization and Attribution** - **Image on Page:** - This content is located centrally on the page and spans the entire document width. - Only one image is present on the entire page. - **Image Number: 1** #### 2. **Object Detection and Classification** - **Detected Objects:** - **Text:** - The content is predominantly textual, with paragraphs of written information. - **Formulas and Equations:** - Several mathematical expressions and formulas are present throughout the content. - **Example Box:** - There is a boxed example with mathematical steps and logical explanations. #### 3. **Scene and Activity Analysis** - **Scene Description:** - The scene is an academic or instructional document, likely a textbook or a study guide on mathematics, particularly focusing on recurrence relations and asymptotics in mathematical sequences. - **Main Actors and Actions:** - **Main Actors:** - The document appears to address the reader directly, guiding them through mathematical concepts. - **Actions:** - Explaining mathematical theories. - Solving equations. - Providing proofs and examples. #### 4. **Text Analysis** - **Extracted Text:** - **Introduction:** - Discussion begins with the Fibonacci numbers and transitions into more complex topics involving asymptotic analysis and recurrence relations. - **Main Body:** - The text contains formulas (1.4.15), (1.4.16), (1.4.17), (1.4.18), and (1.4.19), discussing the growth of sequences defined by recurrence relations. - An example illustrates solving a basic recurrence relation. - **Significance:** - The text aims to educate the reader on solving recurrence relations, particularly those similar to differential equations with repeated roots. The example provides a practical demonstration of these concepts. #### 5. **Diagram and Chart Analysis** - **Contextual Insight:** - There's a lack of diagrams or charts. The image is strictly textual without visual data representations. #### 6. **Product Analysis** - **Note:** - There's no depiction of products in the content. #### 7. **Anomaly Detection** - **Noteworthy Elements:** - No anomalies or unusual elements detected. The text is consistent with academic mathematical content. #### 8. **Color Analysis** - **Color Composition:** - The entire image is in black and white, which is typical for academic and instructional materials, making it easy to read and print. #### 9. **Perspective and Composition** - **Perspective:** - Straightforward head-on view generally used for documents. - **Composition:** - The document is well-structured with: - Enlarged section title at the top ("1.4 Recurrence relations"). - Paragraphs of explanatory text. - Boxed sections with examples. - Mathematical formulas clearly separated from the main body text. #### 10. **Contextual Significance** - **Document Context:** - The image is an excerpt from a mathematical textbook or guide. - **Contribution:** - The content introduces and explains recurrence relations in sequences, providing theoretical foundations and practical examples. #### 11. **Metadata Analysis** - **Metadata Availability:** - No metadata information is available within the image itself. #### 12. **Graph and Trend Analysis** - **Analysis:** - No graphs are present. #### 13. **Graph Numbers** - **Data Points:** - No graph data points are present. #### **Additional Aspects** **Ablaufprozesse (Process Flows):** - The text describes a logical process for solving recurrence relations, demonstrating this process in a step-by-step solved example. **Prozessbeschreibungen (Process Descriptions):** - Detailed explanations of solving recurrence relations and finding solutions to related quadratic equations. **Typen Bezeichnung (Type Designations):** - Type designations involve specific mathematical terms like recurrence relations and quadratic equations. **Trend and Interpretation:** - The trend involves an increasing complexity from simple Fibonacci numbers to more complex sequence analysis techniques. **Tables:** - No tables are present. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 24 Context: ### Typen Bezeichnung (Type Designations): - **Types or Categories**: - **Theorem 1.4.1**: Describes a mathematical type concerned with sequences and inequalities. - **Exercises**: Various types as each explores different aspects or variations of sequence relations. ### Trend and Interpretation: - **Trends**: The theorem and proof suggest a trend towards formalizing and generalizing inequalities in sequences. ### Anomaly Detection: - **Unusual Elements**: The small black square near the bottom-left of the page stands out. It might be a formatting error or a placeholder without textual significance. ### Color Analysis: - **Dominant Colors**: The page is primarily black and white, emphasizing clarity and readability typical of academic texts. This comprehensive analysis covers the key requested aspects. If further detailed breakdown or additional aspects not mentioned here are required, please specify. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 25 Context: #### 4. Text Analysis: 1. **Extracted Text:** ``` 8. Write out a complete proof of theorem 1.4.1. 9. Show by an example that the conclusion of theorem 1.4.1 may be false if the phrase ‘for every fixed ϵ0 > 0...’ were replaced by ‘for every fixed ϵ > 0 ...’. 10. In theorem 1.4.1 we find the phrase: ‘…the positive real root of …’. Prove that this phrase is justified, in that the equation shown always has exactly one positive real root. Exactly what special properties of that equation did you use in your proof? 1.5 Counting For a given positive integer n, consider the set {1,2,...,n}. We will denote this set by the symbol [n], and we want to discuss the number of subsets of various kinds that it has. Here is a list of all of the subsets of {2}, {1}, {2}, {1, 2}. There are 4 of them. We claim that the set [n] has exactly 2^n subsets. To see why, notice that we can construct the subsets of [n] in the following way. Either choose, or don’t choose, the element ‘1’; then either choose, or don’t choose, the element ‘2’; etc., finally choosing, or not choosing, the element ‘n’. Each of the n choices that you encountered could have been made in either 2 of ways. The totality of n choices, therefore, might have been made in 2^n different ways, so that is the number of subsets that a set of n objects has. Next, suppose we have n distinct objects, and we want to arrange them in a sequence. In how many ways can we do that? For the first object in our sequence we may choose any one of the n objects. The second element of the sequence can be any of the remaining n − 1 objects, so there are n(n − 1) possible ways to make these first two decisions. Then there are n − 2 choices for the third element, and so we have n(n − 1)(n − 2) ways to arrange the first three elements of the sequence. It is no doubt clear now that there are exactly n(n − 1)(n − 2)∙∙∙3∙2∙1 = n! ways to form the whole sequence. Of the n subsets of [n], how many have exactly k objects in them? The number of elements in a set is called its cardinality. The cardinality of a set S is denoted by |S|, so, for example, |{6}| = 6. A set whose cardinality is k is called a ‘k-set’, and a subset of cardinality k is, naturally enough, a ‘k-subset’. The question is, for how many subsets S of [n] is it true that |S| = k? We can construct k-subsets S of [n] (written S ⸦ [n] ∖) as follows. Choose an element a_1 (in possible choices). Of the remaining n − 1 elements, choose one (in n − 1 possible choices), etc., until a sequence of k different elements have been chosen. Obviously there were n(n − 1)(n − 2) ⸦⸦⸦ (n − k + 1) ways in which we might have chosen that sequence, so the number of ways to choose an (ordered) sequence of k elements from [n] is n(n − 1)(n − 2) ∙∙∙ (n − k + 1) = n!/(n − k)! But there are more sequences of k elements than there are k-subsets, because any particular k-subset S will correspond to k! different ordered sequences, namely all possible rearrangements of the elements of that subset. Hence the number of k-subsets of [n] is equal to the number of k-sequences divided by k!. In other words, there are exactly n!/[k!(n − k)!] k-subsets of a set of n objects. The quantities n!/[k!(n − k)!] are the famous binomial coefficients, and they are denoted by ( ) = n!/[k!(n − k)!] (n ≥ 0; 0 ≤ k ≤ n). Some of their special values are (n) = 1 ( ∀n ≥ 0); (n) = n ( ∀n ≥ 0); (k) = n(n − 1)/2 ( ∀n ≥ 0); (n) = 1 ( ∀n ≥ 0). ( 0 ) ( 1 ) ( 2 ) ( n ) It is convenient to define (2) to be 0 if k < 0 or if k > n. We can summarize the developments so far with ``` 2. **Content Analysis:** - **Mathematical Tasks:** The text includes exercises (tasks 8, 9, and 10) asking the reader to provide mathematical proofs and to critique theorem revisions. - **Main Text:** The main body of text discusses mathematical counting principles, such as the number of subsets of a set, permutations, and binomial coefficients. - **Significance:** This text is instructional, aiming to teach the concepts of combinatorics, specifically counting subsets and calculating binomial coefficients. #### 6. Product Analysis: - **Products Depicted:** - Not applicable as there are no products shown in the image. #### 8. Color Analysis: - **Color Composition:** - The image primarily consists of black text on a white background. - The monochrome effect aids in readability and focuses the reader's attention on the content without distraction. #### 9. Perspective and Composition: - **Perspective:** - The image is presented from a straight, eye-level perspective, typical for readable documents. - **Composition:** - The content is organized into numbered sections and paragraphs, which helps in structuring the reading flow. - Mathematical formulas are interspersed with explanatory text, making the complex content manageable. #### 10. Contextual Significance: - **Contribution to Overall Message:** - The image, being a page from an academic document or textbook, contributes to teaching mathematical concepts on counting subsets and permutations. - It is part of a larger text aimed at undergraduate or graduate students studying mathematics, particularly combinatorics and set theory. ### Conclusion: The analysis reveals that the visual content is an educational text aimed at explaining combinatorial mathematics. It provides exercises and thorough explanations of concepts such as subsets, permutations, and binomial coefficients. The monochromatic color scheme is typical for academic texts, ensuring clarity and focus on the content. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 25 Context: ```markdown 8. Write out a complete proof of theorem 1.4.1. 9. Show by an example that the conclusion of theorem 1.4.1 may be false if the phrase “for every fixed \( \varepsilon > 0 \)” were replaced by “for every fixed \( \varepsilon \geq 0 \) . . .” 10. In theorem 1.4.1, if we find the phrase “the positive real root of . . . ” Prove that this phrase is justified, in that the equation shown always has exactly one positive real root. Exactly what special properties of that equation did you use in your proof? # 1.5 Counting For a given positive integer \( n \), consider the set \( \{ 1, 2, \ldots, n \} \). We will denote this set by the symbol \( [n] \), and we want to discuss the number of subsets of various kinds that it has. Here is a list of all the subsets of \( [n] \): \( \emptyset, \{1\}, \{2\}, \{1, 2\} \). There are \( 2^n \) subsets. We claim that the set \( [n] \) has exactly \( 2^n \) subsets. To see why, notice that we can construct the subsets of \( [n] \) in the following way. Either choose, or don’t choose, the element \( 1 \); then either choose, or don’t choose, the element \( 2 \); etc., finally choosing, or not choosing, the element \( n \). Each of the \( n \) choices that you encountered could have been made in either of 2 ways. The totality of choices, therefore, might have been made in \( 2^n \) ways, so that is the number of subsets that are set of \( n \) objects has. Next, suppose we have \( n \) distinct objects, and we want to arrange them in a sequence. In how many ways can we do that? For the first object in our sequence we may choose any one of the \( n \) objects. The second element of the sequence can be any of the remaining \( n - 1 \) possible ways to make the first two decisions. Then there are \( n - 2 \) choices for the third element, and so we have \( n(n - 1)(n - 2) \cdots 2 \cdot 1 = n! \) ways to form the whole sequence. One of the subsets of \( [n] \), how many have exactly \( k \) objects in them? The number of elements in a set is called its cardinality. The cardinality of a set \( S \) is denoted by \( |S| \), so for example, \( |[6]| = 6 \). A set of cardinality \( k \) is called a \( k \)-set, and a subset of cardinality \( k \) is naturally enough, a \( k \)-subset. The question is, for how many subsets of \( [n] \) is it true that \( |S| = k \)? We can construct \( k \)-subsets \( S \) of \( [n] \) (written \( S \subseteq [n] \)) as follows. Choose an element \( a_1 \) (in possible choices). Of the remaining \( n - 1 \) elements, choose one (in \( n - 1 \) possible choices), etc., until a sequence of \( k \) different elements have been chosen. Obviously there were \( n(n - 1)(n - 2) \cdots (n - k + 1) \) ways in which you might have chosen that sequence, so the number of ways to choose an (ordered) sequence of \( k \) elements from \( [n] \) is \[ n(n - 1)(n - 2) \cdots (n - k + 1) = \frac{n!}{(n - k)!} \quad (n \geq 0, 0 \leq k \leq n). \] But there are more sequences of \( k \) elements than there are \( k \)-sets, because any particular \( k \)-subset will correspond to \( k! \) different ordered sequences, namely all possible rearrangements of the elements in the subset. Hence the number of \( k \)-subsets of \( [n] \) is equal to the number of \( k \)-sequences divided by \( k! \). In other words, there are exactly \( \frac{n!}{k!(n - k)!} \) \( k \)-subsets of a set of \( n \) objects. The quantities \( \frac{n!}{k!(n - k)!} \) are the famous binomial coefficients, and they are denoted by \[ \binom{n}{k} = \frac{n!}{k!(n - k)!}, \quad (n \geq 0; 0 \leq k \leq n) \tag{1.5.1} \] Some of their special values are \[ \binom{n}{0} = 1 \quad (\text{for } n \geq 0); \quad \binom{n}{1} = n \quad (\text{for } n \geq 0); \quad \binom{n}{2} = \frac{n(n - 1)}{2} \quad (\text{for } n \geq 2); \quad \binom{n}{n} = 1 \quad (\text{for } n \geq 0). \] It is convenient to define \( \binom{n}{k} \) to be \( 0 \) if \( k < 0 \) or if \( k > n \). We can summarize the developments so far with ``` Image Analysis: ### Comprehensive Examination of the Attached Visual Content #### 1. Localization and Attribution: 1. **Text and Image Position:** - The visual content is a single page divided into several text blocks. - The text is located at the center of the page, structured in paragraphs and numbered sections. #### 2. Object Detection and Classification: 1. **Objects Detected:** - Primary Object: A digitally typed text page - Secondary Objects: Mathematical expressions and formulas within the text #### 3. Scene and Activity Analysis: - **Scene Description:** - The page presents a scholarly text focusing on mathematical concepts, particularly set theory and combinatorics. - **Activities:** - The text describes the process of counting subsets of a given set and explains binomial coefficients. #### 4. Text Analysis: 1. **Extracted Text:** #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 25 Context: - **Contribution to Overall Document:** - The content on this page likely contributes to a larger section on counting principles in mathematics, providing foundational knowledge and detailed examples to support learning and understanding of subsets, sequences, and combinations. ### Summary: The image is an excerpt from an academic textbook's combinatorics section, focusing on counting principles involving subsets, sequences, and binomial coefficients. The clean, black-and-white text layout ensures readability and structured presentation of mathematical concepts and examples. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 25 Context: ```markdown # 1.5 Counting 8. Write out a complete proof of theorem 1.4.1. 9. Show by an example that the conclusion of theorem 1.4.1 may be false if the phrase "for every fixed \( \epsilon > 0 \) . . . " were replaced by "for every fixed \( \epsilon \geq 0 \) . . . " 10. In theorem 1.4.1 we find the phrase: "the positive real root of . . ." Prove that this phrase is justified, in that the equation shown always has exactly one positive real root. Exactly what special properties of that equation did you use in your proof? ## 1.5 Counting For a given positive integer \( n \), consider the set \( \{1, 2, \ldots, n\} \). We will denote this set by the symbol \( [n] \), and we want to discuss the number of subsets of various kinds that it has. Here is a list of all of the subsets of \( [2] \): \( \emptyset, \{1\}, \{2\}, \{1, 2\} \). There are 4 of them. We claim that the set \( [n] \) has exactly \( 2^n \) subsets. To see why, notice that we can construct the subsets of \( [n] \) in the following way. Either choose, or don’t choose, the element \( 1 \); then either choose, or don’t choose, the element \( 2 \); etc., finally choosing, or not choosing, the element \( n \). Each of the choices that you encountered could have been made in either 2 ways. The totality of choices, therefore, might have been made in \( 2^n \) ways, so that is the number of subsets that are set of \( n \) objects has. Next, suppose we have \( n \) distinct objects, and we want to arrange them in a sequence. In how many ways can we do that? For the first object in our sequence we may choose any one of the \( n \) objects. The second element of that sequence can be any of the remaining \( n - 1 \) possible ways to make the first two decisions. Then there are \( n - 2 \) choices for the third element, and so we have \( n(n - 1)(n - 2) \cdots 2 \cdot 1 = n! \) ways to form the whole sequence. One of the subsets of \( [n] \), how many have exactly \( k \) objects in them? The number of elements in a set is called its **cardinality**. The cardinality of a set \( S \) is denoted by \( |S| \), so for example, \( |[6]| = 6 \). A set whose cardinality is \( k \) is called a **k-set**, and a subset of cardinality \( k \) is, naturally enough, a **k-subset**. The question is, for how many subsets \( S \) of \( [n] \) is it true that \( |S| = k \)? We can construct \( k \)-subsets \( S \) of \( [n] \) (written \( S \subseteq [n] \)) as follows. Choose an element \( a_1 \) (in possible choices). Of the remaining \( n - 1 \) elements, choose one \( a_2 \) (in \( n - 1 \) possible choices), etc., until a sequence of \( k \) different elements have been chosen. Obviously there were \( n(n - 1)(n - 2) \cdots (n - k + 1) \) ways in which we might have chosen that sequence, so the number of ways to choose an (ordered) sequence of \( k \) elements from \( [n] \) is: \[ n(n - 1)(n - 2) \cdots (n - k + 1) = \frac{n!}{(n - k)!} \] But there are more sequences of \( k \) elements than there are \( k \)-sets, because any particular \( k \)-subset will correspond to \( k! \) different ordered sequences, namely all possible rearrangements of the given subset. Hence the number of \( k \)-subsets of \( [n] \) is equal to the number of \( k \)-sequences divided by \( k! \). In other words, there are exactly \( \frac{n!}{k!(n - k)!} \) \( k \)-subsets of a set of \( n \) objects. The quantities \( \frac{n!}{k!(n - k)!} \) are the famous **binomial coefficients**, and they are denoted by: \[ \binom{n}{k} = \frac{n!}{k!(n - k)!} \quad (n \geq 0; 0 \leq k \leq n) \] Some of their special values are: \[ \binom{n}{0} = 1 \quad (n \geq 0); \] \[ \binom{n}{1} = n \quad (n \geq 0); \] \[ \binom{n}{2} = \frac{n(n - 1)}{2} \quad (n \geq 2); \] \[ \binom{n}{n} = 1 \quad (n \geq 0). \] It is convenient to define \( \binom{n}{k} \) to be 0 if \( k < 0 \) or if \( k > n \). We can summarize the developments so far with: ``` Image Analysis: ### Analysis of the Provided Visual Content #### 1. Localization and Attribution: - **Image 1**: This is the only image present on the page. #### 4. Text Analysis: - The text seems to be part of a mathematical and theoretical discussion. The sections include references to specific theorems (e.g., Theorem 1.4.1) and exercises related to counting subsets. - **Section 1.5 Counting**: - This section discusses the counting of subsets for a given set. It uses mathematical notation and examples to illustrate various ways to arrange and count subsets. - **Detected Text**: - The detected text includes tasks for the reader such as writing a complete proof of a theorem, examining results under different conditions, and proving statements using certain properties and sequences. - There are also references to particular equations and combinatorial problems, like the computation of binomial coefficients. #### 8. Color Analysis: - The image is primarily in black and white, typical for a text document. #### 11. Metadata Analysis: - No metadata was visible in the context of this visual. #### 13. Graph Numbers: - The image yields the following relevant binomial coefficient values: - \(\binom{n}{0} = 1\) - \(\binom{n}{1} = n\) - \(\binom{n}{2} = n(n - 1)/2\) - \(\binom{n}{n} = 1\) #### Additional Aspects: - **Ablaufprozesse (Process Flows)**: - There is a sequence described for how to systematically construct subsets and k-subsets from a given set, presenting a logical and step-by-step process of counting them. - **Prozessbeschreibungen (Process Descriptions)**: - Detailed descriptions are included about how to choose elements of a set to form subsets and how to count them systematically. This involves combinatorial logic. - **Typen Bezeichnung (Type Designations)**: - k-sets and k-subsets, where k denotes the cardinality or number of elements in the subset. - **Tables**: - While there isn't a formal table, tabular information is provided in the context of listings (cardinality and binomial coefficients). ### Summary: The image provides a thorough analysis rooted in combinatorial mathematics, specifically focusing on counting subsets of a set using binomial coefficients. It demonstrates the logical processes for constructing subsets and k-subsets. The discussions and exercises prompt verification through proofs and the application of theorem results. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 26 Context: # Chapter 1: Mathematical Preliminaries ## Theorem 1.5.1 For each \( n \geq 0 \), a set of \( n \) objects has exactly \( 2^n \) subsets, and of these, exactly \( \binom{n}{k} \) have cardinality \( k \) (for \( k = 0, 1, \ldots, n \)). There are exactly \( n! \) different sequences that can be formed from a set of \( n \) distinct objects. Since every subset of \( [n] \) has some cardinality, it follows that \[ \sum_{k=0}^{n} \binom{n}{k} = 2^n \quad (n = 0, 1, 2, \ldots). \] In view of the convention that we adopted, we might have written (1.5.2) as \( \sum_{k} \binom{n}{k} = 2^n \), with no restriction on the range of the summation index \( k \). It would then have been understood that the range of \( k \) is from \( -\infty \) to \( \infty \), and that the binomial coefficient \( \binom{n}{k} \) vanishes unless \( 0 \leq k \leq n \). In Table 1.5.1, we show the values of some of the binomial coefficients \( \binom{n}{k} \). The rows of the table are thought of as labelled ‘\( n = 0\), \( n = 1\), etc., and the entries within each row refer, successively, to \( k = 0, 1, \ldots, n \). The table is called "Pascal's triangle." | | 0 | 1 | 2 | 3 | 4 | |----|-----|-----|-----|-----|-----| | 0 | 1 | | | | | | 1 | 1 | 1 | | | | | 2 | 1 | 2 | 1 | | | | 3 | 1 | 3 | 3 | 1 | | | 4 | 1 | 4 | 6 | 4 | 1 | | 5 | 1 | 5 | 10 | 10 | 5 | | 6 | 1 | 6 | 15 | 20 | 15 | | 7 | 1 | 7 | 21 | 35 | 21 | | 8 | 1 | 8 | 28 | 56 | 70 | **Table 1.5.1:** Pascal's triangle Here are some facts about the binomial coefficients: (a) Each row of Pascal's triangle is symmetric about the middle. That is, \[ \binom{n}{k} = \binom{n}{n-k} \quad (0 \leq k \leq n). \] (b) The sum of the entries in the \( n \)th row of Pascal’s triangle is \( 2^n \). (c) Each entry is equal to the sum of the two entries that are immediately above it in the triangle. The proof of (c) above can be interesting. What it says about the binomial coefficients is that \[ \binom{n}{k} = \binom{n-1}{k-1} + \binom{n-1}{k} \quad ((n,k) \neq (0,0)). \] There are (at least) two ways to prove (1.5.3). The hammer-and-tongs approach would consist of expanding each of the three binomial coefficients that appears in (1.5.3), using the definition (1.5.1) in terms of factorials, and then cancelling common factors to complete the proof. That would work (try it), but there’s another way. Contemplate (this proof is by contemplation) the totality of \( k \)-subsets of \( [n] \). The number of them is on the left side of (1.5.3). Sort them out into two piles: those \( k \)-subsets that contain ‘1’ and those that don’t. If a \( k \)-subset of \( [n] \) contains ‘1’, then \( k - 1 \) elements can be chosen in \( \binom{n-1}{k-1} \) ways, and that accounts for the first term on the right of (1.5.3). If a \( k \)-subset does not contain ‘1’, then its \( k \) elements are all chosen from \( [n-1] \), and that completes the proof of (1.5.3). Image Analysis: Certainly! Here's the comprehensive examination of the provided visual content: 1. **Localization and Attribution:** - **Image 1**: The entire content provided. - This image occupies a full page. 2. **Object Detection and Classification:** - Detected Objects: Text, Mathematical Formulae, Table. - Categories: Educational/Mathematical Content. 3. **Scene and Activity Analysis:** - Scene Description: The scene depicts a mathematical explanation from a textbook, specifically focusing on binomial coefficients and Pascal's triangle. It includes theorems, mathematical equations, explanatory text, and a table. - Main Actors: Mathematical symbols (e.g., Σ, binomial coefficients), textual explanations, and the table. 4. **Text Analysis:** - **Text Detected and Extracted:** **Theorem 1.5.1** - "For each \( n \geq 0 \), a set of \( n \) objects has exactly \( 2^n \) subsets, and of these, exactly \( \binom{n}{k} \) have cardinality \( k \) ( \( \forall k = 0, 1, \ldots, n ) \). There are exactly \( n! \) different sequences that can be formed from a set of \( n \) distinct objects." **Formula** - \( \sum_{k=0}^{n} \binom{n}{k} = 2^n \) **Table 1.5.1: Pascal's triangle** - A triangular arrangement of binomial coefficients. **Explanation of Binomial Coefficients:** - Symmetry, row sums equal \( 2^n \), sums of adjacent entries. **Proof Example:** - Two ways to prove the binomial coefficients formula. 5. **Diagram and Chart Analysis:** - **Table 1.5.1: Pascal's triangle** - The table visually represents the binomial coefficients arranged in a triangular form, where the sum of values in each row corresponds to powers of 2. - Key Features: - Symmetry: Each row is symmetric about its middle. - Summative Property: Each entry is the sum of the two entries directly above it. 6. **Anomaly Detection:** - There are no noticeable anomalies or unusual elements within the image. The content appears as standard mathematical text and tables. 8. **Color Analysis:** - The image is monochromatic (black and white), typical for printed or scanned textbook pages. The monochromatic scheme focuses the reader’s attention solely on the content without the distraction of colors. 9. **Perspective and Composition:** - Perspective: The image is seen from a direct front-on view, as if looking at an open book or a printed page. - Composition: The content is structured logically with a hierarchy: the theorem and explanations are at the top, followed by a centered table (Pascal's triangle) and further explanations beneath it. 10. **Contextual Significance:** - This page appears to be from a mathematics textbook, providing an understanding of binomial coefficients and Pascal's triangle. - Contribution to Overall Theme: The image contributes instructional value, aiding the reader’s comprehension of combinatorial mathematics by visually illustrating binomial coefficients through Pascal’s triangle. 13. **Graph Numbers:** - Listings of specific data points for the first seven rows of Pascal's triangle: - 1 - 1, 1 - 1, 2, 1 - 1, 3, 3, 1 - 1, 4, 6, 4, 1 - 1, 5, 10, 10, 5, 1 - 1, 6, 15, 20, 15, 6, 1 - And so on, continuing with the specified pattern. To summarize, the provided image is a detailed instructional page from a mathematical textbook, focusing on the theorem of binomial coefficients, visualized through Pascal's triangle, and providing related proofs and explanations. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 28 Context: #### Additional Aspects - **Ablaufprozesse (Process Flows) & Prozessbeschreibungen (Process Descriptions):** - Processes involved include mathematical reasoning, steps for solving combinatorial problems, and interpreting graph properties. - **Typen Bezeichnung (Type Designations):** - Different types of combinatorial terms and graph properties (e.g., binomial coefficients, vertices, edges, degrees). ### Conclusion The visual content on the provided page delivers comprehensive educational material on mathematical preliminaries, specifically combinatorial mathematics and graph theory. The page effectively uses diagrams and structured text to convey advanced concepts and exercises aimed at students or readers engaged in higher mathematical studies. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 28 Context: # Chapter 1: Mathematical Preliminaries where we have used Stirling's formula (1.1.10). Equation (1.5) shows that the single biggest binomial coefficient accounts for a very healthy fraction of the sum of all of the coefficients of order n. Indeed, the sum of all of them is \(2^n\), and the biggest one is \(\sim \sqrt{\frac{2}{\pi n}}\). When n is large, therefore, the largest coefficient contributes a fraction \(\sim \sqrt{\frac{1}{n}}\) of the total. If we think in terms of the subsets that these coefficients count, what we will see is that a large fraction of all of the subsets of an n-set have cardinality \(\frac{n}{2}\); in fact \(\binom{n}{n/2}\) of them do. This kind of probabilistic thinking can be very useful in the design and analysis of algorithms. If we are designing an algorithm that deals with subsets of \([n]\), for instance, we should recognize that a large percentage of the customers for that algorithm will have cardinalities near \(n/2\), and make every effort to see that the algorithm is fast for such subsets, even at the expense of possibly slowing it down on subsets whose cardinalities are very small or very large. ## Exercises for section 1.5 1. How many subsets of even cardinality does \([n]\) have? 2. By observing that \((1 + x)^n(1 + x^2) = (1 + x)^{n+1}\), prove that the sum of the squares of all binomial coefficients of order n is \(2^n\). 3. Evaluate the following sums in simple form. - (i) \(\sum_{k=0}^{n} \binom{n}{k}\) - (ii) \(\sum_{k=0}^{n} \binom{n}{k}^2\) - (iii) \(\sum_{k=0}^{n} \binom{n}{k} k\) 4. Find, by direct application of Taylor’s theorem, the power series expansion of \(f(x) = \frac{1}{1 - x}\) about the origin. Express the coefficients as certain binomial coefficients. 5. Complete the following twiddles. - (i) \(\binom{n}{r} \sim ?\) - (ii) \(\left( \binom{n}{r} \right)^{1/n} \sim ?\) - (iii) \(\left( \binom{n}{r} \right)^{1/r} \sim ?\) - (iv) \(\left( \binom{n}{r} \right)^{r/n} \sim ?\) 6. How many ordered pairs of unequal elements of \([n]\) are there? 7. Which one of the numbers \(\{2^{\binom{n}{2}}\}_{n \in \mathbb{N}}\) is the biggest? ## 1.6 Graphs A graph is a collection of vertices, certain unordered pairs of which are called its edges. To describe a particular graph we first say what its vertices are, and then we say how pairs of vertices are its edges. The set of vertices of a graph \(G\) is denoted by \(V(G)\), and its set of edges is \(E(G)\). If \(u\) and \(v\) are vertices of a graph \(G\), and if \((u,v)\) is an edge of \(G\), then we say that vertices \(u\) and \(v\) are adjacent in \(G\). Consider the graph \(G\) whose vertex set is \(\{1, 2, 3, 4, 5\}\) and whose edges are the set of pairs \((1,2)\), \((2,3)\), \((4,5)\). This is a graph of 5 vertices and 5 edges. A nice way to present a graph to an audience is to draw a picture of it, instead of just listing the pairs of vertices that are its edges. To draw a picture of a graph we would first make a point for each vertex, and then we would draw arcs between two vertices \(u\) and \(v\) if and only if \((u,v)\) is an edge of the graph we are talking about. The graph \(G\) of 5 vertices and 5 edges that is listed above can be drawn as shown in Fig. 1.6.1(a). It could also be drawn as shown in Fig. 1.6.1(b). They're both the same graph. Only the pictures are different, but the pictures aren't "really" the graph; the graph is the vertex list and the edge list. The pictures are helpful to us in visualizing and remembering the graph, but that's all. The number of edges that contain (are incident with) a particular vertex \(v\) of a graph \(G\) is called the degree of that vertex, and is usually denoted by \(p(v)\). If we add up the degrees of every vertex of \(G\) we will have counted exactly two contributions from each edge of \(G\), one at each of its endpoints. Hence, for every Image Analysis: ### Comprehensive Examination of the Visual Content **Localization and Attribution:** - Single image on the page. - The image includes different sections such as text, mathematical formulas, and diagrams. - Assigned number: **Image 1**. **Text Analysis:** - **Image 1** contains extensive textual content divided into multiple sections: - **Title:** Chapter 1: Mathematical Preliminaries. - **Main Text:** Discusses Stirling's formula, binomial coefficients, subsets of n-set, probability thinking in algorithms, etc. - **Exercises for section 1.5:** Consists of seven questions that involve mathematical proofs, sums, and applications of Taylor’s theorem. - **Section 1.6 Graphs:** Describes the components and properties of graphs with an example graph G. **Object Detection and Classification:** - **Text blocks:** Several paragraphs of text, exercises, and explanations. - **Mathematical Equations and Formulas:** Various equations related to binomial coefficients, sums, Taylor's theorem, and twiddles. - **Graph Diagram:** Depicts a graph G with vertices {1, 2, 3, 4, 5} and edges {(1,2), (2,3), (3,4), (4,5), (1,5)} in Figure 1.6.1(a). **Scene and Activity Analysis:** - **Entire scene:** Academic content focusing on mathematical preliminaries, specifically: - Description of mathematical concepts. - Problem-solving exercises. - Explanation of graph theory along with a visual example. **Diagram and Chart Analysis:** - **Graph Diagram (Figure 1.6.1(a)):** - **Vertices:** {1, 2, 3, 4, 5} - **Edges:** {(1,2), (2,3), (3,4), (4,5), (1,5)} - **Explanation:** Different ways to present a graph, the figure helps in visualizing and remembering the graph structure. **Color Analysis:** - The content is in black and white, typical for textbook pages. - Dominant color: Black text on a white background. **Perspective and Composition:** - **Perspective:** Eye-level view, standard for reading academic content. - **Composition:** Well-structured layout with headings, sections, exercises, and diagrams organized logically. **Contextual Significance:** - **Overall context:** Academic document or textbook on Mathematical Preliminaries. - **Contribution:** The image breaks down complex mathematical concepts, provides exercises for practice, and visual aids (graph) for better understanding. **Ablaufprozesse (Process Flows):** - **Problem-solving process in exercises:** How to derive subsets, evaluate sums, apply formulas, and understand graph theory step-by-step. **Prozessbeschreibungen (Process Descriptions):** - **Mathematical explanations:** Show the processes involved in mathematical problem-solving. - **Graph creation and interpretation:** Process of drawing and understanding a graph’s components. **Typen Bezeichnung (Type Designations):** - **Types of mathematical problems:** Binomial coefficients sums, Taylor series, twiddles, and graph properties analysis. **Trend and Interpretation:** - **Trend:** Progressive learning and detailed comprehension of mathematical concepts and graph theory. - **Interpretation:** Structured to build foundational knowledge in mathematics through description, problem-solving, and visual examples. **Tables:** - No tables are present in this image. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 29 Context: # 1.6 Graphs ## Fig. 1.6.1(a) ![Fig. 1.6.1(a)](link_to_image_a) ## Fig. 1.6.1(b) ![Fig. 1.6.1(b)](link_to_image_b) Given graph \( G \), we have \[ \sum_{v \in V(G)} \deg(v) = 2|E(G)|. \tag{1.6.1} \] Since the right-hand side is an even number, there must be an even number of odd numbers on the left side of (1.6.1). We have therefore proved that every graph has an even number of vertices whose degrees are odd.* In Fig. 1.6.1, the degrees of the vertices are \{2, 2, 2, 2\}, and the sum of the degrees is \( 2 = 2|E(G)| \). Next, we're going to define a number of concepts of graph theory that will be needed in later chapters. A fairly large number of terms will now be defined, in rather a brief space. Don’t try to absorb them all now, but read through them and look them over again when the concepts are actually used, in the sequel. - A path \( P \) in a graph \( G \) is a walk from one vertex of \( G \) to another, where at each step the walk uses an edge of the graph. More formally, it is a sequence \( \{v_1, v_2, \ldots, v_k\} \) of vertices of \( G \) such that \( v_i \sim v_{i+1} \in E(G) \). - A graph is **connected** if there is a path between every pair of its vertices. - A path \( P \) is **simple** if its vertices are all distinct, **Hamiltonian** if it is simple and visits every vertex of \( G \) exactly once, **Eulerian** if it uses every edge of \( G \) exactly once. - A **subgraph** of a graph \( G \) is a subset \( S \) of its vertices to gather with a subset of those edges of \( G \) both of whose endpoints lie in \( S \). An **induced subgraph** of \( G \) is a subset \( S \) of the vertices of \( G \) together with all edges of \( G \) both of whose endpoints lie in \( S \). We would then speak of “the subgraph induced by \( S \)”. In a graph \( G \) we can define an equivalence relation on the vertices as follows. Say that \( v \) and \( u \) are equivalent if there is a path of \( G \) that joins them. Let \( S \) be one of the equivalence classes of vertices of \( G \) under this relation. The subgraph of \( G \) that \( S \) induces is called a **connected component** of the graph \( G \). A graph is connected if and only if it has exactly one connected component. - A **cycle** is a closed path, i.e., one in which \( v_n = v_1 \). A cycle is a **circuit** if it is the only repeated vertex in it. We may say that a circuit is a simple cycle. We speak of Hamiltonian and Eulerian circuits of \( G \) as circuits of \( G \) that visit, respectively, every vertex or every edge of a graph \( G \). Not every graph has a Hamiltonian path. The graph in Fig. 1.6.2(a) has one and the graph in Fig. 1.6.2(b) doesn’t. ## Fig. 1.6.2(a) ![Fig. 1.6.2(a)](link_to_image_c) ## Fig. 1.6.2(b) ![Fig. 1.6.2(b)](link_to_image_d) * Did you realize that the number of people who shook hands an odd number of times yesterday is an even number of people? Image Analysis: # Image Analysis ## 1. Localization and Attribution: - **Image 1:** Top-left corner of the page, labelled as Fig. 1.6.1(a). - **Image 2:** Top-right corner adjacent to Image 1, labeled as Fig. 1.6.1(b). - **Image 3:** Towards the bottom-left part of the page, labeled as Fig. 1.6.2(a). - **Image 4:** Towards the bottom-right part of the page, labeled as Fig. 1.6.2(b). ## 2. Object Detection and Classification: - **Image 1 (Fig. 1.6.1(a)):** - **Objects Detected:** Graph vertices labeled 1, 2, 3, 4, 5, and connecting edges. - **Key Features:** All vertices are connected, forming a cycle. - **Image 2 (Fig. 1.6.1(b)):** - **Objects Detected:** Graph vertices labeled 1, 2, 3, 4, 5, and connecting edges. - **Key Features:** Similar to Image 1, it is a cycle but with a slightly different configuration. - **Image 3 (Fig. 1.6.2(a)):** - **Objects Detected:** Graph vertices labeled 1, 2, 3, 4, and connecting edges. - **Key Features:** The graph forms a Hamiltonian path (a path that visits each vertex exactly once). - **Image 4 (Fig. 1.6.2(b)):** - **Objects Detected:** Graph vertices labeled 1, 2, 3, 4, and connecting edges. - **Key Features:** The graph does not form a Hamiltonian path as it does not visit each vertex exactly once. ## 3. Scene and Activity Analysis: - **Image 1:** Shows a graph theory diagram depicting a cycle in a set of connected vertices. - **Image 2:** Another graph theory diagram showing a cycle, illustrating a slightly different path. - **Image 3:** Shows a graph that forms a Hamiltonian path, indicating each vertex is visited exactly once. - **Image 4:** Showcases a graph structure not forming a Hamiltonian path. ## 4. Text Analysis: - **Extracted Text:** - Equation: \(\sum_{v \in V(G)} \deg(v) = 2|E(G)|\). - Descriptive Content: - Discusses properties and definitions related to graph theory, such as paths, cycles, connected components, Hamiltonian paths, and Eulerian circuits. - Contains examples illustrated by the accompanying figures. - Sidebar Note: "Did you realize that the number of people who shook hands an odd number of times yesterday is an even number of people?". - Significance: - The text provides theoretical background and clarifies properties and concepts of graph theory, aiding in understanding the visual content of the images. ## 9. Perspective and Composition: - **Perspective:** All images are viewed from a straightforward, top-down perspective, typical for mathematical or diagrammatic representation. - **Composition:** Each image is centrally aligned, with vertices marked by numbers and edges clearly connecting them. The diagrams are cleanly and simply drawn to facilitate easy understanding of graph theory concepts. ## 13. Graph Numbers: - **Image 1 (Fig. 1.6.1(a)):** - Vertices: 1, 2, 3, 4, 5. - Edges: (1-2), (2-3), (3-4), (4-5), (5-1). - **Image 2 (Fig. 1.6.1(b)):** - Vertices: 1, 2, 3, 4, 5. - Edges: (1-2), (2-3), (3-5), (5-4), (4-1). - **Image 3 (Fig. 1.6.2(a)):** - Vertices: 1, 2, 3, 4. - Edges: (1-2), (2-3), (3-4), (4-1). - **Image 4 (Fig. 1.6.2(b)):** - Vertices: 1, 2, 3, 4. - Edges: (1-2), (2-3), (3-1), (1-4). ## Tables: - **Content:** The page does not contain explicit table structures but includes equations and definitions that systematize graph theory concepts. **Note:** Each image and section on the page contribute to a comprehensive understanding of graph theory, emphasizing the properties of paths, cycles, and the distinction between Hamiltonian paths and Eulerian circuits. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 32 Context: # Chapter 1: Mathematical Preliminaries It is not hard to prove that the following are equivalent descriptions of a tree. 1. A tree is a graph that is connected and has no cycles. 2. A tree is a graph \( G \) that is connected and for which \( |E(G)| = |V(G)| - 1 \). 3. A tree is a graph \( G \) with the property that between every pair of distinct vertices there is a unique path. If \( G \) is a graph and \( S \subseteq V(G) \), then \( S \) is an independent set of vertices of \( G \) if no two of the vertices in \( S \) are adjacent in \( G \). An independent set \( S \) is maximal if it is not a proper subset of another independent set of vertices of \( G \). Dually, if a vertex subset \( S \) induces a complete graph, then we speak of a complete subgraph of \( G \). A maximal complete subgraph of \( G \) is called a clique. A graph might be labeled or unlabelled. The vertices of a labeled graph are numbered \( 1, 2, \ldots, n \). One difference that this makes is that there are a lot more labeled graphs than there are unlabelled graphs. There are, for example, 3 labeled graphs that have 3 vertices and 1 edge. They are shown in Fig. 1.6.7. ![Fig. 1.6.7: Three labeled graphs...](image_link_here) There is, however, only 1 unlabelled graph that has 3 vertices and 1 edge, as shown in Fig. 1.6.8. ![Fig. 1.6.8: ... but only one unlabelled graph](image_link_here) Most counting problems on graphs are much easier for labeled than for unlabelled graphs. Consider the following question: how many graphs are there that have exactly \( n \) vertices? Suppose first that we mean labeled graphs. A graph of \( n \) vertices has a maximum of \( \binom{n}{2} \) edges. To construct a graph we would decide which of these possible edges would be used. We can make each of these \( \binom{n}{2} \) decisions independently, and for every way of deciding where to put the edges we would get a different graph. Therefore the number of labeled graphs of \( n \) vertices is \( 2^{\binom{n}{2}} \). If we were to ask the corresponding question for unlabelled graphs we would find it to be very hard. The answer is known, but the derivation involves Burnside’s lemma about the action of a group on a set, and some fairly delicate counting arguments. We will state the approximate answer to this question, which is easy to write out, rather than the exact answer, which is not. If \( g_n \) is the number of unlabelled graphs on \( n \) vertices then \[ g_n \sim 2^{n^2/n}. \] ## Exercises for Section 1.6 1. Show that a tree is a bipartite graph. 2. Find the chromatic number of the n-cycle. 3. Describe how you would find out, on a computer, if a given graph \( G \) is bipartite. 4. Given a positive integer \( K \). Find two different graphs each of whose chromatic numbers is \( K \). 5. Exactly how many labeled graphs of \( n \) vertices and \( E \) edges are there? 6. How many labeled graphs of \( n \) vertices do vertices \( \{1, 2, 3\} \) form an independent set? 7. True or false: A Hamilton circuit is an induced cycle in a graph. 8. Which graph of \( n \) vertices has the largest number of independent sets? How many does it have? 9. Draw all of the connected, unlabelled graphs of 4 vertices. 10. Let \( G \) be a bipartite graph that has \( k \) connected components. Show that there are exactly \( 2^k \) ways to properly color the vertices of \( G \) in 2 colors. 11. Find a graph \( G \) of \( n \) vertices, other than the complete graph, whose chromatic number is equal to 1 plus the maximum degree of any vertex of \( G \). 28 Image Analysis: ### 1. Localization and Attribution - **Image 1:** Located at the middle of the page, directly under the text explaining labeled graphs. - **Image 2:** Located directly beneath Image 1, depicting an unlabeled graph. ### 2. Object Detection and Classification - **Image 1 (Three Labeled Graphs):** - Objects: Three labeled graphs, each having 3 vertices and 1 edge. - Classification: Simple graphs. - Key Features: - Each graph consists of three labeled nodes connected by one edge. - The positioning and connections of the nodes vary between each graph. - **Image 2 (One Unlabeled Graph):** - Object: One unlabeled graph. - Classification: Simple graph. - Key Features: - Consists of three nodes (vertices), but no labels or edges connecting them. ### 3. Scene and Activity Analysis - **Image 1 (Three Labeled Graphs):** - Scene: Depicts various labeled graph configurations. - Activities: Presentation of different ways to construct labeled graphs with 3 vertices and 1 edge. - **Image 2 (One Unlabeled Graph):** - Scene: Displays a single unlabeled graph. - Activities: Highlights the concept of an unlabeled graph with 3 vertices and 1 edge. ### 4. Text Analysis - **Image Captions:** - Image 1 caption: "Fig. 1.6.7: Three labeled graphs..." - Significance: Demonstrates different labeled graph configurations. - Image 2 caption: "Fig 1.6.8: ... but only one unlabeled graph" - Significance: Illustrates that there is only one distinct configuration for an unlabeled graph with 3 vertices and 1 edge. - **Main Text:** - Discusses the equivalence of certain graph properties and the complexity of counting graphs when labeled versus unlabeled. - Key excerpts discuss independent sets, cliques, and counting problems related to graph labeling. ### 10. Contextual Significance - **Image 1 and 2:** - Context within the Document: The images contribute to the section on mathematical preliminaries in graph theory, providing visual examples to elucidate theoretical concepts discussed in the text. - The images align with the text’s explanation of labeled and unlabeled graphs, clarifying distinctions in graph representation and structural diversity. ### 11. Metadata Analysis - Not applicable as there is no visible metadata provided in the image. ### 13. Graph Numbers - **Labeled Graphs (Image 1):** Each graph has 3 vertices and 1 edge. - **Unlabeled Graph (Image 2):** The graph also consists of 3 vertices and 1 edge, but it is notable for having only one configuration. ### Additional Aspects #### Tables - No tables are present in the visual content. #### Ablaufprozesse (Process Flows) - No process flows are depicted. #### Prozessbeschreibungen (Process Descriptions) - Not applicable. #### Typen Bezeichnung (Type Designations) - Types/categories identified: - Labeled graphs - Unlabeled graphs #### Trend and Interpretation - Labeled graphs exhibit more configuration diversity compared to unlabeled graphs, highlighting increased complexity in labeling. ### Summary The visual content effectively illustrates key graph theory concepts discussed in the text. The images provide tangible examples of the theoretical distinctions between labeled and unlabeled graphs, supporting the explanation of combinatorial problems in graph theory. Through this comprehensive examination, it is clear that the visual aids are crucial for reinforcing the textual content and facilitating a deeper understanding of the topic. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 33 Context: # 1.6 Graphs 13. Let \( n \) be a multiple of 3. Consider a labeled graph \( G \) that consists of \( n/3 \) connected components, each of them a \( K_3 \). How many maximal independent sets does \( G \) have? 14. Describe the complement of the graph \( G \) in exercise 13 above. How many cliques does it have? 15. In how many labeled graphs of \( n \) vertices is the subgraph that is induced by vertices \( \{1, 2, 3\} \) a triangle? 16. Let \( H \) be a labeled graph of \( L \) vertices. In how many labeled graphs of \( n \) vertices is the subgraph that is induced by vertices \( \{1, 2, \ldots, L\} \) equal to \( H \)? 17. Devise an algorithm that will decide if a given graph, of \( n \) vertices and \( m \) edges, does or does not contain a triangle, in time \( O(m \max(n^{2}, m)) \). 18. Prove that the number of labeled graphs of \( n \) vertices all of whose vertices have even degree is equal to the number of all labeled graphs of \( n - 1 \) vertices. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 41 Context: # 2.2 Quicksort After some tidying up, (2.2.7) becomes \[ F(n) = \left( 1 + \frac{1}{n} \right) F(n - 1) + \left( 2 - \frac{2}{n} \right), \tag{2.2.8} \] which is exactly in the form of the general first-order recurrence relation that we discussed in section 1.4. In section 1.4 we saw that to solve (2.2.8) the winning tactic is to change to a new variable, that is defined, in this case, by \[ F(n) = \frac{n + 1}{n - 1} - \frac{2}{n + 1} y_n. \tag{2.2.9} \] If we make the change of variable \( F(n) = (1 + y_n) \), in (2.2.8), then it takes the form \[ y_n = y_{n - 1} + 2\left( n - 1 \right)/n\left( n + 1 \right) \quad (n \geq 1) \tag{2.2.10} \] as an equation for the \( y_n \)s (\( y_0 = 0 \)). The solution of (2.2.10) is obviously \[ y_n = 2 \sum_{j=1}^{n} \frac{j - 1}{j(y_j + 1)} = 2 \sum_{j=1}^{n} \frac{2}{j + 1} - \frac{1}{j} = 2 \sum_{j=1}^{n} \frac{1}{j} - 4n/(n + 1). \] Hence from (2.2.9), \[ F(n) = 2(n + 1) \sum_{j=1}^{n} \frac{1}{j} - 4n \tag{2.2.11} \] is the average number of pairwise comparisons that we do if we Quicksort an array of length \( n \). Evidently \( F(n) \sim 2n \log(n - \infty) \) (see (1.1) with \( g(n) = 1/n \)), and we have proved ## Theorem 2.2.2. The average number of pairwise comparisons of array entries that Quicksort makes when it sorts arrays of \( n \) elements is exactly as shown in (2.2.11), and is \( \sim 2n \log(n - \infty) \). Quicksort is, on average, a very quick sorting method, even though its worst case requires a quadratic amount of labor. --- ## Exercises for section 2.2 1. Write out an array of 10 numbers that contains no splitter. Write out an array of 10 numbers that contains 10 splitters. 2. Write a program that does the following. Given a positive integer \( n \). Choose 100 random permutations of \([1, 2, \ldots, n!]\) and count how many of the 100 had at least one splitter. Execute your program for \( n = 5, 6, \ldots, 12 \) and tabulate the results. 3. Think of some method of sorting \( n \) numbers that isn't in the text. In the worst case, how many comparisons might your method do? How many swaps? * For a fast and easy way to do this see A. Nijhuis and H. S. Wilf, *Combinatorial Algorithms*, 2nd ed. (New York: Academic Press, 1978), chap. 6. Image Analysis: ### Analysis of the Visual Content #### Image 1 ##### Text Analysis: 1. **Mathematical Content and Equations**: - The image contains various mathematical equations and explanations related to "Quicksort" in section 2.2. Noteworthy equations include: - Equation (2.2.7): \( F(n) = \left(1 + \frac{2}{n}\right)F(n-1) + \left(2 - \frac{2}{n}\right) \) - Equation (2.2.9): \( F(n) = \frac{n+1}{n} + \frac{n-1}{n-1} - \frac{2}{n} \cdot \frac{1}{n_{h}} \) - Equation (2.2.10) provides \( y_{n} \) calculation. - Final Equation (2.2.11): \( F(n) = 2(n+1) \left(\sum_{j=1}^{n}\frac{1}{j}\right) - 4n \) 2. **Theorem and Explanation**: - Theorem 2.2.2: It states the average number of pairwise comparisons of array entries that Quicksort makes is exactly as shown in Equation 2.2.11 and is approximately \( 2n \log_{e} (n) \) as \( n \) approaches infinity. 3. **Exercises**: - This section provides three exercises: 1. Write out arrays with specific conditions regarding splitters. 2. Write a program to determine the number of splitters in randomly generated arrays. 3. Invent a sorting method and calculate the number of swaps in the worst case. 4. **Reference Note**: - A footnote suggests referring to "A. Nijenhuis and H. S. Wilf, Combinatorial Algorithms, 2nd ed." ##### Diagram and Chart Analysis: 1. **Absence of Diagrams/Charts**: - The content does not include any diagrams or charts. Equations and text are the primary focus. #### Scene and Activity Analysis: 1. **Educational Context**: - The scene is a textbook or academic document explaining the Quicksort algorithm and its analysis. The main activity includes walking through the mathematical foundations, theorems, and practical programming exercises. ##### Perspective and Composition: 1. **Textbook Layout**: - The perspective is a straightforward, eye-level view typical of textbook pages. - The composition is standard, with headings, equations, theoretical explanations, exercises, and additional reference notes. #### Conclusion: - This image comprises an analytical deep dive into the Quicksort algorithm within a textbook context. The explanations are thorough, emphasizing the mathematical derivation and providing exercises for practical understanding. The lack of visual elements like diagrams suggests a focus on rigorous mathematical content. The reference provides additional reading to support the topic discussed. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 42 Context: # Chapter 2: Recursive Algorithms ## 4. Consider the array ``` x = {2, 4, 1, 10, 5, 3, 9, 7, 8, 6} ``` with `left = 1` and `right = 10`. Suppose that the procedure `split` is called, and suppose the random integer `L` in `split` happens to be 5. Carry out the complete split algorithm (not on a computer; use pencil and paper). Particularly, record the condition of the array `x` after each value of `j` is processed in the for `j ...` loop. 5. Suppose `H(0) = 1` and `H(n) ≤ 1 + Σ_{i=1}^{n-1} H(i - 1)` for `n ≥ 1`. How might `H(n)` be? 6. If `Q(0) = 0` and `Q(n) ≤ n^2 + Σ_{i=1}^{Q(i - 1)}` for `n ≥ 1`, how big might `Q(n)` be? 7. (Research problem) Find the asymptotic behavior, for large `n`, of the probability that a randomly chosen permutation of `n` letters has a splitter. ## 2.3 Recursive Graph Algorithms Algorithms on graphs are another rich area of applications of recursive thinking. Some of the problems are quite different from the ones that we have so far been studying in that they seem to need exponential amounts of computing time, rather than the polynomial times that were required for sorting problems. We will illustrate the dramatically increased complexity with a recursive algorithm for the ‘maximum independent set problem’, one which has received a great deal of attention in recent years. Suppose a graph `G` is given. An **independent set** of vertices of `G` means a set of vertices no two of which are connected by an edge of `G`. In the graph in Fig. 2.3.1 the set `{1, 2, 6}` is an independent set and so is the set `{1, 3}`. The largest independent set in the graph shown there is the set `{1, 2, 3, 6}`. The problem of finding the size of the largest independent set in a given graph is computationally very difficult. All algorithms known to date require exponential amounts of time, in their worst cases, although no one has proved the nonexistence of fast (polynomial time) algorithms. If the problem itself seems unusual, and maybe not deserving of a lot of attention, be advised that in Chapter 5 we will see that it is a member in good standing of a large family of very important computational problems (the ‘NP-complete’ problems) that are tightly bound together, in that if we can figure out better ways to compute any one of them, then we will be able to do all of them faster. Here is an algorithm for the independent set problem that is easy to understand and to program, although, of course, it may take a long time to run on a large graph `G`. We are looking for the size of the largest independent set of vertices of `G`. Suppose we denote that number by `maxSet(G)`. Fix some vertex of the graph, say vertex `v`. Let’s distinguish two kinds of independent sets of vertices of `G`. There are those that contain vertex `v` and those that don’t contain vertex `v`. If an independent set `S` of vertices contains vertex `v`, then what does the rest of the set `S` consist of? The remaining vertices of `S` are an independent set in a smaller graph, namely the graph that is obtained from `G` by deleting vertex `v` as well as all vertices that are connected to vertex `v` by an edge. This latter set of vertices is called the **neighborhood** of vertex `v`, and is written `Nbd(v)`. The set `S` consists, therefore, of vertex `v` together with an independent set of vertices from the graph `G - {v} - Nbd(v)`. Now consider an independent set `S` that doesn’t contain vertex `v`. In that case the set `S` is simply an independent set in the smaller graph `G - {v}`. Image Analysis: ### Comprehensive Examination of the Visual Content #### 1. **Localization and Attribution** - **Image 1** is located at the bottom center of the page and is labeled as "Fig. 2.3.1". #### 2. **Object Detection and Classification** - **Image 1**: The diagram depicts a graph with vertices and edges. - **Objects Detected:** - Vertices: Represented by the circles in the diagram. - Edges: Represented by the lines connecting the vertices. - **Classification:** - Graph Theory Elements (Vertices and Edges). #### 3. **Scene and Activity Analysis** - **Image 1**: The scene involves a graph, which is part of an explanation regarding recursive graph algorithms focusing on the 'maximum independent set problem'. - **Main Actors:** - Vertices labeled as 1, 2, and 3. - Edges connecting these vertices. #### 4. **Text Analysis** - **Image 1**: The text related to the image is a part of the main content describing recursive algorithms, specifically about the maximum independent set problem. - **Extracted Text**: "Fig. 2.3.1" - **Contextual Significance**: Fig. 2.3.1 is used to illustrate an example within the section discussing an independent set of vertices in a graph. #### 5. **Diagram and Chart Analysis** - **Image 1**: The diagram shows a simple graph with three vertices connected by edges. The vertices are part of an independent set example. - **Axes, Scales, and Legends**: Not applicable. - **Key Insights**: - Demonstrates the concept of an independent set in graph theory. - Vertices {1, 2, 6} form an independent set as no two are connected by an edge. #### 10. **Contextual Significance** - **Image 1**: Fig. 2.3.1 is used to illustrate the discussion on recursive graph algorithms and the independent set problem. - **Contribution to Overall Message**: The image helps elucidate the practical application of recursive algorithms in solving complex problems in graph theory. #### 13. **Graph Numbers** - **Image 1**: Vertices are labeled as 1, 2, and 3. #### **Additional Aspect:** ##### Procesbeschreibungen (Process Descriptions): - **Image 1**: Describes the process of finding an independent set in a graph. - **Process**: 1. Identify the independent set of vertices. 2. Distinguish between vertices connected to a specified vertex and those not connected. 3. Formulate a smaller graph by removing a specified vertex and its connections. 4. Identify if the given set remains an independent set within the smaller graph. ##### Typen Bezeichnung (Type Designations): - **Image 1**: Type designation involves the 'independent set' in the context of graph theory. ### Summary The document highlights recursive algorithms with an emphasis on recursive graph algorithms. A specific problem, the maximum independent set problem, is illustrated with a diagram (Fig 2.3.1) showing a simple graph. The text explains the recursive approach to find the largest independent set, aiding the understanding of complex computation versus polynomial time approaches. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 43 Context: # 2.3 Recursive Graph Algorithms We now have all of the ingredients of a recursive algorithm. Suppose we have found the two numbers `maxSet(G = (V, E))` and `maxSet(G = (V - {v*}, Nbhd(v*))`. Then, from the discussion above, we have the relation: ``` maxSet(G) = max{maxSet(G - {v*}) + 1, maxSet(G - {v*} - Nbhd(v*))}. ``` We obtain the following recursive algorithm. ```plaintext function maxSet1(G); {returns the size of the largest independent set of vertices of G} if G has no edges then maxSet1 := |V(G)|. else choose some nonisolated vertex v* of G; n1 := maxSet1(G - {v*}); n2 := maxSet1(G - {v*} - Nbhd(v*)); maxSet1 := max(n1, 1 + n2); end(maxSet1); ``` ## Example: Here is an example of a graph \( G \) and the result of applying the `maxSet1` algorithm to it. Let the graph \( G \) be a 5-cycle. That is, it has 5 vertices and its edges are (1,2), (2,3), (3,4), (4,5), (1,5). What are the two graphs on which the algorithm calls itself recursively? Suppose we select vertex number 1 as the chosen vertex \( v* \) in the algorithm. Then \( G - \{1\} \) and \( G - \{1\} - Nbhd(1) \) are respectively the two graphs shown in Fig. 2.3.2. ``` 2 3 | | 5--1---4 ``` **Fig. 2.3.2:** \( G - \{1\} \) | \( G - \{1\} - Nbhd(1) \) The reader should now check that the size of the largest independent set of \( G \) is equal to the larger of the two numbers `maxSet1(G - {v*}) + 1` and `maxSet1(G - {v*} - Nbhd(v*))` in this example. Of course the creation of these two graphs from the original input graph is just the beginning of the story, as far as the computation is concerned. Unbeknownst to the programmer, who innocently wrote the recursive routine `maxSet1` and then sat back to watch, the compiler will go ahead with the computation by generating a tree full of graphs. In Fig. 2.3.3 we show the collection of all of the graphs that the compiler might generate while executing a single call to `maxSet1` on the input graph of this example. In each case, the graph that is below and to the left of a given one is the one obtained by deleting a single vertex, and the one below and to the right of each graph is obtained by deleting a vertex and its entire neighborhood. Next, we are going to study the complexity of `maxSet1`. The results will be sufficiently depressing that we will then think about how to speed up the algorithm, and we will succeed in doing that to some extent. To open the discussion, let's recall that in Chapter 1 it was pointed out that the complexity of a calculation is usefully expressed as a function of the number of bits of input data. In problems about graphs, however, it is more natural to think of the number of labor as a function of \( n \), the number of vertices of the graph. In problems about matrices it is more natural to use \( m \), the size of the matrix, and so forth. Do those distinctions alter the classification of problems into "polynomial time-doable" vs. "hard"? Take the graph problems, for instance. How many bits of input data does it take to describe a graph? Well, certainly we can enumerate through the entire list of \( n \times (n - 1) / 2 \) pairs of vertices and the edges that are actually edges in the input graph to the problem. Hence we can describe a graph to a computer by making #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 44 Context: # Chapter 2: Recursive Algorithms ## Fig. 2.3.3: A tree-full of graphs is created a list of \( n(n-1)/2 \) 0's and 1's. Each 1 represents a pair that is an edge, each 0 represents one that isn't an edge. Thus \( \Theta(n^2) \) bits describe a graph. Since \( n^2 \) is a polynomial in \( n \), any function of the number of input data bits that can be bounded by a polynomial in \( n \) itself. Hence, in the case of graph algorithms, the 'easiness' vs. 'hardness' judgment is not altered if we base the distinction on polynomials in itself, rather than on polynomials in the number of bits of input data. Hence, with a clear conscience, we are going to estimate the running time or complexity of graph algorithms in terms of the number of vertices of the graph that is input. Now let’s do this for algorithm `maxest` above. The first step is to find out if \( G \) has any edges. To do this we simply have to look at the input data. In the worst case we might look at all of the input data, all \( \Theta(n^2) \) bits of it. Then, if \( G \) actually has some edges, the additional labor needed to process \( G \) consists of two recursive calls on smaller graphs and one computation of the larger of two numbers. If \( F(G) \) denotes the total amount of computational labor that we do in order to find \( \text{maxest}(G) \), then we see that \[ F(G) \leq cn^2 + F(G - \{v\}) + F(G - \{v\} - \text{Nbhd}(v)). \tag{2.3.1} \] Next, let \( f(n) = \max_{|V(G)|=n} F(G) \), and take the maximum of (2.3.1) over all graphs \( G \) of \( n \) vertices. The result is that \[ f(n) \leq cn^2 + f(n - 1) + f(n - 2). \tag{2.3.2} \] because the graph \( G - \{v\} - \text{Nbhd}(v) \) might have as many as \( n - 2 \) vertices, and would have that many if \( v \) had exactly one neighbor. Now it’s time to ‘solve’ the recurrent inequality (2.3.2). Fortunately the hard work has all been done, and the answer is in theorem 1.4.1. That theorem was designed expressly for the analysis of recursive algorithms, and in this case it tells us that \( f(n) = O(1.619^n) \). Indeed the number in that theorem is \( (1 + \sqrt{5})/2 = 1.61803 \ldots \) We chose the \( \epsilon \) that appears in the conclusion of the theorem simply by rounding \( c \) upwards. What have we learned? Algorithm `maxest` will find the answer in a time of no more than \( O(1.619^n) \) units if the input graph \( G \) has \( n \) vertices. This is a little improvement of the most simple-minded possible. Image Analysis: ### Image Analysis #### 1. Localization and Attribution - **Image 1**: The tree diagram representing a recursive algorithm for generating graphs. - **Image 2**: Located below Image 1, this depicts different stages or subgraphs in smaller boxes. #### 2. Object Detection and Classification - **Image 1**: - **Objects**: Nodes and edges of a tree diagram. - **Key Features**: Root node labeled '5', subnodes labeled '2', '3', '5' representing recursive steps. - **Image 2**: - **Objects**: Small boxes containing subgraphs. - **Key Features**: Each subgraph is labeled with numbers ('1', '2', '3', '4', '5') and connected by edges. #### 3. Scene and Activity Analysis - **Image 1**: - **Scene**: A tree diagram illustrating recursive steps in a graph algorithm. - **Activities**: Recursive partitioning of nodes in the graph. - **Image 2**: - **Scene**: Subgraphs illustrating different stages or configurations in a recursive process. - **Activities**: Visual representation of splitting and merging nodes in the graph. #### 4. Text Analysis - **Detected Text**: - **Fig. 2.3.3: A tree-full of graphs is created**: Caption explaining that the diagram shows a recursive tree of graphs. - **Paragraphs**: Explanation of the recursive algorithm, its complexities, and the computational steps involved in estimating the running time for graph algorithms. #### 7. Anomaly Detection - No anomalies detected in the images; everything seems to follow a logical recursive structure as outlined in the algorithm descriptions. #### 9. Perspective and Composition - **Perspective**: - **Image 1**: Standard top-down perspective, common in tree diagrams. - **Image 2**: Indent box layout illustrating various stages of the recursive process. - **Composition**: - **Image 1**: Root node at the top, branching out into different substeps, with clear labels. - **Image 2**: Series of smaller boxes aligned horizontally and vertically, showing different subgraph stages clearly. #### 10. Contextual Significance - **Overall Document/Website Context**: - This image is part of a chapter on recursive algorithms in a book discussing complex computational concepts. - **Contribution**: It visually supports the explanation of a recursive algorithm for graph generation, making the complex process easier to understand. #### 12. Graph and Trend Analysis - **Equation Analysis**: - **Equations**: Recursive relation \( F(G) \leq cn^2 + F(G - \{v^*\}) + F(G - \{v^*\} - Nbd(v^*)) \) and others representing the recursive splitting steps. - **Trends**: These equations model the computational complexity and show the reduction process in each step of the recursive partitioning of nodes. #### 14. Trend and Interpretation - **Trends**: - Recursive equations illustrate the decreasing complexity as the graph is partitioned into subgraphs. - Final trend interpretation shows the convergence to a final computational time of \( O(1.619^n) \). #### 15. Tables - **Implicit Table Data**: - Lists of nodes and their dependencies in the diagram provide clear hierarchical data for the recursive process. The combination of visuals, text, and equations work together to provide a comprehensive description and analysis of recursive algorithms for graphs, aiding in the understanding of their computational complexity and implementation steps. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 45 Context: # 2.3 Recursive Graph Algorithms An algorithm that one might think of for this problem, which is to examine every single subset of the vertices of \( G \) and ask if it is an independent set or not. That algorithm would take \( O(2^n) \) time since there are \( 2^n \) subsets of vertices to look at. Hence we have traded in a \( 2^n \) for a \( 1.619^n \) by being a little bit cagey about the algorithm. Can we do still better? There have not been a number of improvements of the basic maxset algorithm worked out. Of these, the most successful is perhaps the one of Tarjan and Trojanowski that is cited in the bibliography at the end of this chapter. We are not going to work out all of those ideas here, but instead we will show what kind of improvements on the basic idea will help us to do better in the time estimate. So, as our next thought, we might replace the instruction "choose some vertex \( v \) of \( G \)" in any instruction "choose some vertex \( v \) of \( G \) that has at least two neighbors." Then we could be quite certain that \( G - \{v\} - Nbd(v) \) would have at most \( n - 3 \) vertices. What if there isn't any such vertex in the graph \( G \)? Then \( G \) could contain only vertices with 0 or 1 neighbors. Such a graph \( G \) would be a collection of \( E \) disjoint edges together with a number of isolated vertices. The size of the largest independent set of vertices in such a graph is easy to find. An maximum independent set contains one vertex from each of the \( E \) edges and it contains all of the isolated vertices. Hence in this case, maxset \( = E + m = |V(G)| - |E(G)| \), and we obtain a second try at a good algorithm in the following form: ``` procedure marsel2(G); returns the size of the largest independent set of vertices of \( G \) if \( G \) has no vertex of degree \( > 2 \) then marsel2 := \( |V(G)| - |E(G)| \) else choose a vertex \( v \) of degree \( \geq 2 \); \( n_1 := marsel2(G - \{v\}); \) \( n_2 := marsel2(G - \{v\} - Nbd(v)); \) maxset2 := max(n_1, n_2) end(marsel2) ``` How much have we improved the complexity estimate? If we apply to marsel2 the reasoning that led to (2.3.2) we find: \[ f(n) \leq cm^2 + f(n - 1) + f(n - 3) \] where \( f(n) \) is once more the worst-case time bound for graphs of \( n \) vertices. Just as before, (2.3.3) is a recurrent inequality of the form that was studied at the end of section 1.4, in theorem 1.4.1. Using the conclusion of that theorem, we find from (2.3.3) that \( f(n) = O(c^n) \) where \( c = 1.46557 \). It is the positive root of the equation \( c^2 = c^2 + 1 \). The next result of our effort to improve marsel2 has been to reduce the running-time bound from \( O(1.619^n) \) to \( O(1.477^n) \), which isn’t a bad day’s work. In the exercises below we will develop marsel3, whose runtime will be \( O(1.391^n) \). The idea will be that since in marsel2 we were able to ensure that \( v \) had at least two neighbors, why not try to insure that \( v \) has at least 3 neighbors! As long as we have been able to reduce the time bound more and more by ensuring that the selected vertex has lots of neighbors, why don’t we keep it up, and insist that \( v \) should have 4 or more neighbors. Regrettably the intended route ran out of steam precisely at that moment. So why ask what the "trivial case" would look like. We would be working on a graph \( G \) in which vertices are more than 3 neighbors. Well, what "trivializing" shall we do in this "trivial case"? The fact is that there isn’t any way of finding the maximum independent set in a graph where all vertices have \( \leq 3 \) neighbors that’s any better than the general methods that we’ve already discussed. In fact, if one could find a fast method for that restricted problem it would have extremely important consequences because we would then be able to do all graphs rapidly, not just those special ones. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 46 Context: # Chapter 2: Recursive Algorithms We will learn more about this phenomenon in Chapter 5, but for the moment let’s leave just the observation that the general problem of **marset** turns out to be no harder than the special case of **marset** in which no vertex has more than 3 neighbors. Aside from the complexity issue, the algorithm **marset** has shown how recursive ideas can be used to transform questions about graphs to questions about smaller graphs. Here’s another example of such a situation. Suppose \( G \) is a graph, and that we have a certain supply of colors available. To be exact, suppose we have \( k \) colors. We can then attempt to color the vertices of \( G \) properly in \( k \) colors (see section 1.6). If we don’t have enough colors, and \( G \) has lots of edges, this will not be possible. For example, suppose \( G \) is the graph of Fig. 2.3.4, and suppose we have just 3 colors available. Then there is no way to color the vertices without ever finding that both endpoints of some edge have the same color. On the other hand, if we have four colors available then we can do the job. ![Fig. 2.3.4](path_to_image) There are many interesting computational and theoretical problems in the area of coloring of graphs. Just for its general interest, we are going to mention the four-color theorem, and then we will turn to a study of some of the computational aspects of graph coloring. First, just for general cultural reasons, let’s slow down for a while and discuss the relationship between graph colorings in general and the four-color problem, even though it isn’t directly relevant to what we’re doing. The original question was this. Suppose that a delegation of Earthlings were to visit a distant planet and find there a society of human beings. Since that race is well known for its squabbling habits, you can be sure that the planet will have been carved up into millions of little countries, each with its own ruling class, system of government, etc., and of course, all at war with each other. The delegation wants to cease quickly, just before doing so it draws a careful map of the 5,000,000 countries into which the planet has been divided. To make the map easier to read, the countries are then colored in such a way that whenever two countries share a stretch of border they are of two different colors. Surprisingly, it was found that the coloring could be done using only red, blue, yellow, and green. It was noticed over 100 years ago that no matter how complicated a map is drawn, and no matter how many countries are involved, it seems to be possible to color the countries in such a way that 1. every pair of countries that have a common stretch of border have different colors and 2. no more than four colors are used in the entire map. It was then conjectured that four colors are always sufficient for the proper coloring of the countries of any map at all. Settling this conjecture turned out to be a very hard problem. It was finally solved in 1976 by K. Appel and W. Haken* by means of an extraordinary proof with two main ingredients. First they showed how to reduce the general problem to only a finite number of cases, by a mathematical argument. Then, since the "finite" number was quite large, they settled all of those cases with a lengthy computer calculation. So now we have the "Four Color Theorem," which asserts that no matter how we carve up the plane or the sphere into countries, we will always be able to color those countries with not more than four colors so that countries with a common frontier are colored differently. We can change the map coloring problem into a graph coloring problem as follows. Given a map, from the map we will construct a graph \( G \). There will be a vertex \( v \) for each country on the map. Two of these vertices will be connected by an edge of the graph \( G \) if the two countries that correspond to them share a common stretch of border (we keep saying "stretch of border" to emphasize that if two countries have just a single point in common they are allowed to have the same color). As an illustration: * Every planar map is colorable, **Bull. Amer. Math. Soc.**, 82 (1976), 711-712. 42 Image Analysis: ### Image Analysis #### 1. **Localization and Attribution**: - The page contains a single image centrally placed. - Numbered as: **Image 1** #### 2. **Object Detection and Classification**: - **Image 1**: The image depicts a geometric illustration, likely a graph from graph theory. - **Detected Objects**: Vertices and edges of a graph. - **Classification**: Mathematical diagram, specifically an undirected graph. #### 3. **Scene and Activity Analysis**: - **Image 1**: The scene consists of a diagram showing interconnected points (vertices) and lines (edges). - **Main Activity**: Demonstration of a concept in graph theory, presumably related to coloring vertices. #### 4. **Text Analysis**: - **Text Extraction**: - The page has multiple paragraphs discussing: 1. The general problem of `maxset` and its complexity. 2. An algorithm showing recursive ideas for transforming questions about graphs. 3. A discussion of a graph `G` with `K` colors. 4. Details about the Four-Color Theorem and its proof. 5. Explanation of how to represent a map as a graph and the ability to color it using only four colors. - **Text in Image 1**: "Fig. 2.3.4" - **Text Content**: - Discusses theoretical problems in graph coloring, specifically the four-color problem. - The significance of the Four-Color Theorem, which states any map can be colored with no more than four colors, ensuring no two adjacent regions share the same color. #### 5. **Diagram and Chart Analysis**: - **Diagram Analysis (Fig. 2.3.4)**: - **Data and Trends**: Illustrates a graph with vertices and edges used to explain a concept in graph theory. - **Axes, Scales, and Legends**: Not applicable as it is a categorical illustration. - **Key Insights**: Visual representation of a theorem or concept in graph theory, probably linked to vertex coloring. #### 9. **Perspective and Composition**: - **Perspective**: The diagram is presented from a top-down view. - **Composition**: The elements (vertices and edges) are symmetrically arranged, highlighting the connections between different points in the graph. #### 10. **Contextual Significance**: - The image and accompanying text elaborate on complex concepts in graph theory, providing a visual aid (Fig. 2.3.4) to demonstrate how graphs can be colored under certain constraints. - Contributes to the overall message of discussing recursive algorithms and computational problems in graph theory, culminating in the Four-Color Theorem's practical explanation. Overall, this page serves as an educational piece aimed at explaining and proving concepts in graph theory, specifically focused on graph coloring algorithms and the famous Four-Color Theorem. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 47 Context: ### Conclusion: The visual content includes detailed diagrams and descriptive text related to graph theory, specifically planar graphs. The figures provide visual explanations, while the text offers theoretical context and practical insights into graph planarity and recursive algorithms. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 47 Context: # 2.3 Recursive graph algorithms of this construction, we show in Fig. 2.3.5(a) a map of a distant planet, and in Fig. 2.3.5(b) the graph that results from the construction that we have just described. By a *planar graph* we mean a graph \( G \) that can be drawn in the plane in such a way that two edges never cross (except that two edges at the same vertex have that vertex in common). The graph that results from changing a map of countries into a graph as described above is always a planar graph. In Fig. 2.3.6(a) we show a planar graph \( G \). This graph doesn't look planar because two of its edges cross. However, that isn't the graph's fault, because with a little more care we might have drawn the same graph as in Fig. 2.3.6(b), in which its planarity is obvious. Don't blame the graph if it doesn't look planar. It might be planar anyway! ## Fig. 2.3.5 - (a) ![2.3.5(a)](image_url_a) - (b) ![2.3.5(b)](image_url_b) ## Fig. 2.3.6 - (a) ![2.3.6(a)](image_url_c) - (b) ![2.3.6(b)](image_url_d) The question of recognizing whether a given graph is planar is itself a formidable problem, although the solution, due to J. Hopcroft and R. E. Tarjan,* is an algorithm that takes time in linear time, i.e., in \( O(V) \) time for a graph of \( V \) vertices. Although every planar graph can be properly colored in four colors, there are still all of those graphs that are not planar to deal with. For any one of those graphs we can ask if, a positive integer \( K \) is given, whether or not its vertices can be \( K \)-colored properly. As if that question weren’t hard enough, we might ask for even more detail, namely about the number of ways of properly coloring the vertices of a graph. For instance, if we have \( K \) colors to work with, suppose \( G \) is the empty graph \( K_n \). That is, the graph of \( n \) vertices that has no edges at all. Then \( G \) has quite a large number of proper colorings, \( K^n \), to be exact. Other graphs of \( n \) vertices have fewer proper colorings than that, and an interesting computational question is to count the proper colorings of a given graph. We will now find a recursive algorithm that will answer this question. Again, the complexity of the algorithm will be exponential, but as a small consolation we note that no polynomial time algorithm for this problem is known. Choose an edge of the graph, and let its endpoints be \( u \) and \( v \). Now delete the edge from the graph, and the resulting graph be called \( G - \{e\} \). Then we will distinguish two kinds of proper colorings of \( G - \{e\} \: \) those in which vertices \( u \) and \( v \) have the same color and those in which \( u \) and \( v \) have different colors. Obviously the number of proper colorings of \( G - \{e\} \) if \( k \) colors is the sum of the numbers of colorings of each of those two kinds. * Efficient planarity testing, J. Assoc. Comp. Mach. 21 (1974), 549-568. 43 Image Analysis: ### Analysis of the Visual Content: #### 1. **Localization and Attribution:** - **Image 1:** Located at the top left, labeled "Fig. 2.3.5(a)." - **Image 2:** Located at the top right, labeled "Fig. 2.3.5(b)." - **Image 3:** Located at the bottom left, labeled "Fig. 2.3.6(a)." - **Image 4:** Located at the bottom right, labeled "Fig. 2.3.6(b)." #### 2. **Object Detection and Classification:** - **Image 1 (Fig. 2.3.5(a)):** - **Objects Detected:** Circular graphical representation with labeled sectors (A, B, C, D, E, F). - **Key Features:** Depicts a map of a distant planet. - **Image 2 (Fig. 2.3.5(b)):** - **Objects Detected:** Graphical structure with vertices and connecting edges (A, B, C, D, E). - **Key Features:** Represents a planar graph resulting from the map in Fig. 2.3.5(a). - **Image 3 (Fig. 2.3.6(a)):** - **Objects Detected:** Non-planar graphical structure with vertices and connecting edges labeled 1 to 5. - **Key Features:** Depicts a non-planar graph. - **Image 4 (Fig. 2.3.6(b)):** - **Objects Detected:** Planar graphical structure similar to Fig. 2.3.6(a), with vertices and connecting edges labeled 1 to 5. - **Key Features:** Shows the same graph with more careful layout, making it appear planar. #### 3. **Scene and Activity Analysis:** - **Image 1 (Fig. 2.3.5(a)):** - Scene Description: A circular map divided into sectors labeled with characters. - Main Actors and Actions: Sectors 'A' to 'F' are the main actors, showing partitioning of the map. - **Image 2 (Fig. 2.3.5(b)):** - Scene Description: A planar graph derived from the map in Fig. 2.3.5(a). - Main Actors and Actions: Nodes 'A' to 'E' connected without intersecting edges. - **Image 3 (Fig. 2.3.6(a)):** - Scene Description: A non-planar graph with intersecting edges. - Main Actors and Actions: Vertices '1' to '5' connected with edges forming a non-planar structure. - **Image 4 (Fig. 2.3.6(b)):** - Scene Description: Planar layout of a graph similar to Fig. 2.3.6(a). - Main Actors and Actions: Vertices '1' to '5' connected to demonstrate a planar configuration. #### 4. **Text Analysis:** - **Detected Text:** - **Title:** "2.3 Recursive graph algorithms" - **Captions (Figs 2.3.5(a), 2.3.5(b), 2.3.6(a), 2.3.6(b)):** Provides context for each figure. - **Body Text:** Discussed the concept of planar graphs, the construction of planar graphs from a map, and the challenges in recognizing planar graphs. - **Text Analysis:** - **Context:** Describes the theory behind planar graphs and how specific configurations can impact the realization of planar structures in graph theory. - **Significance:** The text complements the diagrams by explaining graph planarity and the transformation from a map to a graph. #### 5. **Diagram and Chart Analysis:** - **Diagrams (Figs 2.3.5(a), 2.3.5(b), 2.3.6(a), 2.3.6(b)):** - **Axes, Scales, and Legends:** Not applicable as these are conceptual diagrams. - **Key Insights:** - Fig. 2.3.5(a) & Fig. 2.3.5(b) show the transformation from a map to a planar graph. - Fig. 2.3.6(a) & Fig. 2.3.6(b) highlight how a non-planar graph can be redrawn to appear planar. #### 13. **Graph Numbers:** - **Fig. 2.3.6(a) & Fig. 2.3.6(b):** - **Nodes:** 1, 2, 3, 4, 5 - **Connections:** - Fig. 2.3.6(a): Edges connect all vertices forming intersecting lines. - Fig. 2.3.6(b): Edges connect vertices without intersection, demonstrating a planar layout. ### Additional Considerations: - **Ablaufprozesse (Process Flows):** Figures demonstrate process flow in representing and drawing planar graphs. - **Prozessbeschreibungen (Process Descriptions):** Describes how to draw planar graphs from a given map structure. - **Typen Bezeichnung (Type Designations):** Differentiation between planar and non-planar graphs shown through different layout implementations. - **Trend and Interpretation:** The trend illustrates methods to achieve graph planarity and the significance of graphical representation. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 48 Context: # Chapter 2: Recursive Algorithms Consider the proper colorings in which vertices \(v\) and \(w\) have the same color. We claim that the number of such colorings is equal to the number of all colorings of a certain new graph \(G/{\sim}\); whose construction we now describe. The vertices of \(G/{\sim}\) consist of the vertices of \(G\) other than \(v\) or \(w\) and one new vertex that we will call ‘new’, so \(G/{\sim}\) will have one less vertex than \(G\) has. Now we describe the edges of \(G/{\sim}\). First, if \(a\) and \(b\) are two vertices of \(G/{\sim}\) neither of which is the new vertex ‘new’, then \((a, b)\) is an edge of \(G/{\sim}\) if and only if it is an edge of \(G\). Second, \((v, b)\) is an edge of \(G/{\sim}\) if and only if either \(b\) is not \(w\) (or both) is an edge of \(G\). We can think of this as ‘collapsing’ the graph \(G\) by imagining that the edges of \(G\) are elastic bands, and we squeeze vertices \(v\) and \(w\) together into a single vertex. The result is \(G/{\sim}\) (anyway, it is if we replace any resulting double bands by single ones!). In Fig. 2.3.7(a) we show a graph \(G\) of \(t\) vertices and a chosen edge \(e\). The two endpoints of \(e\) are \(v\) and \(w\). In Fig. 2.3.7(b) we show the graph \(G/{\sim}\) that is the result of the construction that we have just described. ![Fig. 2.3.7(a)](link_to_figure_a) ![Fig. 2.3.7(b)](link_to_figure_b) The point of the construction is the following: ## Lemma 2.3.1. Let \(v\) and \(w\) be two vertices of \(G\) such that \(e = (v, w) \in E(G)\). Then the number of proper \(K\)-colorings of \(G - \{e\}\) in which \(v\) and \(w\) have the same color is equal to the number of all proper colorings of the graph \(G/{\sim}\). ### Proof: Suppose \(G/{\sim}\) has a proper \(K\)-coloring. Color the vertices of \(G - \{e\}\) itself in \(K\) colors as follows. Every vertex of \(G - \{e\}\) other than \(v\) or \(w\) keeps the same color that it has in the coloring of \(G/{\sim}\). Vertex \(v\) and vertex \(w\) each receive the color that vertex \(uv\) has in the coloring of \(G/{\sim}\). Now we have a \(K\)-coloring of the vertices of \(G - \{e\}\). It is a proper coloring because if \(j\) is any edge of \(G - \{e\}\) then the two endpoints of \(j\) have different colors. Indeed, this is obviously true if either endpoint of \(j\) is \(v\) or \(w\) because the coloring of \(G/{\sim}\) was a proper one. There remains only the case where endpoint of \(j\) is say, \(u\) but there is some vertex \(z\) other than \(v\) or \(w\). But then the colors of \(u\) and \(z\) must be different because \(v\) and \(w\) were joined in \(G/{\sim}\) by an edge, and therefore must have gotten different colors. ## Lemma 2.3.2. Let \(e = (v, w)\) be an edge of \(G\). Then the number of proper \(K\)-colorings of \(G - \{e\}\) in which \(v\) and \(w\) have different colors is equal to the number of all proper \(K\)-colorings of \(G\) itself. ### Proof: Obvious (isn't it?). Now let’s put together the results of the two lemmas above. Let \(P(K; G)\) denote the number of ways of properly coloring the vertices of a given graph \(G\). Then lemmas 2.3.1 and 2.3.2 assert that: \[ P(K; G - \{e\}) = P(K; G/{\sim}) + P(K; G) \] 44 Image Analysis: ### 1. Localization and Attribution **Image 1:** Positioned on the left, labeled as Fig. 2.3.7(a). **Image 2:** Positioned on the right, labeled as Fig. 2.3.7(b). ### 2. Object Detection and Classification **Image 1 (Fig. 2.3.7(a)):** - Objects: Vertices and edges of a graph. - Key Features: A graph with 7 vertices labeled 1 through 7, and edges connecting them. **Image 2 (Fig. 2.3.7(b)):** - Objects: Collapsed version of the graph from Image 1. - Key Features: A graph with 6 vertices (one less vertex due to collapsing) and different connections. ### 3. Scene and Activity Analysis **Image 1:** - Scene: A representation of a graph with vertices and edges. - Activities: Display of vertices connected by edges, possibly illustrating relationships or paths within a graph. **Image 2:** - Scene: A modified version of the graph in Image 1, where two vertices have been 'collapsed' into one. - Activities: Demonstrates the process of collapsing or merging vertices within a graph. ### 4. Text Analysis - Extracted Text: - "Chapter 2: Recursive Algorithms" - Descriptions about graph coloring and collapsing a graph. - Lemma 2.3.1 and 2.3.2, along with their proofs. - Analysis: - The content provides theoretical explanations and proofs about graph coloring. - Defines the process of collapsing vertices in a graph and its impact on graph colorings. - Provides mathematical proofs to establish lemmas related to graph colorings. ### 9. Perspective and Composition **Image 1:** - Perspective: Standard front view. - Composition: Vertices and edges arranged to clearly depict the structure of the graph. **Image 2:** - Perspective: Standard front view. - Composition: Vertices and edges are arranged to show the result of collapsing vertices from the graph in Image 1. ### 10. Contextual Significance - The images complement the text, providing visual examples of the concepts discussed (graph transformations and their impact on colorings). - They enhance the reader’s understanding of theoretical content through visual representation of key ideas. ### 13. Graph Numbers **Image 1 (Fig. 2.3.7(a))**: - Vertices: 1, 2, 3, 4, 5, 6, 7 - Edges: Edges are depicted as lines connecting various pairs of these vertices, demonstrating relationships and paths within the graph. **Image 2 (Fig. 2.3.7(b))**: - Vertices: Modified set of vertices after collapsing, renumbered accordingly. - Edges: Updated edges reflecting the changes made in the graph structure post-collapsing. ### Additional Aspects **Prozessbeschreibungen (Process Descriptions):** - Description of collapsing vertices in a graph: - *New vertex "w*": Created by collapsing vertices \(v\) and \(u\). - Updated edges to redefine connections focusing on the collapsed vertex. ### Summary The images and text collectively explain the theoretical concept of graph transformation through vertex collapsing, and its effect on graph colorings. The visual representation aids in illustrating the transformation steps, while the accompanying text provides detailed proofs and explanations of the underlying principles. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 51 Context: # Exercises for section 2.3 1. Let \( G \) be a cycle of \( n \) vertices. What is the size of the largest independent set of vertices in \( V(G) \)? 2. Let \( G \) be a path of \( n \) vertices. What is the size of the largest independent set of vertices in \( V(G) \)? 3. Let \( G \) be a connected graph in which every vertex has degree 2. What must such a graph consist of? 4. Let \( G \) be a connected graph in which every vertex has degree \( \leq 2 \). What must such a graph look like? What is the size of the largest independent set of vertices in such a graph? How long would it take you to calculate that number for such a graph \( G \)? How would you do it? 5. Write out algorithm `maxset3`, which finds the size of the largest independent set of vertices in a graph. Its trivial case will occur if \( G \) has no vertices of degree \( \geq 3 \). Otherwise, it will choose a vertex \( v \) of degree \( \geq 3 \) and proceed as in master2. 6. Analyze the complexity of your algorithm `maxset3` from exercise 6 above. 7. Use (2.3.4) to prove by induction that \( P(K_i;G) \) is a polynomial in \( K \) of degree \( |V(G)| \). Then show that if \( G \) is a tree then \( P(K;G) = K(K - 1)^{|V(G)| - 1} \). 8. Write out an algorithm that will change the vertex adjacency matrix of a graph \( G \) to the vertex adjacency matrix of the graph \( G' \) (where \( e \) is a given edge of \( G \)). 9. How many edges must \( G \) have before the second quantity inside the ‘O’ in (2.3.12) is the smaller of the two? 10. Let \( \alpha(G) \) be the size of the largest independent set of vertices of a graph \( G \), let \( \chi(G) \) be its chromatic number, and let \( n = |V(G)| \). Show that, for every \( G \), \( \alpha(G) \geq n/\chi(G) \). ## 2.4 Fast matrix multiplication Everybody knows how to multiply two \( 2 \times 2 \) matrices. If we want to calculate \[ \begin{pmatrix} c_{11} & c_{12} \\ c_{21} & c_{22} \end{pmatrix} = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix} \begin{pmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{pmatrix} \] (2.1) then, "of course," \[ c_{ij} = \sum_{k=1}^{2} a_{ik} b_{kj} \quad (i,j=1,2). \] (2.2) Now look at (2.4.2) a little more closely. In order to calculate each one of the \( c_{ij} \)'s we have to do 2 multiplications of numbers. The cost of multiplying two \( 2 \times 2 \) matrices is therefore 8 multiplications of numbers. If we measure the cost in units of additions of numbers, the cost is 4 such additions. Hence, the matrix multiplication method that is shown in (2.4.1) has a complexity of \( 8 \) multiplications of numbers and \( 4 \) additions of numbers. This may seem rather unsettling, but the best ideas often have humble origins. Suppose you could find another way of multiplying two \( 2 \times 2 \) matrices in which the cost was only 7 multiplications of numbers, together with more than 4 additions of numbers. What would be a cause for dancing in the streets, or would it be just a curiosity, of little importance? In fact, it would be extremely important, and the consequences of such a step were fully appreciated only in 1965 by V. Strassen, to whom the ideas that we are now discussing are due. What we’re going to do next in this section is the following: (a) Describe another way of multiplying two \( 2 \times 2 \) matrices in which the cost will be only 7 multiplications of numbers plus a bunch of additions of numbers, and (b) Convince you that it was worth the trouble. The usefulness of the ideas stems from the following amazing fact: if two \( 2 \times 2 \) matrices can be multiplied with only \( 7 \) multiplications of numbers, then two \( N \times N \) matrices can be multiplied using only \( O(N^{2.81}) \). * V. Strassen, Gaussian elimination is not optimal, Numerische Math. 13 (1969), 354-6. Image Analysis: ### Localization and Attribution 1. **Image 1:** - **Location:** Single page, top-to-bottom position. - **Image Number:** Image 1. ### Object Detection and Classification **Image 1:** - **Objects Detected:** - Mathematical notations and text. - Formulae and equations enclosed in parentheses. ### Text Analysis **Image 1:** - **Extracted Text:** - The text contains multiple mathematical exercises, specifically for section 2.3, discussing various graph theory problems. - There's also an excerpt for section 2.4 discussing "Fast matrix multiplication." - **Content Analysis:** - **Exercises for section 2.3:** - The questions revolve around determining sizes of the largest independent sets in different types of graphs like cycles, paths, and connected graphs. - Questions concerning algorithms and complexity analysis are also present. - Inductive proof and graph vertex adjacency matrix modification algorithms are mentioned. - **Section 2.4 Fast Matrix Multiplication:** - The calculation of matrix products is introduced with a basic example using 2x2 matrices. - Formulas \( c_{11}, c_{12}, c_{21}, c_{22} \) are elaborated upon. - A hypothesis about reducing the number of multiplications from 8 to 7 is discussed, referencing V. Strassen's work. ### Diagram and Chart Analysis **Image 1:** - **Diagrams Detected:** - A mathematical matrix multiplication diagram is present. - Matrix elements and multiplication processes are illustrated. ### Scene and Activity Analysis **Image 1:** - **Scene Description:** - The image illustrates a textbook-like page, with text-based exercises and explanations about graph theory and matrix multiplication. - **Activities:** - Reading mathematical exercises, solving graph theory problems, and understanding matrix multiplication concepts. ### Contextual Significance **Image 1:** - **Contribution to Overall Document:** - The image seems to be part of a mathematics textbook or academic publication, focusing on graph theory and matrix algorithms. - It aids in the understanding of complex mathematical concepts and provides practical problems for the reader to solve. ### Process Descriptions **Image 1:** - **Description:** - The process of calculating the size of the largest independent set for various types of graphs is broken down. - Basic matrix multiplication processes are described, highlighting both traditional methods and potential optimizations. ### Typen Bezeichnung (Type Designations) **Image 1:** - **Types Described:** - Different types of graphs (cycles, paths, connected graphs, and non-necessarily-connected graphs) and their properties are identified. - Types of vertices (degrees, vertex adjacency matrix) are also designated. ### Trend and Interpretation **Image 1:** - **Identified Trends:** - A focus on enhancing computational efficiency, particularly in matrix multiplication, is emphasized. - Analyzing the size of independent sets in various graph structures is a recurring theme. ### Tables **Image 1:** - **Detected Content:** - The page does not contain any structured tables but includes mathematical equations which are presented in a structured format resembling tables. By addressing different aspects, the analysis provides a comprehensive understanding of the mathematical concepts and exercises illustrated in the image. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 53 Context: We follow the method of section 1.4 on this first-order linear difference equation. Hence we make the change of variable g(n) = 7 ^n y(n) (n ≥ 0) and we find that y0 = 0 and for n ≥ 1, y_n - 7y_n–1 + 2 ^(4/n^ n )= 9. If we sum over n we obtain y_n = 9 ∑_(i=1)^n (4/7)^i ≤ 9 ∑_(i=1)^∞ (4/7)^n = 9/((1 – 4/7)) = 21/2. ``` - **Analysis of Content:** The text is an excerpt from a mathematical or computer science document discussing the Strassen method for fast matrix multiplication. It includes a pseudocode function `MatrProd` for multiplying matrices and explains the recursive nature of the algorithm. The complexity analysis includes counting the number of multiplications and additions/subtractions necessary for the algorithm. Detailed recursive calls and complexity calculations are provided, illustrating the efficiency improvement from O(N^3) to O(N^2.81) for matrix multiplication. #### 8. Color Analysis - **Color Composition:** - The page has a predominantly white background with black text, typical of a printed or digital document. - There are no other significant colors present, which focuses the reader's attention on the textual content. #### 9. Perspective and Composition - **Perspective:** - The image is a top-down view of a text document, likely appearing in a book or a digitally scanned paper. - **Composition:** - The text is arranged in typical paragraph format. - The pseudocode and equations are indented and formatted distinctly to differentiate them from the main body of text, aiding readability. #### 14. Trend and Interpretation - **Trend in Visual Content:** - The visual content suggests a trend toward presenting complex mathematical and algorithmic concepts in a step-by-step manner, providing both theoretical explanations and practical pseudocode. - **Interpretation:** - The use of pseudocode and complexity analysis serves to educate readers on efficient matrix multiplication methods, specifically emphasizing the Strassen algorithm's recursive approach and reduced computational complexity. #### Additional Observations - **Prozessbeschreibungen (Process Descriptions):** - The text describes the recursive process of Strassen's matrix multiplication algorithm in detail, including its base case, recursive case, and the operations needed to combine intermediate results. - **Typen Bezeichnung (Type Designations):** - The algorithm categorizes its steps into multiplication and addition/subtraction processes, describing the type of operations performed at each recursive level. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 54 Context: # Chapter 2: Recursive Algorithms Finally, \( g(n) = n^{\log_2(7)} = O(n^{2.81}) \) and this is \( O(n^2) \), as before. This completes the proof of Theorem 2.4.1. In Strassen's method of fast matrix multiplication, the number of multiplications of numbers, of additions of numbers, and of subtractions of numbers that are needed to multiply two \( N \times N \) matrices are each \( O(N^{2.81}) \) (in contrast to the \( \Theta(N^3) \) of the conventional method). In the years that have elapsed since Strassen's original paper, many researchers have been whittling away at the exponent of \( N \) in the complexity bounds. Several new and more elaborate algorithms have been developed, and the exponent, which was originally 3, has progressed downward through 2.81 to values below 2.5. It is widely believed that the true minimum exponent is \( 2 \), i.e., that two \( N \times N \) matrices can be multiplied in time \( O(N^2) \), but there seems to be a good deal of work to be done before that result can be achieved. ## Exercises for Section 2.4 1. Suppose we could multiply together two \( 3 \times 3 \) matrices with only \( 22 \) multiplications of numbers. How fast, recursively, would we then be able to multiply two \( N \times N \) matrices? 2. (cont.) With what would the \( 22 \) in problem 1 above have to be replaced in order to achieve an improvement over Strassen's algorithm given in the text? 3. (cont.) Still more generally, with how few multiplications would we have to be able to multiply two \( M \times N \) matrices in order to ensure that recursively we would then be able to multiply two \( N \times N \) matrices faster than the method given in this section? 4. We showed in the text that if \( N \) is a power of \( 2 \) then two \( N \times N \) matrices can be multiplied in at most time \( C N^{2.81} \), where \( C \) is a suitable constant. Prove that if \( N \) is not a power of \( 2 \) then two \( N \times N \) matrices can be multiplied in time at most \( C N^{2.81} \). ## 2.5 The Discrete Fourier Transform It is a lot easier to multiply two numbers than to multiply two polynomials. If you should want to multiply two polynomials \( f \) and \( g \) of degrees \( 77 \) and \( 94 \), respectively, you are in for a lot of work. To calculate just one coefficient of the product is already a lot of work. Think about the calculation of the coefficient of \( x^{50} \) in the product, for instance, and you will see that about \( 50 \) numbers must be multiplied together and added in order to calculate just that one coefficient of \( fg \), and there are \( 171 \) other coefficients to calculate! Instead of calculating the coefficients of the product \( fg \), it would be much easier just to calculate the values of the product at, say, \( 172 \) points. To do that we could just multiply the values of \( f \) and \( g \) at those points, and after a total cost of \( 172 \) multiplications, we would have the values of the product. The values of the product polynomial at \( 172 \) distinct points determine that polynomial completely, so that sequence of values is the answer. It's just that we humans prefer to see polynomials given by means of their coefficients instead of by their values. The Fourier transform, that is the subject of this section, is a method of converting from one representation of a polynomial to another. More exactly, it converts from the sequence of coefficients of the polynomial to the sequence of values of that polynomial at a certain set of points. Ease of converting between these two representations of a polynomial is vitally important for many reasons, including multiplication of polynomials, high precision integer arithmetic in computers, creation of medical images in CAT scanners, etc. Hence, in this section we will study the discrete Fourier transforms of a finite sequence of numbers, methods of calculating it, and some applications. This is a computational problem which at first glance seems very simple. What we’re asked to do, basically, is to evaluate a polynomial of degree \( n - 1 \) at \( n \) different points. So what could be so difficult about that? If we just calculate the \( n \) values by brute force, we certainly wouldn’t need to do more than \( n \) multiplications to find each of the \( n \) values of the polynomial that we want, so we surely don’t need more than \( O(n^2) \) multiplications altogether. Image Analysis: Based on the attached visual content, here is a detailed examination according to the provided aspects: 1. **Localization and Attribution:** - The attached visual content appears to be a single-page document numbered 50, containing text, mathematical equations, and a few highlighted sections. 2. **Object Detection and Classification:** - **Page 50**: - Objects detected: Text paragraphs, mathematical symbols, equations, and section headers. - Categories: Textual document, mathematical notation. 3. **Scene and Activity Analysis:** - **Page 50**: - This image shows an excerpt from an educational or academic text, likely a book or an article about algorithms focusing on fast matrix multiplication and the discrete Fourier transform. - Key activities: Defining mathematical concepts, explaining algorithms, posing exercises for the reader. 4. **Text Analysis:** - **Detected Text**: - Title: "Chapter 2: Recursive Algorithms" - Paragraph discussions on Strassen's method of fast matrix multiplication. - Highlighted theorem: *Theorem 2.4.1* indicating specific mathematical properties. - Exercises for section 2.4, involving detailed matrix multiplication problems. - Introduction to the section 2.5 on the discrete Fourier transform. - **Significance**: - These texts are part of an academic discussion on advanced topics in computer science and mathematics, specifically focused on recursive algorithms and polynomial multiplications. 5. **Diagram and Chart Analysis:** - No diagrams or charts are present in this image. 6. **Product Analysis:** - No physical products depicted. The "products" discussed are mathematical entities. 7. **Anomaly Detection:** - No noticeable anomalies are present. The content appears normal for an academic text. 8. **Color Analysis:** - The image is primarily in grayscale, typical for printed or scanned text documents. The text is in black, providing high contrast against the white background for readability. 9. **Perspective and Composition:** - The perspective is that of a straight-on view of a book or document page. - The composition includes a consistent text structure with mathematical notation embedded in paragraphs, section headers, and exercise questions. 10. **Contextual Significance:** - This page's content contributes significantly to understanding recursive algorithms and discrete Fourier transforms within the reader's study context. - It builds upon previous sections and provides exercises to aid in reinforcing the learned concepts. 11. **Metadata Analysis:** - No metadata is visible in the provided image. 12. **Graph and Trend Analysis:** - No graphs are present. 13. **Graph Numbers:** - Not applicable due to the absence of graphs. **Additional Aspects**: - **Ablaufprozesse (Process Flows)**: - The page describes mathematical processes and workflows involving matrix multiplication and polynomial evaluation. - **Prozessbeschreibungen (Process Descriptions)**: - Descriptions are given for Strassen’s matrix multiplication method and the discrete Fourier transform. - **Typen Bezeichnung (Type Designations)**: - Types mentioned include specific algorithms (Strassen's method) and mathematical transformations (Fourier transform). - **Trend and Interpretation**: - The trends involve moving from brute-force computational methods to more efficient recursive techniques. - **Tables**: - No tables are present in the image. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 60 Context: ### Summary The visual content is a page from an academic or technical text focused on recursive algorithms, specifically the Fast Fourier Transform (FFT). The text includes mathematical notations, theorems, proofs, and practical applications, emphasizing the efficiency of FFT in computational tasks. The included table illustrates the reduction in complexity provided by using the FFT. The document's formal structure and detailed mathematical content suggest it is intended for readers with a strong background in mathematics or computer science. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 63 Context: ```markdown ## 2.7 A review An outgrowth of the rapidity with which we can now multiply polynomials is a rethinking of the methods by which we do ultrahigh-precision arithmetic. How fast can we multiply two integers, each of which has ten million bits? By using ideas that developed directly (though not at all trivially) from the ones that we have been discussing, Schönhage and Strassen found the fastest known method for doing such large-scale multiplications of integers. The method relies heavily on the FFT, which may not be too surprising since an integer \( n \) is given in terms of its bits \( b_0, b_1, \ldots, b_m \) by the relation \[ n = \sum_{i=0}^{m} b_i 2^i. \] However, the sum in (2.5) is seen at once to be the value of a certain polynomial at \( z = 2 \). Hence in asking for the bits of the product of two such integers we are asking for something very similar to the coefficients of the product of two polynomials, and indeed the fastest known algorithms for this problem depend upon the Fast Fourier Transform. ### Exercises for section 2.6 1. Let \( \omega \) be an \( n \)-th root of unity, and let \( k \) be a fixed integer. Evaluate \[ 1 + \omega^k + \omega^{2k} + \cdots + \omega^{(n-1)k}. \] 2. Verify that the relations (2.6.3) and (2.6.4) indeed are inverses of each other. 3. Let \( f = \sum_{j=0}^{n-1} a_j \omega^j \). Show that \[ \frac{1}{n} \sum_{n=1}^{\omega} |f(\omega)|^2 = |a_0|^2 + \cdots + |a_{n-1}|^2. \] 4. The values of a certain cubic polynomial at \( i, -1, -i \) are \( 1, 2, 3, 4 \), respectively. Find its value at 2. 5. Write a program that will do the FFT in the case where the number of data points is a power of 2. Organize your program so as to minimize additional array storage beyond the input and output arrays. 6. Prove that a polynomial of degree \( n \) is uniquely determined by its values at \( n + 1 \) distinct points. ## 2.7 A review Here is a quick review of the algorithms that we studied in this chapter. Sorting is an easy computational problem. The most obvious way to sort an array elements takes time \( \Theta(n^2) \). We discussed a recursive algorithm that sorts in an average time of \( \Theta(n \log n) \). Finding a maximum independent set in a graph is a hard computational problem. The most obvious way to do it might take time \( \Omega(2^{|V|}) \) if the graph \( G \) has \( V \) vertices. We discussed a recursive method that runs in time \( O(1.39^n) \). The best known methods run in time \( O(2^{|V|/3}) \). Finding out if a graph is \( k \)-colorable is a hard computational problem. The most obvious way to do it takes time \( O(k^n) \), if \( G \) has \( n \) vertices. We also discussed methods that run in time \( O(1.5^n) \) if \( G \) has \( m \) edges. One recently developed method *runs in time* \( O(1.5^n) \). We will see in section 5.7 that this problem can be done in an average time that is \( O(1) \) for fixed \( k \). Multiplying two matrices is an easy computational problem. The most obvious way to do it takes time \( O(n^3) \) if the matrices are \( n \times n \). We discussed a recursive method that runs in time \( O(n^{2.81}) \). A recent method **runs in time \( O(n^{2.5}) \)** for some \( \epsilon < 2.5 \). - E. Lawler, A note on the complexity of the chromatic number problem, Information Processing Letters 5 (1976), 66-7. - D. Coppersmith and S. Winograd, On the asymptotic complexity of matrix multiplication, SIAM J. Comp. 11 (1980), 472-492. ``` Image Analysis: ### Image Analysis #### 1. **Localization and Attribution:** - **Image Position**: The entire provided content appears as a single page document. - **Image Number**: Image 1 #### 4. **Text Analysis:** - **Detected Text**: ``` 2.7 A review An outgrowth of the rapidity with which we can now multiply polynomials is a rethinking of the methods by which we do ultrahigh-precision arithmetic. How fast can we multiply two integers, each of which has ten million bits? By using ideas that developed directly (though not at all trivially) from the ones that we have been discussing, Schönhage and Strassen found the fastest known method for doing such large-scale multiplications of integers. The method relies heavily on the FFT, which may not be too surprising since an integer n is given in terms of its bits by the relation n = ∑_(i=0)^k b_i 2^i. (2.6.5) However, the sum in (2.6.5) is seen at once to be the value of a certain polynomial at x = 2. Hence in asking for the bits of the product of two such integers we are asking for something very similar to the coefficients of the product of two polynomials, and indeed the fastest known algorithms for this problem depend upon the Fast Fourier Transform. Exercises for section 2.6 1. Let ω be an nth root of unity, and let k be a fixed integer. Evaluate 1 + ω^k + ω^(2k) +···+ ω^[(n−1)k] . 2. Verify that the relations (2.6.3) and (2.6.4) indeed are inverses of each other. 3. Let f = ∑(n−1)_(j=0) a_jω^j. Show that 1/n ∑(n)_(ω=1) |f(ω^1)|^2 = |a_0|^2 + ···+ |a_(n−1)|^2 4. The values of a certain cubic polynomial at 1, i, -1, -i are 1, 2, 3, 4, respectively. Find its value at ω. 5. Write a program that will do the FFT in the case where the number of data points is a power of 2. Organize your program so as to minimize additional array storage beyond the input and output arrays. 6. Prove that a polynomial of degree n is uniquely determined by its values at n + 1 distinct points. 2.7 A review Here is a quick review of the algorithms that we studied in this chapter. Sorting is an easy computational problem. The most obvious way to sort an array elements takes time Θ(n^2). We discussed a recursive algorithm that sorts in an average time of Θ(n log n). Finding a maximum independent set in a graph is a hard computational problem. The most obvious way to do it might take time Θ(2^n) if the graph G has n vertices. We discussed a recursive method that runs in time O((1.3^n)). The best known methods run in time O((2.2^n)/3). Finding out if a graph is k-colorable is a hard computational problem. The most obvious way to do it takes time Θ(k^n), if G has n vertices. We discussed a recursive method that runs in time O((1.62^n) if G has n vertices and E edges. One recently developed method ** runs in time O(((4/3)^n)). We will see in section 5.7 that this problem can be done in an average time that is O(1) for fixed k**. Multiplying two matrices is an easy computational problem. The most obvious way to do it takes time Θ(n^3) if the matrices are n × n. We discussed a recursive method that runs in time O((n^(2.8)). A recent method ** runs in time O(n) for some γ < 2.5. ** E. Lawler, A note on the complexity of the chromatic number problem, Information Processing Letters 5 (1976), 66-7. ** D. Coppersmith and S. Winograd, On the asymptotic complexity of matrix multiplication, SIAM J. Comp. 11 (1980), 472-492. ``` #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 67 Context: # Chapter 3: The Network Flow Problem ## 3.1 Introduction The network flow problem is an example of a beautiful theoretical subject that has many important applications. It has also generated algorithmic questions that have been in a state of extremely rapid development in the past 20 years. Altogether, the fastest algorithms that are now known for the problem are much faster, and some are much simpler, than the ones that were in use a short time ago, but it is still unclear how close to the ‘ultimate’ algorithm we are. ### Definition A **network** is an edge-capacitated directed graph, with two distinguished vertices called the source and the sink. To repeat that, this time a little more slowly, suppose first that we are given a directed graph (digraph) \( G \). That is, we are given a set of vertices, and a set of ordered pairs of these vertices, these pairs being the edges of the digraph. It is perfectly OK to have both an edge from \( u \) to \( v \) and an edge from \( v \) to \( u \), or both, or neither, for all \( u \neq v \). No edge \( (u, v) \) is permitted. If an edge is directed from vertex \( u \) to vertex \( v \), then \( u \) is the initial vertex of \( e \) and \( v \) is the terminal vertex of \( e \). We may then write \( v = \text{Tail}(e) \). Next, in a network, there is associated with each directed edge \( e \) of the digraph a positive real number called its capacity, and denoted by \( \text{cap}(e) \). Finally, two of the vertices of the digraph are distinguished. One, \( s \), is the source, and the other, \( t \), is the sink of the network. We will let \( X \) denote the resulting network. It consists of the digraph \( G \), the given set of edge capacities, the source, and the sink. A network is shown in Fig. 3.1.1. ![Fig. 3.1.1: A network](#) Now roughly speaking, we can think of the edges of \( G \) as conduits for a fluid, the capacity of each edge being the carrying-capacity of the edge for that fluid. Imagine that the fluid flows in the network from the source to the sink, in such a way that the amount of fluid in each edge does not exceed the capacity of that edge. We want to know the maximum net quantity of fluid that could be flowing from source to sink. That was a rough description of the problem; here it is more precisely. ### Definition A **flow** in a network \( X \) is a function \( f \) that assigns to each edge \( e \) of the network a real number \( f(e) \), in such a way that: 1. For each edge \( e \), we have \( 0 \leq f(e) \leq \text{cap}(e) \). 2. For each vertex \( v \) other than the source and the sink, it is true that \[ \sum_{v \text{ enters } e} f(e) = \sum_{v \text{ exits } e} f(e). \tag{3.1.1} \] 63 Image Analysis: ### Analysis of Attached Visual Content #### Localization and Attribution: 1. **Image 1 Location:** - **Position:** Center of the page. - **Number:** Image 1. - **Assigned Number:** Image 1. #### Object Detection and Classification: 1. **Image 1:** - **Objects Detected:** - Nodes (representing vertices in the network). - Directed edges (arrows between nodes). - Numeric values on edges (representing capacities). - Text labels within the diagram. - **Classification by Category:** - Graphical elements: Nodes, edges, and numeric values. - Informative text: Labels such as source \( s \), sink \( t \), and edge capacities. #### Scene and Activity Analysis: 1. **Image 1:** - **Scene Description:** - The image depicts a directed graph with nodes and edges, where each edge has a label representing the capacity (numerical value). - **Activities Taking Place:** - Visualization of a network flow problem, showing how nodes (vertices) are connected through directed edges (arrows). #### Text Analysis: 1. **Detected Text:** - **Title:** Fig. 3.1.1.: A network - **Edge Capacities:** 10, 30, 20, 25, 10, 15, 5, 15. - **Node Labels:** Include 's' for source and 't' for sink. - **Flow Conservation Equation:** \(\sum_{\text{Init}(e)=v} f(e) = \sum_{\text{Term}(e)=v} f(e)\). 2. **Content Analysis:** - **Significance:** - The edge capacities define the constraints for each directed connection between the nodes in the network. - The flow conservation equation ensures the balance of flows at each node (excluding the source and sink). #### Diagram and Chart Analysis: 1. **Axes, Scales, and Legends:** - **Axes:** Not applicable. - **Scales:** Edge capacities are depicted as numerical values on the edges. - **Legends:** Not explicitly present, but source \( s \) and sink \( t \) are distinguishable. 2. **Key Insights:** - Different capabilities show how much flow can pass through each edge. - The connectivity provides insights into potential flow routes from the source to the sink. #### Process Descriptions: 1. **Network Flow Description:** - The network consists of a directed graph with edges indicating possible paths between nodes. - Capacities on edges restrict the amount of flow that can pass through. - The goal is to maximize the flow from the source \( s \) to the sink \( t \) while adhering to capacity limits and flow conservation rules. #### Perspective and Composition: 1. **Image 1:** - **Perspective:** - Frontal view of the network graph, displaying nodes and edges clearly. - **Composition:** - Centered graph with nodes and edges, edge capacities positioned to define routes and constraints effectively. ### Summary: The visual content, primarily featuring a directed graph, represents a network flow problem. The graph comprises nodes (vertices) and directed edges, each labeled with capacity values reflecting the maximum flow allowed between nodes. The scene embodies a typical example used in theoretical and practical applications to demonstrate how to determine the optimal flow from a source node to a sink node while observing constraints dictated by edge capacities and flow conservation principles. The visual aids in understanding the components and complexities involved in solving network flow problems. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 79 Context: # 3.6 Layered Networks After augmenting the flow in the original network \( X \), we construct a new layered network, from \( X \) and the newly augmented flow function of \( X \). The various activities that are now being described may sound like some kind of thinly disguised repackaging of the Ford-Fulkerson algorithm, but they aren’t just that, because here is what can be proved to happen: 1. First, if we start with zero flow in \( X \), make the layered network \( Y \), find a blocking flow in \( Y \), augment the flow in \( X \), make a new layered network \( Y' \), find a blocking flow, etc., then after at most \( V \) phases (“phase” = layer + block + augment) we will have found the maximum flow in \( X \) and the process will halt. 2. Second, each phase can be done very rapidly. The MPM algorithm, to be discussed in section 3.7, finds a blocking flow in a layered network in time \( O(V) \). By the height of a layered network \( Y \) we will mean the number of edges in any path from source to sink. The network of Fig. 3.6.1 has height 1. Let’s now show \[ \text{Theorem 3.6.1.} \] The heights of the layered networks that occur in the consecutive phases of the solution of a network flow problem form a strictly increasing sequence of positive integers. Hence, for a network \( X \) with \( V \) vertices, there can be at most \( V \) phases before a maximum flow is found. Let \( Y(p) \) denote the layered network that is constructed at the \( p^{th} \) phase of the computation and let \( H(p) \) denote the height of \( Y(p) \). We will first prove \[ \text{Lemma 3.6.1.} \] If \[ v_0 \to v_1 \to v_2 \to \ldots \to v_m \quad (v_0 = \text{source}) \] is a path in \( Y(p+1) \), and if every vertex \( v_i \) (for \( i = 1, \ldots, m \)) of that path also appears in \( Y(p) \), then for every \( a = 0, m \) it is true that if vertex \( v_a \) was in layer \( b \) of \( Y(p) \) then \( 2 \geq b \). **Proof of lemma:** The result is clearly true for \( a = 0 \). Suppose it is true for \( v_0, v_1, \ldots, v_a \), and suppose \( v_a, v_{a+1} \) was not present in network \( Y(p) \) since two vertices were not in the consecutive layers. Hence the flow in \( Y \) between \( v_a \) and \( v_{a+1} \) could not have been affected by the augmentation procedure of phase \( p \). But edge \( v_i \) is in \( Y(p) \). Therefore it represented an edge of \( Y \) that was helpful from \( v_a \) at the beginning of phase \( p+1 \) was unaffected by phase \( p \) but was not helpful at the beginning of phase \( p \). This contradiction establishes the lemma. Now we will prove the theorem. Let \[ s \to v_1 \to v_2 \to \ldots \to v_{H(p+1)} \to t \] be a path from source to sink in \( Y(p+1) \). Consider first the case where every vertex of the path also lies in \( Y(p) \), and let \( m = 1 \) (i.e. \( H(p + 1) = a = m \)). We conclude that \( H(p + 1) > H(p) \). Now we want to exclude the \( v_i \)’s from \( Y(p + 1) \) = \( H(p) \) and so all the edges in \( Y(p) \) that contain the sink, but that layer is special, and contains only \( t \). Hence, if \( v_a \) is in layer of \( Y(p) \), then \( b + 1 = H(p) \) by the lemma once more, i.e. \( 2 \geq b + 1 \geq H(p) \), and therefore \( H(p + 1) > H(p) \), completing the proof of theorem 3.6.1. Image Analysis: ### Analysis of the Provided Visual Content ### 1. **Localization and Attribution:** - **Image:** Single image present on the page. - **Position:** The entire page is used for text description and mathematical proof presentation. ### 2. **Object Detection and Classification:** - **Objects Detected:** - Text paragraphs. - Titles and subtitles. - Mathematical equations. - Bulleted and numbered points. ### 4. **Text Analysis:** - **Detected Text:** - **Title:** "3.6 Layered networks" - **Content:** - Description of augmenting flow in a network, construction of new layered networks, and the MPM algorithm. - Definitions of terms such as "height of layered network". - **Theorem 3.6.1:** Details heights of layered networks in relation to the sequence of vertices. - **Lemma 3.6.1:** Mathematical proof establishing conditions for paths in layered networks. - **Significance:** - The text describes a segment of a mathematical or computational theory, likely related to network flow algorithms. It methodically outlines the process of layered network construction, followed by a theorem and its proof. - **Text Sections:** - *Augmentation Process:* Describes the methods to improve flow within the network. - *Height Definition:* Establishes the concept of network height. - *Theorem 3.6.1:* Provides a specific theorem about network path lengths. - *Lemma 3.6.1:* Contains a formal proof to support the theorem. ### 9. **Perspective and Composition:** - **Perspective:** The image is a direct top-down view of a page from a document. - **Composition:** The page is densely packed with text, organized into titles, paragraphs, and equations. Key elements are: - Top-Centered Title: "3.6 Layered networks". - Text Paragraphs: Detailed theoretical description. - Subsections: Theorem and Lemma sections. - Mathematical Symbols and Equations: Supported proofs and examples. ### 12. **Graph and Trend Analysis:** - **Graph Elements:** No graphical elements present, only text and mathematical formulas. ### Additional Aspects: #### Ablaufprozesse (Process Flows): - Describes the sequential process of creating layered networks and augmenting flow in a network, tools and proofs associated with evaluating these networks. #### Prozessbeschreibungen (Process Descriptions): - Stepwise descriptions provided in the text: 1. Creation of a new layered network. 2. Finding blocking flows. 3. Repeating the process until a maximum flow is achieved. ### Conclusion: - This content is highly specialized, discussing algorithmic processes in network theory. It combines descriptive, theorematic, and lemma-focused writing to explain and verify network flow augmentation processes and properties. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 83 Context: # 3.6 Layered networks If we remove all the edges incident to a single vertex \( v \), we will disconnect the graph. Hence the edge connectivity cannot exceed the minimum degree of vertices in the graph. However, the edge connectivity could be a lot smaller than the minimum degree as the graph of Fig. 3.8.4 shows, in which the minimum is large, but the removal of just one edge will disconnect the graph. Fig. 3.8.4: Big degree, low connectivity Finding the edge connectivity is quite an important combinatorial problem, and it is by no means obvious that network flow methods can be used on it, but they can, and here is how. Given \( G \), a graph of \( V \) vertices. We solve not just one, but \( V - 1 \) network flow problems, one for each vertex \( j = 2, \ldots, V \). Fix such a vertex \( j \). Then consider vertex \( 1 \) of \( G \) to be the source and vertex \( j \) to be the sink of a network \( X \). Replace each edge of \( G \) by two edges of \( X \), one in each direction, each with capacity \( 1 \). Now solve the network flow problem in \( X \), obtaining a maximum flow \( Q(j) \). Then the smallest of the numbers \( Q(j) \) for \( j = 2, \ldots, V \) is the edge connectivity of \( G \). We will not prove this here. As a final application of network flow, we discuss the beautiful question of determining whether or not there is a matrix of \( 0 \)s and \( 1 \)s that has given row and column sums. For instance, take a \( 6 \times 8 \) matrix whose row sums are respectively \( (5, 5, 4, 3, 5, 6) \) and whose column sums are \( (3, 4, 4, 4, 3, 3, 4, 3) \). Of course the phrase "row sums" means the same thing as "number of \( 1 \)s in each row" since we have said that the entries are only \( 0 \) or \( 1 \). Hence in general, let there be a given row sum vector \( (r_1, \ldots, r_m) \) and a column sum vector \( (s_1, \ldots, s_n) \). We ask if there exists an \( m \times n \) matrix \( A \) of \( 0 \)s and \( 1 \)s that has exactly \( r_j \) \( 1 \)s in the \( j \)th column, for each \( j = 1, \ldots, n \). The reader will not doubt have noticed that for such a matrix to exist it must surely be true that \[ r_1 + \ldots + r_m = s_1 + \ldots + s_n \] since each side counts the total number of \( 1 \)s in the matrix. Hence we will suppose that \( (3.8.1) \) is true. Next, we will construct a network \( Y \) of \( m + n + 2 \) vertices named \( s, t, r_1, \ldots, r_m, s_1, \ldots, s_n \). Here \( s \) is an edge of capacity \( r_j \), drawn from the source \( s \) to vertex \( r_j \), for each \( j = 1, \ldots, m \), and an edge of capacity \( s_i \), drawn from vertex \( s_i \) to the sink \( t \), for each \( i = 1, \ldots, n \). Finally, there are \( mn \) edges of capacity \( 1 \) drawn from each edge to each vertex \( r_j \). Next fix a maximum flow in this network. There is a \( 0 \)–\( 1 \) matrix with the given row and column sum vectors if and only if a maximum flow saturates every edge outbound from the source, that is, if and only if a maximum flow has value equal to the right side of equation (3.8.1). If such a flow exists then a matrix \( A \) of the desired kind is constructed by putting \( a_{ij} \), equal to \( 1 \) if the flow in the edge from \( r_j \) to \( s_i \) is \( 1 \), and \( 0 \) otherwise. --- * *Even, S. and R. E. Tarjan, "Network flow and testing graph connectivity," SIAM J. Computing 4 (1975), 507-518.* 79 Image Analysis: ### Image Analysis #### 1. **Localization and Attribution:** - **Image Number:** Image 1 - **Location:** Centered within the text, occupying the middle part of the document. #### 2. **Object Detection and Classification:** - **Identified Objects:** - Two geometric graph diagrams consisting of vertices and edges. **Key Features:** - The left diagram: - A structure formed by vertices (nodes) and edges (lines connecting the nodes). - Appears to be a form of a network graph with multiple connections indicating high degree. - The right diagram: - Another network graph but with fewer connections indicating low connectivity. - Features fewer edges compared to the left diagram. #### 3. **Scene and Activity Analysis:** - **Entire Scene Description:** - The document discusses graph theory, particularly focusing on network connectivity and edge connectivity. - **Activities:** - Mathematical analysis and explanation of network flow problem-solving. #### 4. **Text Analysis:** - **Detected Text:** - Visible text above and below the graph diagrams detailing academic discussion on network connectivity. **Text Content and Significance:** - Discusses minimum degree of vertices in a graph and edge connectivity. - Example illustrations provided in Fig. 3.8.4 (the graphs) demonstrate big degree with low connectivity, emphasizing edge removal consequences on network disconnection. #### 5. **Diagram and Chart Analysis:** - **Data and Trends:** - The diagrams do not contain numerical data but visually represent theoretical properties in graph theory. - **Axes, Scales, and Legends:** - Not applicable as the graphs are abstract representations without axes or legends. - **Key Insights:** - Demonstrates that high-degree graphs can still have low edge connectivity, underlining nuances in graph theory principles. #### 6. **Product Analysis:** - **Products Depicted:** - Not applicable. #### 7. **Anomaly Detection:** - **Possible Anomalies:** - No anomalies detected; typical representation for academic text on the topic. #### 8. **Color Analysis:** - **Color Composition:** - The image is in grayscale, typical for academic or mathematical text. - Black text and lines on a white background. #### 9. **Perspective and Composition:** - **Image Perspective:** - Standard bird's-eye view for clear visibility of the textual and graphical content. - **Composition:** - Centrally placed graphs ensure easy cross-referencing with the explanatory text surrounding them. #### 10. **Contextual Significance:** - **Overall Contribution:** - The graphs serve to illustrate complex concepts discussed in the text. - They visually anchor the textual explanations, making the abstract theoretical content more tangible. #### 11. **Metadata Analysis:** - **Metadata Information:** - Not available from the image content provided. #### 12. **Graph and Trend Analysis:** - **Trend Analysis:** - Emphasizes how edge connectivity is distinct from vertex degree in the structure of network graphs. #### 13. **Graph Numbers:** - **Data Points:** - Not applicable as the diagrams are conceptual without numerical axes or labeled vertices and edges. ### Additional Aspects: - **Ablaufprozesse (Process Flows):** - Not applicable. - **Prozessbeschreibungen (Process Descriptions):** - Detailed description of network flow problem-solving including matrix construction and edge capacity analysis is present in the surrounding text. - **Typen Bezeichnung (Type Designations):** - Type designation involves categorizing graphs as having either high-degree with low connectivity or low-degree with high connectivity, illustrated by the diagrams. - **Trend and Interpretation:** - The trend indicates that removing certain edges significantly impacts overall connectivity despite high vertex degree. - **Tables:** - No tables present to analyze. This detailed analysis provides insights into the graphical and textual content, offering a comprehensive view of its academic significance in the study of network connectivity within graph theory. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 88 Context: # Chapter 4: Algorithms in the Theory of Numbers ## Theorem 4.2.1 (A worst-case complexity bound for the Euclidean algorithm) Given two positive integers \( a, b \). The Euclidean algorithm will find their greatest common divisor after a cost of at most \( \lfloor 2 \log_2 M \rfloor + 1 \) integer divisions, where \( M = \max(a, b) \). Before we prove the theorem, let's return to the example \( (a, b) = (13, 21) \) of the display (4.2.2). In that case \( M = 21 \) and \( 20 \log_2 M + 1 = 9.78 \). The theorem asserts that the g.c.d. will be found after about 9 operations. In fact, it was found after 7 operations in that case. ## Proof of Theorem Suppose first that \( a \geq b \). The algorithm generates a sequence \( a_0, a_1, \ldots \) where \( a_0 = a, a_1 = b \), and \[ a_{j+1} = a_j \mod a_{j-1} \quad (j \geq 1). \] By lemma 4.2.1, \[ a_{j+1} \leq \frac{a_j - 1}{2} \leq \frac{a_j}{2}. \] Then, by induction on \( j \), it follows that \[ a_{2j} \leq \frac{a_0}{2^j} \quad (j \geq 0). \] \[ a_{2j+1} \leq \frac{a_1}{2^j} \quad (j \geq 0). \] And so, \[ a_j \leq 2^{-\lceil j/2 \rceil} M \quad (r = 0, 1, 2, \ldots). \] Obviously, the algorithm has terminated if \( a_r < 1 \), and this will have happened when \( r \) is large enough so that \( 2^{-r/2} M < 1 \), i.e., if \( r > 2 \log_2 M \). If \( r < 1 \) then after 1 operation we will be in the case \( a_r < b \) that we have just discussed, and the proof is complete. The upper bound in the statement of theorem 4.2.1 can be visualized as follows. The number \( \log_2 M \) is almost exactly the number of bits in the binary representation of \( M \) (what is 'exactly' that number of bits?). Theorem 4.2.1 therefore asserts that we can find the g.c.d. of two integers in a number of operations that is at most a linear function of the number of bits that it takes to represent the two numbers. In brief, we might say that the time \( T = O(\text{bits}) \); in the case of Euclid's algorithm. ## Exercises for Section 4.2 1. Write a nonrecursive program, in Basic or Fortran, for the g.c.d. Write a recursive program, in Pascal or a recursive language of your choice, for the g.c.d. 2. Choose 1000 pairs of integers \( (m, n) \), at random between 1 and 1000. For each pair, compute the g.c.d. using a recursive program and a nonrecursive program. (a) Compare the execution times of the two programs. (b) There is a theorem to the effect that the probability that two random integers have g.c.d. = 1 is \( 6/\pi^2 \). What, precisely, do you think that this theorem means by 'the probability that two'? What percentage of the 1000 pairs that you chose had g.c.d. = 1? Compare your observed percentage with \( 100 - (6/\pi^2) \). 3. Find out when Euclid lived, and with exactly what words he described his algorithm. 4. Write a program that will light up a pixel in row \( r \) and column \( n \) of your CRT display if and only if \( \text{gcd}(m, n) = 1 \). Run the program with enough values of \( m \) and \( n \) to fill your screen. If you see any interesting visual patterns, try to explain them mathematically. 5. Show that if \( m \) and \( n \) have a total of \( b \) bits, then Euclid's algorithm will not need more than \( 2B + 3 \) operations before reaching termination. Image Analysis: ### Image Analysis #### 1. Localization and Attribution - **Image 1**: - The entire content is found on a single page. #### 2. Object Detection and Classification - **Image 1**: - Objects: Mainly text and mathematical symbols. #### 3. Scene and Activity Analysis - **Image 1**: - Scene: A page from a book or document. - Activities: Presentation of a theorem, its proof, and exercises related to the theorem. #### 4. Text Analysis - **Image 1**: - The text discusses "Chapter 4: Algorithms in the Theory of Numbers" and includes "Theorem 4.2.1" on the worst-case complexity bound for the Euclidean algorithm. - The proof of the theorem follows and then exercises for the reader to practice. #### 5. Diagram and Chart Analysis - No diagrams or charts are present. #### 8. Color Analysis - **Image 1**: - Dominant Color: Black text on a white background. This enhances readability and ensures the focus remains on the textual content. #### 9. Perspective and Composition - **Image 1**: - Perspective: The image is taken from a straight-on view, similar to reading a page of a book. - Composition: The page is divided into sections - header, theorem presentation, proof, and exercises. #### 10. Contextual Significance - **Image 1**: - The image is likely part of an educational book on algorithms, focusing particularly on number theory. - It plays a crucial role in explaining mathematical concepts and providing exercises for deeper understanding. #### 13. Graph Numbers - No graphs are present. ### Additional Aspects #### **Prozessbeschreibungen (Process Descriptions)** - **Theorem Proof Process**: - The theorem text initiates with preconditions and definitions. - It explains the step-by-step process of algorithm derivations and proofs using mathematical reasoning and lemmas. - The theorem is summarized, asserting the number of operations needed based on the complexity. #### **Exercises Descriptions**: - Exercises encourage writing nonrecursive and recursive programs, analyzing gcd calculations, and exploring historical context and theoretical implications of Euclid’s algorithm. #### **Typen Bezeichnung (Type Designations)** - Types or categories mentioned relate to different processes—recursive, nonrecursive, the algorithm’s complexity, and mathematical properties. ### Conclusion This page from a mathematical text features a comprehensive breakdown and proof of a theorem on the Euclidean algorithm’s complexity. It includes exercises for practical application and deeper understanding. The layout and structure are designed to facilitate learning and comprehension of theoretical algorithms in number theory. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 94 Context: #### Additional Aspects: - **Ablaufprozesse (Process Flows):** - **Addition Process:** Describes how to add ordered pairs in \( Z_6 \). - **Multiplication Process:** Describes how to multiply ordered pairs in \( Z_6 \). - **Prozessbeschreibungen (Process Descriptions):** - Detailed steps on arithmetic operations in modular arithmetic contexts. - **Typen Bezeichnung (Type Designations):** - Identification and classification of mathematical objects like primitive roots, cyclic groups, and \( Z_n \) sets. ### Overall Observations: This page from the document aims to educate readers on specific number theory topics, explaining the theoretical foundations and providing practical arithmetic examples. The content is structured in a logical and sequential manner to build comprehension, with emphasis on key theorems and their implications in the field of number theory. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 94 Context: # Chapter 4: Algorithms in the Theory of Numbers A number (like 5 in the example) whose powers run through all elements of \( U_n \) is called a primitive root modulo \( n \). Thus 5 is a primitive root modulo 18. The reader should now find, from Table 4.5.2, all of the primitive roots modulo 18. Alternatively, since the order of a group element must always divide the order of the group, every element of \( U_n \) has an order that divides \( \phi(n) \). The primitive roots are exactly the elements, if they exist, of maximum possible order \( \phi(n) \). We pause to note two corollaries of these remarks, namely ## Theorem 4.5.1 (‘Fermat’s theorem’) For every integer \( b \) that is relatively prime to \( n \) we have \[ b^{\phi(n)} \equiv 1 \quad (\text{mod } n). \tag{4.5.1} \] In particular, if \( n \) is a prime number then \( \phi(n) = n - 1 \), and we have ## Theorem 4.5.2 (‘Fermat’s little theorem’) If \( n \) is prime, then for all \( a \neq 0 \) (mod \( n \)) we have \( a^{\phi(n)} \equiv 1 \) (mod \( n \)). It is important to know which groups \( U_n \) are cyclic, i.e., which integers \( n \) have primitive roots. The answer is given by ## Theorem 4.5.3 An integer \( n \) has a primitive root if and only if \( n = 2 \) or \( n = p^k \) (for an odd prime \( p \) and \( k \) a non-negative integer). Hence, the groups \( U_n \) are cyclic for precisely such values of \( n \). The proof of theorem 4.5.3 is a little lengthy and is omitted. It can be found, for example, in the book of LeVeque that is cited at the end of this chapter. According to theorem 4.5.3, for example, \( U_6 \) is cyclic, which we have already seen, and \( U_{12} \) is not cyclic, which the reader should check. Further, we state as an immediate consequence of theorem 4.5.3: ## Corollary 4.5.3 If \( n \) is an odd prime, then \( U_n \) is cyclic, and in particular the equation \( x^2 = 1 \) in \( U_n \) has only the solutions \( x = \pm 1 \). Next we will discuss the fact that if the integer \( n \) can be factored in the form \( n = p_1^{k_1} p_2^{k_2} \cdots p_m^{k_m} \), the full ring \( \mathbb{Z}_n \) can also be factored, in a certain sense, as a 'product' of \( \mathbb{Z}_{p_1^{k_1}}, \mathbb{Z}_{p_2^{k_2}}, \ldots, \mathbb{Z}_{p_m^{k_m}} \). Let’s take \( \mathbb{Z}_n \) as an example. Since \( 6 = 2 \cdot 3 \), we expect that somehow \( \mathbb{Z}_6 \cong \mathbb{Z}_2 \times \mathbb{Z}_3 \). What this means is that we consider ordered pairs \( (x_1, x_2) \), where \( x_1 \in \mathbb{Z}_2 \) and \( x_2 \in \mathbb{Z}_3 \). Here is how we do the arithmetic with the ordered pairs. First, \( (x_1, x_2) + (y_1, y_2) = (x_1 + y_1, x_2 + y_2) \), in which the two ‘+’ signs on the right are different: the \( x_1 + y_1 \) is done in \( \mathbb{Z}_2 \) while the \( x_2 + y_2 \) is done in \( \mathbb{Z}_3 \). Second, \( (x_1, y_1) \cdot (y_1, y_2) = (x_1 \cdot y_1, x_2 \cdot y_2) \), in which the two multiplications on the right side are different: the \( x_1 \cdot y_1 \) is done in \( \mathbb{Z}_2 \) and the \( x_2 \cdot y_2 \) is done in \( \mathbb{Z}_3 \). Therefore the 6 elements of \( \mathbb{Z}_6 \) are \[ (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2). \] A sample of the addition process is \[ (0, 2) + (1, 1) = (0 + 1 + 2 + 1) = (1, 0). \] Where the addition of the first components was done modulo 2 and of the second components was done modulo 3. A sample of the multiplication process is \[ (1, 2) \cdot (1, 2) = (1 \cdot 1, 1 \cdot 2) = (1, 1). \] In which multiplication of the first components was done modulo 2 and of the second components was done modulo 3. In full generality, we can state the factorization of \( \mathbb{Z}_n \) as Image Analysis: ### Text Analysis: #### **Image 1:** - **Location on Page:** Top half and extending to the bottom half of the page. - **Text Detected:** 1. **Chapter Title:** - *Chapter 4: Algorithms in the Theory of Numbers* 2. **Main Content:** - The main text discusses the concepts of primitive roots modulo \( n \) with relevant theorems and corollaries stated clearly. 3. **Theorems and Corollaries:** - **Theorem 4.5.1** (Fermat’s theorem): "For every integer \( a \) that is relatively prime to \( n \) we have \( a^{\varphi(n)} \equiv 1 \) (mod \( n \))." - **Theorem 4.5.2** (Fermat’s little theorem): "If \( n \) is prime, then for all \( a \not\equiv 0 \) (mod n) we have \( a^{n-1} \equiv 1 \) (mod \( n \))." - **Theorem 4.5.3**: Discusses the conditions under which an integer \( n \) has a primitive root. - **Corollary 4.5.3.a**: States conditions for \( U_n \) (the multiplicative group modulo \( n \)) to be cyclic. 4. **Addition and Multiplication Processes:** - Describes operations within \( Z_6 \) using ordered pairs, specifically detailing summation and multiplication processes with examples. 5. **Example and General Factorization:** - Describes ordered pairs in \( Z_6 \) and provides specific examples of addition and multiplication processes for clarity. ### Object Detection and Classification: #### **Image 1:** - **Objects Detected:** - **Text Blocks:** Significant portions of text focused on theoretical formulations in number theory. - **Mathematical Symbols and Equations:** Various mathematical notations, equations, and symbols including summation and product notation, modular arithmetic symbols, and Greek letters like \( \varphi(n) \). ### Scene and Activity Analysis: #### **Image 1:** - **Scene Description:** - The image is a scanned page from a mathematical textbook. - The layout includes a structured presentation with headers, explanations, theorem statements, corollaries, and examples. - **Activities:** - The main activity involves conveying complex mathematical concepts related to number theory through the presentation of theorems and examples. ### Diagram and Chart Analysis: #### **Image 1:** - No diagrams or charts are present in this image. ### Color Analysis: #### **Image 1:** - **Color Composition:** - Predominantly black text on a white background. - The high contrast between text and background aids readability. ### Perspective and Composition: #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 94 Context: #### **Image 1:** - **Perspective:** - The image is a direct scan of a textbook page, taken from a straight, birds-eye view. - **Composition:** - Organized in a standard scientific literature format. - Includes clear section headers, theorem statements in bold or italic, and detailed explanations. ### Contextual Significance: #### **Image 1:** - **Context:** - This image is likely part of a mathematical textbook aimed at discussing algorithms in the field of number theory. - The theorems and corollaries presented contribute crucially to the understanding of primitive roots and cyclic groups. - **Contribution to Overall Message:** - The image aims to provide foundational mathematical theory (primitive roots, cylic groups) with rigor and clarity. - Example calculations and theorems ensure a comprehensive understanding of the topics. ### Conclusion: This page from the textbook focuses on advanced number theory concepts. It introduces important theorems related to primitive roots and cyclic groups and illustrates these concepts with examples in \( Z_6 \). The clear, structured presentation of information fosters a deep understanding of these mathematical principles. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 95 Context: In the contrary case we would have x and x' both corresponding to (b1, b2, ..., br) say. But then \( x - x'\) ≡ 0 (mod each of the mi). Hence \( x - x'\) is divisible by \( M = m_1 m_2 \cdots m_r \). But \( | x' | ≤ M \), hence \( x = x' \). **Proof 2:** Here’s how to compute a number x that satisfies the simultaneous congruences \( x ≡ b_i \mod m_i (i = 1, r)\). First, by the extended Euclidean algorithm we can quickly find \( t_1, t_2, ..., t_r\) all \( x_i t_i mod m_i | by(i) = 1\) for j - 1 per t. For each \( x = b_1 + ... + I^(t_1, ..., t_n)\). we always have, \( x = \sum_{j=1}^r b_j (M/m_j)y_j (\mod M) \) where the first congruence holds because each \( M / m_j (j \neq k) \) is divisible by \( m_j \) and the second congruence follows since \( t_k (M/ m_k) + 1 = t_u, t_i \equiv m_i (\mod m_k)\) completing the second proof of the Chinese Remainder Theorem. Now the proof of theorem 4.5.4 follows easily, and is left as an exercise for the reader. The factorization that is described in detail in theorem 4.5.4 will be written symbolicially as: \( \mathbb{Z}_n = \bigotimes \\ \mathbb{Z}_{p_i^{r_i}}.\\) (4.5.2) The factorization (4.5.2) of the ring \( \mathbb{Z}_2 \) induces a factorization \( U, \bigotimes \\ U\\U \\ r^{-1}.) #### 9. Perspective and Composition - **Perspective:** The perspective is straightforward, presenting a flat, text-heavy image, typical of scanned book pages. - **Composition:** The composition includes standard formatting for a mathematical text, with theorems, proofs, and equations clearly divided into sections. #### 12. Graph and Trend Analysis - There are no graphs, charts, or data trends presented in the image. #### Conclusion - The content of the image is mathematical, focused on ring theory, specifically addressing isomorphisms and the Chinese Remainder Theorem. It includes theorems, proofs, and equations typical of an advanced mathematical text. - The context suggests an educational or reference document, likely part of a mathematical textbook, aiding in understanding complex algebraic structures. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 95 Context: # 4.5 Interlude: the ring of integers modulo n ## Theorem 4.5.4 Let \( \pi = \prod_{j=1}^r p_j^{\alpha_j} \). The mapping which associates with each \( z \in \mathbb{Z} \), the r-tuple \( (z_1, z_2, \ldots, z_r) \), where \( z_i \equiv z \mod p_i^{\alpha_i} \) (for \( i = 1, \ldots, r \)), in which - \( A) \ z_i \in \mathbb{Z}_{p_i^{\alpha_i}} \) (for \( i = 1 \) and) - \( B) \ (z_1, z_2, \ldots, z_r) \) = \( (z_1 + y_1, z_2 + y_2) \) and - \( C) \ (z_1, z_2, \ldots, z_r) \) = \( (x_1, x_2, \ldots, x_r) \) - \( D) \ In (b), the \( i \)-th sign on the right side is the addition operation of \( \mathbb{Z}_{p_i^{\alpha_i}} \), for each \( i = 1, \ldots, r \). The proof of theorem 4.5.4 follows at once from the following: ## Theorem 4.5.5 (‘The Chinese Remainder Theorem’) Let \( m_i \) (for \( i = 1, \ldots, r \)) be pairwise relatively prime positive integers, and let \[ M = m_1 m_2 \cdots m_r. \] Then the mapping that associates with each integer \( x \) (where \( 0 \leq s < M - 1 \)) the r-tuple \( (b_1, b_2, \ldots, b_r) \), where \( b_i \equiv x \mod m_i \) (for \( i = 1, \ldots, r \)), is a bijection between \( \mathbb{Z}/M\mathbb{Z} \) and \( \mathbb{Z}/m_1\mathbb{Z} \times \cdots \times \mathbb{Z}/m_r\mathbb{Z} \). A good theorem deserves a good proof. An outstanding theorem deserves two proofs, at least, one existential, and one constructive. So here are one of each for the Chinese Remainder Theorem. ### Proof 1 We must show that each r-tuple \( (b_1, \ldots, b_r) \), such that \( 0 \leq k < m_i \) (for \( i = 1, \ldots, r \)) occurs exactly once. There are obviously \( M \) such vectors, and so it will be sufficient to show that each of them occurs at most once as the image of some \( x \). In the contrary case we would have \( x \) and \( x' \) both corresponding to \( (b_1, b_2, \ldots, b_r) \), say. But then \( x - x' \equiv 0 \mod m_i \) for the \( m_i \). Here \( x - x' < M \), hence \( x = x' \). ### Proof 2 Here’s how to compute a number \( x \) that satisfies the simultaneous congruences \( x \equiv b_i \mod m_i \) (for \( i = 1, \ldots, r \)). First, by the extended Euclidean algorithm we can quickly find \( u_i, v_i, \ldots, u_r \), such that \( t_k(M/m_j) + u_j m_j \equiv 1 \) for \( j = 1, \ldots, r \). Then we claim that the number \[ x = \sum_{j=1}^{r} b_j t_j(M/m_j) \] satisfies all of the given congruences. Indeed, for each \( k = 1, \ldots, r \) we have \[ x \equiv \sum_{j=1}^{r} b_j t_j(M/m_j) \equiv b_k \ (mod \ m_k) \] where the first congruence holds because each \( M/m_j \) (for \( j \neq k \)) is divisible by \( m_k \), and the second congruence follows since \( t_k(M/m_k) = 1 - u_k m_k \equiv 1 \mod m_k \), completing the second proof of the Chinese Remainder Theorem. Now the proof of theorem 4.5.4 follows easily, and is left as an exercise for the reader. The factorization that is described in detail in theorem 4.5.4 will be written symbolically as \[ \mathbb{Z}_n \cong \bigoplus_{i=1}^r \mathbb{Z}_{p_i^{\alpha_i}} \tag{4.5.2} \] The factorization (4.5.2) of the ring \( \mathbb{Z} \) induces a factorization \[ U_n \cong \bigoplus_{i=1}^r U_{p_i^{\alpha_i}} \tag{4.5.3} \] Image Analysis: ### Analysis of the Attached Visual Content #### 1. Localization and Attribution - The page consists of a single image with mathematical text. - This image will be referred to as **Image 1**. #### 4. Text Analysis - The page contains advanced mathematical text, likely from a textbook on number theory or abstract algebra. Here is the extracted text: **Theorem 4.5.4:** Let \( n = p_1^{r_1} p_2^{r_2} \dots p_k^{r_k} \). The mapping which associates with each \( z \in \mathbb{Z} \), the \( r \)-tuple \((z_1, z_2, \dots, z_r)\), where \( z_i \equiv z \mod p_i^{r_i} \) (\( i = 1, \dots, r \)), is a ring isomorphism of \( \mathbb{Z}_n \) with the ring of \( r \)-tuples \((z_1, z_2, \dots, z_r) \) in which (a) \( z_i \in \mathbb{Z}_{p_i^{r_i}} \) (\( i = 1, \ldots, r \)) and (b) \((z_1 + x_1, \dots, z_r + y_r) = (z_1 + y_1, \dots, z_r + y_r)\) and (c) \((z_1 \dots z_r) \cdot (y_1 \dots y_r) = (z_1 \cdot y_1, \dots, z_r \cdot y_r) \) (d) In (b), the ith + sign on the right side is the additive operation of \( Z_{p_i^{r_i}} \) and in (e) the ith * sign is the multiplicative operation of \( Z_{p_i^{r_i}} \), for each \( i = 1, \dots, r \). **Theorem 4.5.5 (‘The Chinese Remainder Theorem’):** Let \( m_i (\equiv 1, \ldots, r) \) be pairwise relatively prime positive integers, and let: \( M = m_1 m_2 \ldots m_r \) Then the mapping that associates with each integer \( x (0 \leq x \leq M-1) \), the r-tuple \((b_1, b_2, \dots, b_r)\), where \( b_i \equiv x \mod m_i)(i = 1, \ldots, r \), is a bijection between \( \mathbb{Z}_M \) and \( \mathbb{Z}_{m_1} \times \cdots \times \mathbb{Z}_{m_r} \). A good theorem deserves a good proof. An outstanding theorem deserves two proofs, at least one existential, and one constructive. So here are one of each for the Chinese Remainder Theorem. **Proof 1:** We must show that each r-tuple \((b_1, \ldots, b_r)\) such that \( 0 \leq b_i < m_i (i = 1, \dots, r)\) occurs exactly once. There are obviously M such vectors and so it will be sufficient to show that each of them occurs at most once as the image of some x. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 95 Context: 2. **Text Analysis:** - **Title and Sections:** - The title of this section is "4.5 Interlude: the ring of integers modulo n." - **Theorems:** - **Theorem 4.5.4:** \[ \text{Let } n = p_1^{r_1} p_2^{r_2} \cdots p_k^{r_k}. \text{ The mapping which associates with each } x \in \mathbb{Z}, \, \text{the } r\text{-tuple } (x_1, x_2, ..., x_r), \] where \(x_i = x \mod p_i^{r_i} \) (i = 1,...,r), is a ring isomorphism of \( \mathbb{Z}_n \) with the ring of \( r \) -tuples \( (x_1, x_2, ..., x_r) \) in which: - (a) \( x_i \in \mathbb{Z}_{p_i^{r_i}} \) (i = 1,...,r) and - (b) \( (x_1, ..., x_r) + (y_1, ..., y_r) = (x_1 + y_1, ..., x_r + y_r ) \) - (c) \( (x_1, ..., x_r) \cdot (y_1, ..., y_r) = (x_1 \cdot y_1, ..., x_i \cdot y_i) \) - (d) In (b), the \(i\)th \( + \) sign on the right side is the addition operation of \( \mathbb{Z}_{p_i^{r_i}} \) and in (c) the \(i\)th \( \, \cdot \) sign is the multiplication operation of \( \mathbb{Z}_{p_i^{r_i}} \), for each i = 1,2,...,r. - **Proof:** The proof of theorem 4.5.4 follows at once from the previous theorem. - **Theorem 4.5.5 ('The Chinese Remainder Theorem'):** \[ \text{Let } m_i (i = 1,...,r) \, \text{be pairwise relatively prime positive integers, and let} \] \[ M = m_1m_2...m_r. \] Then the mapping that associates with each integer \(x \, (0 \leq x \leq M - 1) \) the \(r\)-tuple \((b_1, ..., b_r), \, \text{where } \, b_i = x \mod m_i (i = 1,...,r), \text{ is a bijection between } \mathbb{Z}_M \text{ and } \mathbb{Z}_{m_1} \times ... \times \mathbb{Z}_{m_r}. - **Proof 1:** - We must show that each \( r \)-tuple \( (b_1, ..., b_r) \) such that \( 0 \leq b_i < m_i (i = 1,...,r) \) occurs exactly once. - There are obviously \( M \) such vectors, and so it will be sufficient to show that each of them occurs at most once as the image of some \( x \). - In the contrary case, we would have \( x \) and \( x' \) both corresponding to \((b_1, b_2, ..., b_r)\). - But then \( x - x' \equiv 0 \mod \, \text{each of} \, m_i. \text{ Hence } x - x' \text{ is divisible by } M = m_1 m_2 ... m_r. \, \text{But } 0 \leq x' < M, \text{ hence } x = x'. - **Proof 2:** - Here's how to compute a number \( x \) that satisfies the simultaneous congruences \( x \equiv b_i \mod m_i \, (i = 1,....,r). - First, by the extended Euclidean algorithm we can quickly find \( t_1, t_2, ..., t_r \), such that \( t_i(M/m_i) + u_im_i = 1 \) for j = 1, ..., r. - Then we claim that the number \[ x = \sum_{j=1}^{r} b_j t_j (M/m_j) \text{ satisfies all of the given congruences.}\] - Indeed, for each \( k = 1, ..., r \) we have: \[ x = \sum_{j=1}^{r} b_j t_j (M/m_j) \] \[ \equiv b_k t_k (M/m_k) \mod m_k \equiv b_k (mod \, m_k) \] - where the first congruence holds because \( t_j (M/m_j), j \neq k) \equiv 0 \mod m_k \) is divisible by \( m_k \), and the second congruence follows since \[ t_k(M/m_k) = 1 - u_k m_k \equiv 1 \mod m_k, \] completing the second proof of the Chinese Remainder Theorem. - **Conclusion:** Now the proof of theorem 4.5.4 follows easily, and is left as an exercise for the reader. - The factorization that is described in detail in theorem 4.5.4 will be written symbolically as: \[ \mathbb{Z}_n \cong \bigoplus_{i=1}^{r} \mathbb{Z}_{p_i^{r_i}}. (4.5.2) \] - The factorization (4.5.2) of the ring \(\mathbb{Z}_n\) induces a factorization: \[ U_{n} \cong \bigoplus_{i=1}^{r} U_{p_i^{r_i}}. (4.5.3) \] 3. **Text Analysis Continued:** - The primary text discusses certain theorems in number theory, specifically concerning modular arithmetic and the Chinese Remainder Theorem. - There is a mathematical proof provided for theorem 4.5.5. 4. **Metadata Analysis:** - No metadata is available in the image. 5. **Prozessbeschreibungen (Process Descriptions):** - The process described in theorem 4.5.5 proof 2 provides a method to find a number \( x \) that satisfies multiple congruences using the extended Euclidean algorithm. 6. **Diagram and Chart Analysis:** - There are no diagrams or charts included in the image. 7. **Product Analysis:** - Not applicable as there are no products depicted in the image. 8. **Anomaly Detection:** - There are no anomalies or unusual elements detected in the image. 9. **Color Analysis:** - The page appears to be monochromatic with black text on a white background, typical for a textbook or academic paper. 10. **Perspective and Composition:** - The image is a straightforward scan of a page from a document, presenting the information in a conventional format with clearly labeled theorems and proofs. 11. **Contextual Significance:** - The image contributes to the understanding of number theory, particularly the concepts surrounding modular arithmetic and the Chinese Remainder Theorem. 12. **Graph Numbers:** - Not applicable as there are no graphs present. 13. **Ablaufprozesse (Process Flows):** - The image includes step-by-step proofs which can be seen as process flows, explaining each step in the logical process. 14. **Typen Bezeichnung (Type Designations):** - Types or categories include integers, theorems, proofs, and modular arithmetic concepts. 15. **Trend and Interpretation:** - The trend and interpretation focus on modular arithmetic and its implications in number theory. 16. **Tables:** - Not applicable as there are no tables present. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 99 Context: # 4.7 Goodness of pseudoprimality test ## Lemma 4.7.1 The order of each element of \( U_n \) is a divisor of \( e' = \text{lcm}(\phi(i) : i = 1, \ldots, s) \). **Proof:** From the product representation (4.5.3) of \( U_n \), we find that an element of \( U_n \) can be regarded as an \( s \)-tuple of elements from the cyclic groups \( U_{d_i} \), \( (i = 1, \ldots, s) \). The order of \( x \) is equal to the lcm of the orders of the elements of the \( s \)-tuple. For each \( i = 1, \ldots, s \), the order of the \( i \)-th element is a divisor of \( \phi(i) \), and therefore the order of \( x \) divides the item shown above. ## Lemma 4.7.2 Let \( n > 1 \) be odd. For each element of \( U_n \), let \( C(x) = \{ 1, x, \ldots, x^{e-1} \} \) denote the cyclic group that it generates. Let \( B \) be the set of all elements of \( U_n \) for which \( C(y) \) either contains \(-1\) or odd order (i.e., \( \text{ord}(y) \) odd). If \( B \) generates the full group \( U_n \), then \( n \) is a prime power. **Proof:** Let \( e' = 2^m \), where \( m \) is odd and \( e' \) is as shown in lemma 4.7.1. Then there is a \( j \) such that \( \phi(n) \) is divisible by \( 2^j \). Now if \( n \) is a prime power, we are finished. So we can suppose that \( n \) is divisible by more than one prime number. Since \( \phi(n) \) is an even number for all \( n > 2 \) (proof?), the number \( e' \) is even. Hence \( t > 0 \) and we can define a mapping \( \psi \) of the group \( U_n \) to itself by \[ \psi(x) = x^{2^{m-1}} \quad (x \in U_n) \] (note that \( \psi \) is its own inverse). This is in fact a group homomorphism. For each \( x \in U_k \): \( \psi(xy) = \psi(x)\psi(y) \). Let \( B \) be as in the statement of lemma 4.7.2. For each \( x \in B \), \( \psi(x) \in B \) and \[ \psi^2(x) = \psi(x). \] Since \( \psi(y) \) is an element of \( C(y) \) whose square is 1, \( \psi(y) \) has order 1 or 2. Hence if \( \psi(y) \neq 1 \), it is of order 2. If the cyclic group \( C(y) \) is of odd order then it contains \(-1\). It then can contain no other element of order 2, so \( \psi(y) = -1 \) in this case. Hence for every \( x \in B \), \( \psi(x) = 1 \). Suppose \( B \) generates the full group \( U_n \). Then not only for every \( x \in B \) but for every \( z \in U_n \) is true that \( \psi(z) = 1 \). Suppose \( n \) is not a prime power. Then \( s > 1 \) in the factorization (4.5.2) of \( U_n \). Consider the element \( v \in U_n \), which, when written out as an \( s \)-tuple according to that factorization, is of the form \[ v = (1, 1, \ldots, 1, y, 1, \ldots, 1) \] where the \( y \) is in the \( j \)-th component, \( y \in U_k \) (recall that \( j \) is described above, in the second sentence of this proof). We can suppose \( y \) to be an element of order exactly \( 2 \) in \( U_n \), since \( U_k \) is cyclic. Consider \( \psi(y) \). Clearly \( \psi(y) \) is not 1, for otherwise the order of \( y \), namely \( 2^{1} \), would divide \( 2^{m-1} \), which is impossible because \( m \) is odd. Also, \( \psi(y) \) is not \(-1\), because the element \(-1\) of \( U_n \) is represented uniquely by the \( s \)-tuple all of whose entries are \(-1\). Thus \( y \) is neither 1 nor \(-1\), which contradicts the italicized assertion above. Hence \( s = 1 \) and \( n \) is a prime power, completing the proof. Now we can prove the main result of Solovay, Strassen and Rabin, which asserts that Test 4 is good. ## Theorem 4.7.1 Let \( B' \) be the set of integers \( m \) such that \( (n, m) \) returns ‘inconclusive’ in Test 4. (a) If \( B' \) generates \( U_n \), then \( n \) is prime. (b) If \( B' \) consists of at most half of the integers in \( [1, n-1] \). **Proof:** Suppose \( B' \) and let \( m \) be the odd part of \( n - 1 \). Then either \( m \equiv 1 \mod 2^{r} - 1 \) for some \( i \in [0, n-1] \). In the former case the cyclic subgroup \( C(y) \) has odd order, since \( m \) is odd, and in the latter case \( C(y) \) contains \(-1\). Image Analysis: ### Analysis of Attached Visual Content: **1. Localization and Attribution:** - The attachment is a single-page document. - The document contains a theorem, lemmas, proofs, and relevant mathematical symbols and notation. **2. Text Analysis:** - **Extracted Text:** - **Lemma 4.7.1:** "The order of each element of \(U_n\) is a divisor of \(e' = \text{lcm}\{\phi(n_i) : i = 1, s\}.\)" - This lemma and its proof discuss the order of elements in the group \(U_n\) and how it relates to the least common multiple (LCM) of certain Euler's totient function values. - **Lemma 4.7.2:** "Let \(n > 1\) be odd. For each element \(x\) of \(U_n\), let \(C(x)\) denote the cyclic group that it generates. Let \(B\) be the set of all elements \(x\) of \(U_n\) for which \(C(x)\) either contains \(-1\) or has odd order (\(x\) odd). If \(B\) generates the full group \(U_n\), then \(n\) is a prime power." - This lemma and its proof deal with the structure of the group \(U_n\) and the properties of its elements generating certain subgroups. - **Theorem 4.7.1:** "Let \(B'\) be the set of integers \(b\) such that \(b\) (mod \(n\)) returns `inconclusive` in Test 4. If \(B'\) generates \(U_n\), then \(n\) is prime. (b) If \(n\) is composite then \(B'\) consists of at most half of the integers in \([1, n-1]\)." - The theorem proposes conditions under which \(n\) can be determined to be prime or composite based on the set \(B'\), linking group-theoretic properties with primality testing. - **Significance:** - The text is primarily focused on exploring properties of the group \(U_n\) in the context of pseudoprimality tests, which are used in number theory and cryptography to determine if a number is prime. **5. Diagram and Chart Analysis:** - No diagrams or charts are included in the document. **12. Graph and Trend Analysis:** - The document does not contain any graphs. **Additional Aspects to Include:** **Ablaufprozesse (Process Flows):** - The document outlines logical steps in proofs related to group theory and number theory, but no formal process flows are depicted. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 99 Context: **Prozessbeschreibungen (Process Descriptions):** - The proofs describe iterative and logical processes related to mathematical properties and how they lead to conclusions about the group \(U_n\) and primality. **Typen Bezeichnung (Type Designations):** - Types and categories include: - **Groups:** \(U_n\) - **Subgroups:** \(C(x)\), \(B\), and \(B'\) - **Mathematical Functions:** Euler's totient function \(\phi\) - **Mathematical Concepts:** Order, cyclic groups, prime power **Trend and Interpretation:** - The lemmas and theorem develop a trend in understanding how the structure and properties of \(U_n\) can influence and be used in primality testing. Specifically, it interprets the order and subgroup generation properties to conclude about the composite or prime nature of the number 'n.' The content maintains a scientific and educational tone, focusing on theoretical aspects crucial in advanced mathematics and computer science, particularly in fields like cryptography. Note: The remaining aspects such as metadata analysis, color analysis, perspective and composition, contextual significance are not applicable for analysis as no related information is provided in the visual content and it is a black and white text-focused document. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 99 Context: φ(x)2 = φ(z)2=1. Since (the square is 1,φ(z) has order 1 or 2. Hence ifψ(z)^ 1 it is of order 2. If the cyclic group CU) is of odd order, then it contains no element of even order. Hence Cu) is of even order and contains -1. Then it can contain no other element of order 2, so φ(z)*1 in this case. Hence for every x£ B,y(z)=±1.Die Suppose B generates the full group Un. Then not only for every x€ B but for every x E Un is true that φ(x)* Suppose n is not a prime power. Then s > 1 in the factorization (4.5.2) of Un. Consider the element y of Un, which, when written out as an s-tuple according to that factorization, is of the form v =(1,1,1,...1,w,w2, 1,...,1.....yw.) where the ‘v is in the ith component, y E Un, (recall that j as described above, in the second sentence of this proof). We can suppose yiy to be an element of order exactly 2' in Un since Un is cycic Consider y(z)=1. Clearly ψ(z) is not 1, for otherwise the order y'.%a would divide 2l'-lm, his impossible because m iso. Also,φ(z) is not 41 because the element -1 of Un is represented uniquely by the s-tuple all of whose entries are –1. Thus φ(s”) is neither 1 nor–1 in Un, which contradicts the italicized assertion above. Hence s= 1 nd n is a prime power, completing the proof. Now we can prove the main result of Solovay, Strassen and Rabin, which asserts that Test 4 is good. Theorem 4.7.1. LetIFn the set of integers to m3a such that In, (n)y returns ‘ inconclusive’ in Test 4. (a) If B generates Un, thenn is prime. (b) Ifnis composite then B' consists of at most half of the integers in In 1|| :| Proof: Suppose 6 €B and let m be the odd part of n - 1. Then either3m^1 1 or y=1 forsome s€ {0,4 - 1). In the former case the cyclic subgroup (C)b) has odd order, since m is odd, and in the latter case (Ch contains -1. ``` - **Analysis:** - This page contains advanced mathematical content typical of academic literature, specifically focusing on pseudoprimality tests. - **Lemma 4.7.1** and **Lemma 4.7.2** state mathematical properties related to the order of elements in certain cyclic groups. - **Theorem 4.7.1** establishes a criterion for determining the primality of an integer based on generating sets, related to Solovay, Strassen, and Rabin's work on primality tests. #### 8. **Color Analysis:** - **Dominant Colors:** - The image predominantly features black text on a white background. #### 9. **Perspective and Composition:** - **Perspective:** - The perspective is that of a flat, face-on view, typical of a page of text. - **Composition:** - The page consists of structured text with headings, sub-headings, numbered lemmas, and their proofs. The text is aligned evenly with consistent spacing, which is typical for mathematical or academic documents. #### 10. **Contextual Significance:** - **Overall Context:** - The image is part of an academic document or textbook on pseudoprimality tests in number theory or a related field. - The text on the page contributes significantly to the understanding and application of pseudoprimality tests, a crucial concept in computational number theory and cryptography. ### Summary: The analyzed image is a page from a mathematical text dealing with pseudoprimality tests. It includes detailed lemmas and a theorem related to the order of elements in cyclic groups and their application in pseudoprimality testing, with proofs providing rigorous validation of these lemmas and theorem. The page is composed primarily of structured text, black on white, and is geared towards readers with an advanced understanding of mathematics, specifically in number theory. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 101 Context: # 4.8 Factoring and cryptography A computationally intractable problem can be used to create secure codes for the transmission of information over public channels of communication. The idea is that those who send the messages to each other will have extra pieces of information that will allow them to solve the intractable problem rapidly, whereas an aspiring eavesdropper would be faced with an exponential amount of computation. Even if we don’t have a provably computationally intractable problem, we can still take a chance that those who might intercept our messages won’t know polynomial-time algorithms if we don’t know any. Since there are precious few provably hard problems, and hordes of apparently hard problems, it is scarcely surprising that a number of sophisticated coding senders rely on the latter rather than the former. One should remember, though, that an adversary might discover fast algorithms for doing these problems and keep that fact secret while deepening all of our messages. A remarkable feature of a family of recently developed coding schemes, called ‘Public Key Encryption Systems’, is that the ‘key’ to the code lies in the public domain, so it can be easily available to sender and receiver (and eavesdropper), and can be readily changed if need be. On the negative side, the most widely used Public Key Systems lean on computational problems that are only presumed to be intractable, like factoring large integers, rather than having been proved so. We are going to discuss a Public Key System called the RSA scheme, after its inventors: Rivest, Shamir, and Adelman. This particular method depends for its success on the seeming intractability of the problem of finding the factors of large integers. If that problem could be done in polynomial time, then the RSA system could be ‘cracked.’ In this system, there are three centers of information: the sender of the message, the receiver of the message, and the Public Domain (for instance, the ‘Personals’ ads of the New York Times). Here is how the system works. ## (A) Who knows what and when Here are the items of information that are involved, and who knows each item: - **p, q**: two large prime numbers, chosen by the receiver, and told to nobody else (not even to the sender!). - **n**: the product pq, and this is placed in the Public Domain. - **E**: a random integer, placed in the Public Domain by the receiver, who has first made sure that \(E\) is relatively prime to \((p-1)(q-1)\) by computing the g.c.d. and choosing a new \(E\) at random until the g.c.d. is 1. This is easy for the receiver to do because \(p\) and \(q\) are known to him, and the g.c.d. calculation is fast. - **P**: a message that the sender would like to send, thought of as a string of bits whose value, when regarded as a binary number, lies in the range \([0, n-1]\). In addition to the above, one more item of information is computed by the receiver, and that is the integer **D** that is the multiplicative inverse mod \((p-1)(q-1)\) of \(E\), i.e., \[ DE \equiv 1 \, (\text{mod} \, (p-1)(q-1)). \] Again, since \(p\) and \(q\) are known, this is a fast calculation for the receiver, as we shall see. To summarize: - The receiver knows \(p\), \(q\), \(D\). - The sender knows \(P\). - Everybody knows \(n\) and \(E\). In Fig. 4.8.1, we show the interiors of the heads of the sender and receiver, as well as the contents of the Public Domain. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 104 Context: # Chapter 4: Algorithms in the Theory of Numbers learned nothing. However if neither \( u \equiv v \, (\text{mod} \, n) \) nor \( u \equiv -v \, (\text{mod} \, n) \) is true then we will have found a nontrivial factor of \( n \), namely \(\gcd(u - v, n)\) or \(\gcd(u + v, n)\). ## Example: Take as a factor base \( B = \{-2, 5\} \), and let it be required to find a factor of \( n = 1729 \). Then we claim that 186 and 267 are B-numbers. To see that 186 is a B-number, note that \( 186^2 \equiv 20 \, \text{(mod} \, (-2)^2) \), and similarly, since \( 267^2 \equiv 41 - 1729 + (-2)^2 \), we see that 267 is a B-number, for this factor base \( B \). The exponent vectors of 186 and 267 are \( (4, 0) \) and \( (4, 2) \) respectively, and these sum to \( (0, 0) \) (mod 2), hence we find that \[ u = 186 \times 267 = 1729 \, (\text{mod} \, 1729) \] \[ r_1 = 4; \quad r_2 = 1 \] \[ s_1 = (-2)^{(5)} = 80 \] \[ \gcd(u - v, n) = \gcd(1170, 1729) = 13 \] and we have found the factor 13 of 1729. There might have seemed to be some legerdemain involved in plucking the B-numbers 186 and 267 out of the air, in the example above. In fact, as the algorithm has been implemented by its author, J. D. Dixon, one simply chooses integers uniformly at random from \([1, n-1]\) until enough B-numbers have been found, so their exponent vectors are linearly dependent modulo 2. In Dixon's implementation the factor base that is used consists of \( 1 \) together with the first \( k \) prime numbers. It can then be proved that if \( n \) is not a prime power then with a correct choice of \( b \) relative to \( n \), if we repeat the random choices until a factor of \( n \) is found, the average running time will be \[ \exp\left(2 + o(1)\right)(\log \log n)^{3}. \] This is not polynomial time, but it is moderately exponential only. Nevertheless, it is close to being about the best that we know how to do on the elusive problem of factoring a large integer. ## 4.10 Proving primality In this section we will consider a problem that sounds a lot like primality testing, but is really a little different because the rules of the game are different. Basically the problem is to convince a skeptical audience that a certain integer \( n \) is prime, requiring them to do only a small amount of computation in order to be so persuaded. First, though, suppose you were writing a 100-decimal-digit integer on the blackboard in front of a large audience and you wanted to prove to them that it was not a prime. If you simply wrote down two smaller integers whose product was \( n \), the job would be done. Anyone who wished to be certain could spend a few minutes multiplying the factors together and verifying that the product was indeed \( n \), and all doubts would be dispelled. Indeed*, a speaker at a mathematical convention in 1903 announced the result that \( 2^{n} - 1 \) is not a prime number, and to be utterly convincing all he had to do was to write \[ 2^{n} - 1 = 193707721 \times 761838257287. \] We note that the speaker probably had to work very hard to find those factors, but having found them it became quite easy to convince others of the truth of the claimed result. A pair of integers \( r, s \) for which \( r \equiv 1 \, (\text{mod} \, s) \) and \( n = rs \) constitute a certificate attesting to the compositeness of \( n \). With this certificate \( C(n) \) and an auxiliary checking algorithm, viz. 1. Verify that \( r \neq 1 \) and that \( s \neq 1 \). 2. Check that \( r \times s = n \). We can prove, in polynomial time, that \( n \) is not a prime number. *We follow the account given in V. Pratt, "Every prime has a succinct certificate," SIAM J. Computing, 4 (1975), 214-220. Image Analysis: ### Image Analysis #### 1. **Localization and Attribution:** - **Image Identification:** Single-paged document. - **Image Number:** Image 1. #### 2. **Object Detection and Classification:** - **Objects Identified:** Text blocks, mathematical formulas, numbers, and a footnote. - **Category:** Educational/Instructional document. - **Key Features:** Mathematical equations, exponents, symbols like "mod", equal signs, and text paragraphs. #### 3. **Scene and Activity Analysis:** - **Scene Description:** The image contains text and mathematical equations discussing an algorithm in the theory of numbers. There are explanations, examples, and processes described in detail. #### 4. **Text Analysis:** - **Text Detected and Extracted:** - "Chapter 4: Algorithms in the Theory of Numbers" - "Example: Take as a factor base \(B = {-2, 5}\), and let it be required to find a factor of \(n = 1729\)." - "4.10 Proving primality" **Significance:** - **Chapter Heading:** Introduces the chapter focused on algorithms related to number theory. - **Example Section:** Provides a detailed example of finding the factors of a given number using specific mathematical techniques. - **Proving Primality:** Discusses a method to prove whether a given large number is a prime number. #### 6. **Product Analysis:** - **Descriptive Content:** - **Main Features:** The described algorithms and techniques. - **Materials/Color:** Mainly black text on a white background. #### 8. **Color Analysis:** - **Dominant Colors:** - Black (text) - White (background) **Impact:** The high contrast ensures readability and a clear visual hierarchy. #### 9. **Perspective and Composition:** - **Perspective:** Frontal view, standard for reading text. - **Composition:** Structured in paragraphs and bullet points, with equations clearly separated in standalone lines to emphasize their importance. #### 10. **Contextual Significance:** - **Overall Document:** The image serves as a page from an educational text, likely a textbook or a detailed academic paper on number theory. It contributes significantly to the topic by explaining complex algorithms and examples. #### 13. **Graph Numbers (Integrated in Text):** - Example numerals involved: - \(B = {-2, 5}\) - \(n = 1729\) - \(186 = 20 \cdot 1729 + (-2)^4\) - \(267 = 41 \cdot 1729 + (-2)^4 \cdot 5^2\) ### Additional Specific Aspects: #### **Ablaufprozesse (Process Flows):** - **Described Process:** - Factoring the number \( n = 1729 \) using a specific factor base. - Primality proving process for a large integer \(n\) using a certificate \(C(n)\) and an auxiliary checking algorithm. #### **Prozessbeschreibungen (Process Descriptions):** - **Example Process:** Detailed step-by-step demonstration of how \( 1729 \) is factored by aligning exponents and computing gcd. #### **Typen Bezeichnung (Type Designations):** - \(B\)-numbers: Specific type of numbers used in the algorithm. #### **Trend and Interpretation:** - **Identification of B-numbers** and their role in simplifying complex algebraic processes. #### **Tables:** - No tables detected in the provided page. This detailed analysis provides a comprehensive understanding of the provided visual content, focusing on its educational significance, mathematical rigor, and structured presentation. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 108 Context: # Chapter 5: NP-completeness ## 5.1 Introduction In the previous chapter we met two computational problems for which fast algorithms have never been found, but neither have such algorithms been proved to be unmanageable. Those were the primality-testing problem, for which the best-known algorithm is delicately poised on the brink of polynomial time, and the integer-factoring problem, for which the known algorithms are in a more primitive condition. In this chapter we will meet a large family of such problems (hundreds of them now!). This family is not just a list of seemingly difficult computational problems. It is in fact bound together by strong ties. The collection of problems, called the NP-complete problems, includes many well-known and important questions in discrete mathematics, such as the following: - **The travelling salesman problem (TSP)**: Given n points in the plane (‘cities’), and a distance D, is there a tour that visits all of the cities, returns to its starting point, and has total length ≤ D? - **Graph coloring**: Given a graph G and an integer K. Can the vertices of G be properly colored in K or fewer colors? - **Independent set**: Given a graph G and an integer K. Does V(G) contain an independent set of K vertices? - **Bin packing**: Given a finite set S of positive integers and an integer N (the number of bins). Does there exist a partition of S into N or fewer subsets such that the sum of the integers in each subset is ≤ K? In other words, can we ‘pack’ the integers of S into at most N ‘bins’, where the ‘capacity’ of each bin is K? These are very difficult computational problems. Take the graph coloring problem, for instance. We could try every possible way of coloring the vertices of G in K colors to see if any of them work. There are \(K^n\) such possibilities, if G has n vertices. Hence if G has 50 vertices and we have 20 colors at our disposal, the problem would lie far beyond the capabilities of the fastest computers that are now available. Hard problems can have easy instances. If the graph G happens to have no edges at all, or very few of them, then it will be very easy to find out if a coloring is possible, or if an independent set of K vertices is present. The real question is this (let's use ‘Independent Set’ as an illustration). Is it possible to design an algorithm that will come packaged with a performance guarantee of the following kind: > **The seller warrants that if a graph G, of n vertices, and a positive integer K are input to this program, then it will correctly determine if there is an independent set of K or more vertices in V(G), and it will do so in an amount of time that is at most 1000n^k.** Hence there is no contradiction between the facts that the problem is hard and that there are easy cases. The hardness of the problem stems from the seeming impossibility of producing such an algorithm accompanied by such a manufacturer’s warranty card. Of course the “1000” didn’t have to be exactly that. But some quite specific polynomial in the length of the input bit string must appear in the performance guarantee. Hence “357n” might have appeared in the guarantee, and so might “23n”, but \(n^k\) would not have allowed. Let’s look carefully at why \(n^k\) would not be an acceptable worst-case polynomial time performance bound. In the ‘Independent Set’ problem the input must describe the graph G and the integer K. How many bits are needed to do that? The graph can be specified, for example, by its vertex adjacency matrix A. This is an \(n \times n\) matrix in which the entry in row i and column j is 1 if \((i,j) \in E(G)\) and 0 else. Evidently \(n^2\) bits of input will describe the matrix A. The integers K and n can be entered with just \(O(\log n)\) bits, so the entire input bit string for the ‘Independent Set’ problem is at most \(n^2\) bits long, but the number of bits in the input string. Suppose that on the warranty card the program was guaranteed to run in a time that is \(O(n^k)\). Is this a guarantee of polynomial time performance? That question takes us to the next question: Is there a polynomial P such that for every instance of ‘Independent Set’ the running time T will be at most P(|B|)? Well, is it bounded? Image Analysis: ### Comprehensive Image Analysis #### Localization and Attribution - **Image Position:** Single image/page. - **Image Identifier:** This image has been labeled for reference as Image 1. #### Text Analysis - **Detected Text:** - Chapter Information: "Chapter 5: NP-completeness" - Section Title: "5.1 Introduction" - Mathematical and problem descriptions: - *Travelling salesman problem (TSP)*: Given 'n' points and a distance D, determining a tour that visits all points and returns with a total length ≤ D. - *Graph coloring*: Coloring vertices of a graph G with K colors. - *Independent set*: Identifying an independent set of K vertices in graph G. - *Bin packing*: Partitioning a set S into N sets within a capacity K, ensuring optimal packing. - Example of a computational guarantee: - "The seller warrants that if a graph G, r vertices, and a positive integer K are input to this program, then it will correctly determine if there is an independent set of K or more vertices in V(G), and it will do so in an amount of time that is at most 1000n^k milliseconds." - Additional explanations and technical details relevant to the difficulty of these computational problems and the warranties provided. - **Content Significance:** - This text outlines different NP-complete problems, particularly those challenging due to their computational complexity. - Highlights crucial problems in discrete mathematics, emphasizing the significance of understanding NP-completeness. - Discusses practical implications and theoretical underpinnings of computational guarantees and problem-solving capabilities. #### Object Detection and Classification - **Category:** Document text analysis. - **Key Features:** The document features mathematical problems, definitions, and explanations pertaining to NP-completeness. - **Main Actors:** Textual descriptions, graphs, equations, and warranties regarding algorithms. #### Scene and Activity Analysis - **Scene Description:** - The single scene is an academic or technical document page focused on introducing NP-completeness. - The activity is mainly a textual explanation of theoretical problems in computer science. #### Perspective and Composition - **Perspective:** - The image is a direct scan or screenshot of a document page taken from a flat, front-on perspective typical of document presentations. - **Composition:** - Text densely arranged in paragraphs, - Section headers and subsections properly marked and highlighted for emphasis. #### Contextual Significance - **Overall Document/Website Contextualization:** - The page is part of a larger document or textbook discussing computational theory, specifically addressing NP-completeness in computational problems. - Contributes significantly to the foundational understanding for students or readers studying computational complexity, illustrating both theoretical and practical considerations. ### Metadata and Additional Analysis - **Metadata:** - None available. #### Conclusion - **Significance:** - The document serves as an introductory section to NP-completeness, fundamental for students or professionals in computer science and related fields. - The text sets the stage for further discussions on computational problems, emphasizing both the complexities and potential capabilities of various algorithms in managing these issues. Note: There were no diagrams, charts, or tables within the provided image context, so these aspects were not relevant to this analysis. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 109 Context: # What is a language? by a polynomial in B if T = n^K and B ∼ n^2? It would seem so; in fact obviously T = O(B^K), and that’s a polynomial, isn’t it? The key point resides in the order of the qualifiers. We must give the polynomial that works for every instance of the problem first. Then that one single polynomial must work on every instance. If the 'polynomial' that we give is B(K), well that’s a different polynomial in B for different instances of the problem, because K is different for different instances. Therefore if we say that a certain program for 'Independent Set' will always get an answer before B^K/2 minutes, where B is the length of the input bit string, then we would not have provided a polynomial-time guarantee in the form of a single polynomial in B that applies uniformly to all problem instances. The distinction is a little thorny, but is worthy of careful study because it’s of fundamental importance. What we are discussing is usually called a worst-case time bound, meaning a bound on the running time that applies to every instance of the problem. Worst-case time bounds aren’t the only possible interesting ones. Sometimes we might not care if an algorithm is occasionally very slow as long as it is almost always fast. In other situations we might be satisfied with an algorithm that is fast on average. For the present, however, we will stick to the worst-case time bounds and study some of the theory that applies to that situation. In sections 5.6 and 5.7 we will study some average time bounds. Now let’s return to the properties of the NP-complete family of problems. Here are some of them: 1. The problems all seem to be computationally very difficult, and no polynomial time algorithms have been found for any of them. 2. It has been proved that polynomial time algorithms for these problems do not exist. 3. But this is not just a random list of hard problems. If a fast algorithm could be found for one NP-complete problem then there would be fast algorithms for all of them. 4. Conversely, if it could be proved that no fast algorithm exists for one of the NP-complete problems, then there could not be a fast algorithm for any other of those problems. These properties are not intended to be a definition of the concept of NP-completeness. We’ll get that later on in this section. They are intended as a list of some of the interesting features of these problems, which, when coupled with their theoretical and practical importance, accounts for the intense worldwide research effort that has gone into understanding them in recent years. The question of the existence or nonexistence of polynomial-time algorithms for the NP-complete problems learns probably falls as the principal unsolved problem that faces theoretical computer science today. Our next task will be to develop the formal machinery that will permit us to give precise definitions of all of the concepts that are needed. In the remainder of this section we will discuss the additional ideas informally, and then in section 5.2 we’ll state them quite precisely. ## What is a decision problem? First, the idea of a decision problem. A decision problem is one that asks only for a yes-or-no answer: Can this graph be 5-colored? Is there a tour of length ≤ 15 miles? Is there a set of 67 independent vertices? Many of them problems that we are studying can be phrased as decision problems or as optimization problems: What is the smallest number of colors with which G can be colored? What is the length of the shortest tour of the cities? What is the size of the largest independent set of vertices in G? Usually if we find a fast algorithm for a decision problem then just a little more work will be able to solve the corresponding optimization problem. For instance, suppose we have an algorithm that solves the decision problem for graph coloring, and what we want is the solution of the optimization problem (the chromatic number). Let G be a graph G given, say of 100 vertices. Ask: can the graph be 50-colored? If so, then the chromatic number lies between 1 and 50. Then ask if it can be colored in 25 colors. If not, then the chromatic number lies between 26 and 50. Continue in this way, using bisection of the interval that is known to contain the chromatic number. After O(log n) steps we will have found the chromatic number of a graph of n vertices. The extra multiplicative factor of log n will not alter the polynomial vs. nonpolynomial runing time distinction. Hence if there is a fast way to do the decision problem then there is a fast way to do the optimization problem. The converse is obvious. Hence we will restrict our discussion to decision problems. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 110 Context: # Chapter 5: NP-completeness ## What is a language? Since every decision problem can have only the two answers 'Y/N', we can think of a decision problem as asking if a given word (the input string) does or does not belong to a certain language. The language is the totality of words for which the answer is 'Y'. The graph 3-coloring language, for instance, is the set of all symmetric, square matrices of 0s and 1s, with zeros on the main diagonal (these are the vertex adjacency matrices of graphs) such that the graph that the matrix represents is 3-colorable. We can imagine that somewhere there is a vast dictionary of all the words in this language. A 3-colorability computation is therefore nothing but an attempt to discover whether a given word belongs to the dictionary. ## What is the class P? We say that a decision problem belongs to the class P if there is an algorithm \( A \) and a number \( s \) such that for every instance \( I \) of the problem the algorithm \( A \) will provide a solution in time \( O(B) \), where \( B \) is the number of bits in the input string that represents \( I \). To put it more briefly, P is the set of easy decision problems. Examples of problems in P are most of the ones that we have already met in this book: Are these two integers relatively prime? Is this integer divisible by two? Is this graph 2-colorable? Is there a flow of value greater than \( K \) in this network? Can this graph be disconnected by the removal of \( K \) or fewer edges? Is there a matching of more than \( K \) edges in this bipartite graph? For each of these problems, there is a fast (polynomial time) algorithm. ## What is the class NP? The class NP is a little more subtle. A decision problem \( Q \) belongs to NP if there is an algorithm \( A \) that does the following: 1. Associated with each word of the language \( Q \) (i.e., with each instance for which the answer is 'Yes') there is a certificate \( C(I) \) such that when the pair \( (I, C(I)) \) are input to algorithm \( A \), it recognizes that \( I \) belongs to the language \( Q \). 2. If there is some word that does not belong to the language \( Q \) then there is no choice of certificate \( C(I) \) that will cause \( A \) to recognize \( I \) as a member of \( Q \). 3. Algorithm \( A \) operates in polynomial time. To put this one more briefly, NP is the class of decision problems for which it is easy to check the correctness of a claimed answer, with the aid of a little extra information. So we aren't asking for a way to find a solution, but only to verify that an alleged solution really is correct. Here is an analogy that may help to clarify the distinction between the classes P and NP. We have all had the experience of reading through a tiny ingenious and difficult proof of some mathematical theorem, and wondering how the person who found the proof in the first place ever did it. Our task, as a reader, was only to verify the proof, and that is a much easier job than the mathematician who invented the proof had. To pursue the analogy a bit farther, some proofs are extremely time consuming even to check (see the proof of the Four-Color Theorem!), and similarly, some computational problems are not even known to belong to NP, let alone to P. In P are the problems where it's easy to find a solution, and in NP are the problems where it's easy to check a solution that may have been very tedious to find. Here's another example. Consider the graph coloring problem to be the decision problem Q. Certainly this problem is not known to be in P. It is, however, in NP, and here is an algorithm, and a method of constructing certificates that proves it. Suppose \( G \) is some graph that is K-colorable. The certificate of \( G \) might be a list of the colors that get assigned to each vertex to ensure proper \( K \)-coloring of the vertices of \( G \). Where do we find that list, you ask? Well, we've said it was easy to construct a certificate. If you actually want to find one then you will have to solve a hard problem. But we're really only talking about checking the correctness of an alleged answer. To check that a certain graph \( G \) really is \( K \)-colorable we can be convinced if you will show us the color of each vertex in a proper \( K \)-coloring. If you do provide that certificate, then our checking algorithm \( A \) is very simple. It checks first that every vertex has a color and only one color. It then checks that no more than \( K \) colors have been used altogether. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 111 Context: It finally shows that for each edge \( e \in G \) it is true that the two endpoints of \( e \) have different colors. Hence the graph coloring problem belongs to NP. The traveling salesman problem would provide a certificate that contains a tour, whose total length is \( K \), of all of the cities. The checking algorithm \( A \) would then verify that the tour really does visit all of the cities and really does have total length \( \leq K \). The traveling salesman problem, therefore, also belongs to NP. Well, you might reply, if we’re allowed to look at the answers, how could a problem fail to belong to NP? Try this decision problem: an instance of the problem consists of a set of cities in the plane and a positive number \( K \). The question is “Is it true that there is not a tour of all of these cities whose total length is less than \( K \)?” Clearly this is a kind of a negation of the traveling salesman problem. Does it belong to NP? If so, there must be an algorithm \( A \) and a way of making a certificate \( C(I) \) for each instance \( I \) that we can quickly verify that no such tour exists of the given cities. Any suggestions for the certificate? The algorithm? No one else knows how to do this either. It is not known if this negation of the traveling salesman problem belongs to NP. Are there problems that do belong to NP but which it isn’t immediately obvious that this is so? Yes. In fact that’s one of the main reasons that we studied the algorithm of Pratt, in section 4.10. Pratt’s algorithm is exactly a method of producing a certificate with the aid of which we can quickly check whether a given integer is prime. The decision problem “Given \( n \), is it prime?” is thereby revealed to belong to NP, although that fact wasn’t obvious at a glance. It is very clear that \( P \neq NP \). Indeed if \( Q \in P \) is some decision problem then we can verify membership in the language \( Q \) with the empty certificate. That is, we don’t even need a certificate in order to do a quick calculation that checks membership in the language because the problem itself can be quickly solved. It seems natural to suppose that NP is larger than P. That is, one might presume that there are problems whose solutions can be quickly checked with the aid of a certificate even though they can’t be quickly found in the first place. No example of such a problem has ever been produced (and proved), nor has it been proved that no such problems exist. The question of whether or not NP is the same class we noted earlier as being perhaps the most important open question in the subject area today. It is fairly obvious that the class \( P \) is called the class \( P \): \( P \) is the first letter of “Polynomial Time.” But what does “NP” stand for? Stay tuned. The answer will appear in section 5.2. ## What is reducibility? Suppose that we want to solve a system of 100 simultaneous linear equations in 100 unknowns, of the form \( Ax = b \). We run down to the local software emporium and quickly purchase a program for $49.95 that solves such systems. When we get home and read the fine print on the label we discover, to our chagrin, that the system works only on systems where the matrix \( A \) is symmetric, and the coefficient matrix in the system that we want to solve is, of course, not symmetric. One possible response to this predicament would be to look for the solution to the system \( A^T Ax = A^Tb \), in which the coefficient matrix \( A^T A \) is now symmetric. What we would have done would be to have reduced the problem that we really are interested in to an instance of a problem for which we have an algorithm. More generally, let \( Q \) and \( Q' \) be two decision problems. We will say that \( Q \) is quickly reducible to \( Q' \) whenever we are given an instance \( I \) of the problem \( Q \) we can convert it, with only a polynomial amount of labor, into an instance \( I' \) of \( Q' \) in such a way that \( I' \) and \( I \) both have the same answer (“Yes” or “No”). Thus if we buy a program to solve \( Q \), then we can use it to solve \( Q' \), with just a small amount of extra work. ## What is NP-completeness? How would you like to buy one program, for $49.95, that can solve 500 different kinds of problems? That’s what NP-completeness is about. To state it a little more carefully, a decision problem is NP-complete if it belongs to NP and every problem in NP is quickly reducible to it. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 113 Context: # 5.2 Turing Machines ## Exercises for section 5.1 1. Prove that the following decision problem belongs to P: Given integers \( K \) and \( a_1, \ldots, a_n \). Is the median of the \( a_i \)'s smaller than \( K \)? 2. Prove that the following decision problem is in NP: Given an \( n \times n \) matrix \( A \) of integer entries, is \( \det A = 0 \)? 3. For which of the following problems can you prove membership in P? - (a) Given a graph \( G \). Does \( G \) contain a circuit of length 4? - (b) Given a graph \( G \). Is \( G \) bipartite? - (c) Given integers. Is there a subset of them whose sum is an even number? - (d) Given \( n \) integers. Is there a subset of them whose sum is divisible by 3? - (e) Given a graph \( G \). Does \( G \) contain an Euler circuit? 4. For which of the following problems can you prove membership in NP? - (a) Given a set of integers and another integer \( K \). Is there a subset of the given integers whose sum is \( K \)? - (b) Given a graph \( G \) and an integer \( K \). Does \( G \) contain a path of length \( \geq K \)? - (c) Given a set of \( K \) integers. Is it true that not all of them are prime? - (d) Given a set of \( K \) integers. Is it true that all of them are prime? ## 5.2 Turing Machines A Turing machine consists of: - A doubly infinite tape, that is marked off into squares that are numbered as shown in Fig. 5.2.1 below. Each square can contain a single character from the character set that the machine recognizes. For simplicity, we can assume that the character set consists of just three symbols: '0', '1', and ' ' (blank). - A tape head that is capable of either reading a single character from a square on the tape or writing a single character on a square, or moving its position relative to the tape by an increment of one square in either direction. - A finite list of states such that at every instant the machine is in exactly one of those states. The possible states of the machine are, first of all, the regular states \( q_1, \ldots, q_n \), and second, three special states: - \( q_0 \): the initial state - \( q_y \): the final state in a problem to which the answer is ‘Yes’ - \( q_n \): the final state in a problem to which the answer is ‘No’ - A program (or program module, if we think of it as a pluggable component) that directs the machine through the steps of a particular task. ``` ... ... --- --- --- -2 ─→ 0 1 2 3 ... ... ``` Fig. 5.2.1: A Turing machine tape Image Analysis: ### Localization and Attribution: - **Image 1**: The page consists of one primary image—a diagram located centrally within the text, designated as Image 1. ### Object Detection and Classification: - **Image 1**: - **Objects Detected**: The image contains multiple squares arranged in a sequential manner, each square containing symbols or being blank. There are also labels underneath the squares. - **Classification**: This image can be categorized as a diagram depicting a Turing machine tape. ### Scene and Activity Analysis: - **Image 1**: - **Scene Description**: The image depicts a Turing machine tape, an abstract computational device used in theoretical computer science to understand the limits of what can be computed. - **Main Actors and Actions**: The main elements include labeled squares with symbols which depict the action of a tape head reading or writing a symbol. ### Text Analysis: - **Image Throughout the Page**: - **Extracted Text**: Title "5.2 Turing Machines", text describing "A Turing Machine..." and Fig. 5.2.1 caption: "A Turing machine tape". - **Content Analysis**: The text in this section describes the concept of a Turing machine, including its components: an infinite tape, a tape head, and a finite set of states. The figure caption highlights that the diagram is an illustration of the tape component of a Turing machine. ### Diagram and Chart Analysis: - **Image 1**: - **Diagram Description**: Image 1 is a diagram (Fig. 5.2.1) showing a sequence of squares that mimic a Turing machine tape. The squares are labeled “...”, “-2”, “-1”, “0”, “1”, “2”, “...” from left to right. - **Axes and Legends**: There are no typical axes or legends as this is a conceptual diagram, not a graph. - **Key Insights**: This diagram visualizes the tape of the Turing machine, indicating positions and possible contents (blank or symbols ‘0’ and ‘1’). ### Contextual Significance: - **Text Context**: The image is a part of a theoretical explanation of Turing machines within the larger context of computational theory and problem-solving approaches related to NP-completeness. - **Contribute to Overall Message**: This visual aids in the comprehension of how a Turing machine operates by illustrating its main component, facilitating a better understanding of the theoretical concepts discussed in the text. ### Perspective and Composition: - **Perspective**: The diagram is presented from a straightforward, head-on perspective for clarity, emphasizing the linear, sequential nature of the Turing machine tape. - **Composition**: Elements are arranged in a left-to-right sequence which mirrors the way the tape would be read or written by the Turing machine. ### Process Descriptions: - **Process Shown**: The process of how a Turing machine reads and writes symbols on an infinite tape is described. When a symbol is read, the machine transitions to a new state and performs an action based on the symbol and state. ### Trend and Interpretation: - **Trends Identified**: The visual shows a repeating and linear pattern of squares which represents the infinite nature of the Turing machine tape. - **Interpretation**: It reinforces the idea that theoretical machines like the Turing machine operate in a deterministic and procedural manner, following specified rules. ### Tables: - **Page Content**: The page intersperses table-like structures with exercises listing problems related to computational complexity (sections 5.1-5.2). - **Description**: Though not traditional tables, these organized lists are used to systematically challenge understanding of P, NP, and related problems in computer science theory. The combined text and diagrams on this page offer a comprehensive tutorial on Turing machines and exercises to practice understanding computational complexity. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 116 Context: If we choose the truth values (T, T, F) for the variables, respectively, then the four clauses would acquire the truth values (T, T, T, F), and so this would be a satisfying truth assignment for the set of clauses. There are only eight possible ways to assign truth values to three variables, and after a little. more experimentation we might find out that these clauses would in fact be satisfied if we were to make the assignment (T,T,I) (how can we recognize a set of clauses that is satisfied by assigning to every variable the value ‘T T ?). The example already leaves one with the feeling that SAT might be a tough computational problem, because there are Zn possible sets of truth values that we might have to explore ff we were to do an exhaustive search. It is quite clear, however, that this problem belongs to NP. Indeed, it is a decision problem. Furthermore we can easily assign a certificate to every set of clauses for which the answer to SAT is ‘Yes, the clauses ``` - **Text Analysis:** - The text discusses the concept of NP-completeness and introduces Cook's Theorem. - It details the satisfiability problem (SAT) and provides an example to explain the concept of satisfiability. - The text is significant as it explains foundational concepts in computational complexity theory, particularly the classification of problems and the importance of NP-complete problems. ### 9. Perspective and Composition - **Perspective:** - The image is a direct scan or shot of a textbook page, taken from a straight-on perspective, ensuring all text is clearly visible and readable. - **Composition:** - The composition consists of structured text with sections, paragraphs, and an example. The page layout follows a typical textbook style with chapter headings, section numbers, and definitions. ### 13. Graph Numbers - No graphs are present in the image, thus no numerical data points to list. ### Additional Aspects #### Ablaufprozesse (Process Flows): - The image explains the process of determining the satisfiability of a set of clauses by assigning truth values to variables and evaluating the clauses based on those assignments. #### Prozessbeschreibungen (Process Descriptions): - The process description involves assigning truth values to Boolean variables, determining the truth value of literals, and subsequently the truth value of clauses to check for satisfiability. #### Typen Bezeichnung (Type Designations): - Types or categories specified include: - Boolean variables - Literals - Clauses #### Trend and Interpretation: - The text discusses a trend in computational problem classification, particularly focusing on the complexity class NP and NP-complete problems. It interprets the difficulty of satisfiability problems and their importance in computational theory. #### Tables: - No tables are present in the image. Overall, the image contributes significantly to the understanding of NP-completeness and the satisfiability problem, explaining key concepts and processes in computational complexity theory. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 116 Context: # Chapter 5: NP-completeness The class NP (Nondeterministic Polynomial) consists of these decision problems for which there exists a fast (polynomial time) algorithm that will verify, given a problem instance string \( s \) and a suitable certificate \( C(s) \), that \( s \) belongs to the language recognized by the machine, and for which, if \( s \) does not belong to the language, no certificate would cause an accepting computation to ensue. ## 5.3 Cook's Theorem The NP-complete problems are the hardest problems in NP, in the sense that if \( Q' \) is any decision problem in NP and \( Q \) is NP-complete problem, then every instance of \( Q' \) is polynomially reducible to an instance of \( Q \). As we have already remarked, the surprising thing is that there is an NP-complete problem at all, since it is not immediately clear why any single problem should hold the key to the polynomial time solvability of every problem in the class NP. But there is one. As soon as we see why there is one, then we'll be able to see more easily why there are hundreds of them, including many computational questions about discrete structures such as graphs, networks and games and about optimization problems, about algebraic structures, formal logic, and so forth. ### Here is the satisfiability problem, the first problem that was proved to be NP-complete, by Stephen Cook in 1971. We begin with a list of (Boolean) variables \( x_1, \ldots, x_n \). A literal is either one of the variables \( x_i \) or the negation of one of the variables, as \( \neg x_i \). There are \( 2n \) possible literals. A clause is a set of literals. The rules of the game are these. We assign the value ‘True’ (T) or ‘False’ (F) to each one of the variables. Having done that, each one of the literals inherits a truth value, namely a literal \( l \) has the same truth or falsity as the corresponding variable \( x_i \), and a literal \( \neg x_i \) has the opposite truth value from that of the variable \( x_i \). Finally each of the clauses also inherits a truth value from this process, and it is determined as follows. A clause has the value ‘True’ if and only if at least one of the literals in that clause has the value ‘T’; and otherwise it has the value ‘F’. Hence starting with an assignment of truth values to the variables, some true and some false, we end up with a determination of the truth values of each of the clauses, some true and some false. #### Definition A set of clauses is satisfiable if there exists an assignment of truth values to the variables that makes all the clauses true. Think of the word ‘or’ as being between each of the literals in a clause, and the word ‘and’ as being between the clauses. ### The satisfiability problem (SAT). Given a set of clauses. Does there exist a set of truth values (T or F), one for each variable, such that every clause contains at least one literal whose value is T (i.e., such that every clause is satisfied)? **Example:** Consider the set \( x_1, x_2, x_3 \) of variables. From these we might manufacture the following list of four clauses: - \( \{x_1, x_2\} \) - \( \{x_1, \neg x_3\} \) - \( \{x_2, x_3\} \) - \( \{\neg x_1, x_3\} \) If we choose the truth values (T, T, F) for the variables, respectively, then the four clauses would assign the truth values (T, T, F), and so this would not be a satisfying truth assignment for the set of clauses. There are only eight possible ways to assign truth values to three variables, and after a little more experimentation we might find out that these clauses would in fact be satisfied if we were to make the assignments (T, T, T) (how can we recognize a set of clauses that is satisfied by assigning to every variable the value ‘T’?) The example already leaves one with the feeling that SAT might be a tough computational problem, because there are \( 2^n \) possible sets of truth values that we might have to explore if we were to do an exhaustive search. It is quite clear, however, that this problem belongs to NP. Indeed, it is a decision problem. Furthermore we can easily assign a certificate to every set of clauses for which the answer to SAT is ‘Yes’, the clauses. Image Analysis: Based on the provided visual content, here is a detailed analysis according to the specified aspects: ### 1. Localization and Attribution - **Image Location:** The image is a single page from a textbook, located within a single view. - **Image Number:** Image 1 ### 4. Text Analysis - **Detected Text:** ``` Chapter 5: NP-completeness situation with a deterministic Turing machine, in which we decide whether or not the input string is in the language, without using any certificates. The class NP (Nondeterministic Polynomial) consists of those decision problems for which there exists a fast (polynomial time) algorithm that will verify, given a problem instance string and a suitable certificate C(x), that x belongs to the language recognized by the machine, and for which, if x does not belong to the language, no certificate would cause an accepting computation to ensue. 5.3 Cook’s Theorem The NP-complete problems are the hardest problems in NP, in the sense that if Q is any decision problem in NP and Q is an NP-complete problem, then every instance of Q is polynomially reducible to any instance of Q. As we have already remarked, the surprising thing is that there is an NP-complete problem at all, since it is not immediately clear why any single problem should hold the key to the polynomial time solvability of every problem in the class NP. But there is one. As soon as we see why there is one, then we’ll be able to see more easily why there are hundreds of them, including many computational questions about discrete structures such as graphs, networks and games and about optimization problems, about algebraic structures, formal logic, and so forth. Here is the satisfiability problem, the first problem that was proved to be NP-complete by Stephen Cook in 1971. We begin with a list of (Boolean) variables x1, ..., xn. A literal is either one of the variables xi or the negation of one of the variables, as x1. There are 2n possible literals. A clause is a set of literals. The rules of the game are these. We assign the value ‘True’ (T) or ‘False’ (F), to each one of the variables. Having done that, each one of the literals inherits a truth value, namely a literal xi has the same truth or falsity as the corresponding variable xi, and a literal xi has the opposite truth value from that of the variable xi. Finally each of the clauses also inherits a truth value from this process, and it is determined as follows. A clause has the value ‘T’ if and only if at least one of the literals in that clause has the value ‘T’; and otherwise it has the value ‘F’. Hence starting with an assignment of truth values to the variables, some true and some false, we end up with a determination of the truth values of each of the clauses, some true and some false. Definition. A set of clauses is satisfiable if there exists an assignment of truth values to the variables that makes all of the clauses true. Think of the word ‘or’ as being between each of the literals in the clause, and the word ‘and’ as being between the clauses. The satisfiability problem (SAT). Given a set of clauses. Does there exist a set of truth values (= T or F), one for each variable, such that every clause contains at least one literal whose value is T (i.e., such that every clause is satisfied)? Example: Consider the set x1, x2, x3 of variables. From these we might manufacture the following list of four clauses: {x1, x2}, {x1, x3}, {x2, x3}, {x1, x3}. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 119 Context: # At step P(n) the machine is in state qₓ. One for each step i of the computation: ``` {Q₁,₁, Q₂,₁, …, Qₖ,₁} ``` Since I assume O(P(n)) values, these are O(P(n)) clauses. ## At each step, the machine is not in more than one state Therefore, for each step i, and each pair j, j' of distinct states, the clause ``` {Qᵢ,₁, Qⱼ,ⁿ} ``` must be true. These are O(P(n)) additional clauses to add to the list, but still more are needed. ## At each step, each tape square contains exactly one symbol from the alphabet of the machine. This leads to two lists of clauses which require, first, that there is at least one symbol in each square at each step, and second, that there are not two symbols in each square at each step. The clauses that do this are: ``` {S₁,₁, S₂,₁, …, Sₐ,₁} ``` where A is the number of letters in the machine's alphabet, and ``` {Sᵢ,ₗ, Sᵢ,ₖ} ``` for each step i, square j, and pair k', k'' of distinct symbols in the alphabet of the machine. The reader will by now have gotten the idea of how to construct the clauses, so for the next three categories we will simply list the functions that must be performed by the corresponding lists of clauses, and leave the construction of the clauses as an exercise. ## At each step, the tape head is positioned over a single square. Initially the machine is in state 0, the head is over square 1, the input string z is in squares 1 to n, and C(z) (the input certificate of z) is in squares 0, -1, ... -P(n). ## At step P(n) the machine is in state qᵧ. The last set of restrictions is a little trickier: ### At each step the machine moves to its next configuration (state, symbol, head position) in accordance with the application of its program module to its previous (state, symbol). To find the clauses that will do this job, consider first the following condition: the symbol in square j of the tape cannot change during step i of the computation if the tape head isn't positioned there at that moment. This translates into the collection ``` {Tᵢ,j, Sᵢ,j, S₁,j, k} ``` of clauses, one for each triple (i, j, k) = (state, square, symbol). These clauses express the condition in the following way: either (at time t) the tape head is positioned over square j (Tᵢ is true) or else the head is not positioned there, in which case either symbol k is not in the jth square before the step or symbol k is [still] in the jth square after the step is executed. It remains to express the fact that the transitions from one configuration of the machine to the next are the direct results of the operation of the program module. The three sets of clauses that do this are: ``` {Fᵢ,j, Qₖ,ₗ, Sᵢ,j, Tᵢ,j+1, H₁,ₙC} ``` ``` {Tᵢ, Qₗ, Sᵢ,j, Qₖ,ₕ} ``` ``` {Tᵣ, Qₖ, Sᵢ,j, S₁,j+1, H} ``` #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 121 Context: # 5.4 Some other NP-complete problems To prove the claim, first suppose that \( (5.4.1) \) is satisfied by some assignment \( x^* \). Then one, at least, of the \( k \) literals \( z_1, \ldots, z_r, \text{ say } x_r \) has the value \( \text{True} \). Then we can satisfy all \( k - 2 \) of the transformed clauses \( (5.4.2) \) by assigning \( z_s = \text{True} \) for \( s \leq r - 2 \) and \( z_r = \text{False} \) for \( s > r - 2 \). It is easy to check that each one of the \( k - 2 \) new clauses is satisfied. Conversely, suppose that all of the new clauses are satisfied by some assignment of the \( x \)’s and the \( z \)’s. We will show that at least one of the \( x \)’s must be \( \text{True} \); so that the original clause will be satisfied. Suppose, to the contrary, that all of the \( x \)’s are false. Since, in the new clauses none of the \( x \)’s are negated, the fact that the new clauses are satisfied tells us that they would remain satisfied without any of the \( x \)’s. Hence the clauses \( \{x_1\}, \{x_2\}, \{x_3\}, \ldots, \{x_{k-4}, x_{k-3}\}, \{x_k\} \) are satisfied by the values of the \( x \)’s. If we scan the list from left to right we discover, in turn, that \( x_1 \) is true, \( x_2 \) is true, and finally, much to our surprise, that \( x_{k-3} \) is true, and \( x_k \) is also false, a contradiction which establishes the truth of the claim made above. The observation that the transformations just discussed can be carried out in polynomial time completes the proof of theorem \( 5.4.1 \). We remark, in passing, that the problem \( 2SAT \) is in \( P \). Our collection of NP-complete problems is growing. Now we have two, and a third is on the way. We will show next how to reduce \( 3SAT \) to a graph coloring problem, thereby proving ## Theorem 5.4.2. The graph vertex coloring problem is NP-complete. **Proof:** Given an instance of \( SAT \), that is to say, given a collection of \( C_j \) clauses, involving \( n \) variables and having at most three literals per clause, we will construct, in polynomial time, a graph \( G \) with the property that its vertices can be properly colored in \( k + 1 \) colors if and only if the given clauses are satisfiable. We will assume that \( n > 4 \), the contrary case being trivial. The graph \( G \) will have \( n + k \) vertices: \[ \{x_1, \ldots, x_n\}, \{z_1, \ldots, z_k\}, \{y_1, \ldots, y_m\}, \{C_1, \ldots, C_k\} \] Now we will describe the set of edges of \( G \). First each vertex \( x_i \) is joined to \( C_j \) for \( j = 1, \ldots, k \). Next, every vertex \( z_j \) is joined to every other vertex \( x_j (j \neq i) \), to every vertex \( z_j (j \neq i) \), and to every vertex \( x_j (j \neq i) \). Vertex \( z_j \) is connected to \( C_j \) if \( x_i \) is not one of the literals in \( C_j \). May we interrupt the proceedings to say again why we’re doing all of this? You have just read the description of a certain graph \( G \). The graph is one that can be drawn as soon as someone hands us a \( SAT \) problem. We described the graph by listing its vertices and then listing its edges. What does the graph do for us? We suppose that we have just bought a computer program that can decide if graphs are colorable in a given number of colors. We paid \$9.95 for it, and we’d like to use it. But the first problem that needs solving happens to be a \( 3SAT \) problem, not a graph coloring problem. We aren’t so easily discouraged, though. We convert the \( 3SAT \) problem into a graph (that is \( n + k \)-colorable) if and only if the original \( 3SAT \) problem was satisfiable. Now we can get our money’s worth by running the graph coloring program even though what we really wanted to do was solve a \( 3SAT \) problem. Image Analysis: ### Analysis of the Attached Visual Content #### 1. Localization and Attribution - The entire content represents a single page of text. - Since there are no distinct images other than graphs or diagrams, it's considered as one image. - Image number assigned: **Image 1** #### 4. Text Analysis - **Detected Text:** The text is primarily discussing various NP-complete problems in computational theory, specifically focusing on reducing cases to graph coloring problems and 3SAT (3-satisfiability) problems. - **Content Highlights:** - **Introduction:** The text begins by mentioning some transformations and proofs related to a problem, referencing certain formulae and conditions. - **Claim and Proof:** Discusses a claim (referencing a formula labeled \(5.4.1\)) and provides a proof that involves satisfying assignments and literals. - **Contradiction Argument:** An argument by contradiction shows that at least one of the literals must be true to satisfy the original claim. - **Transformation Observation:** Observes that certain transformations discussed can be done in polynomial time. - **Problem 2SAT:** Mentions in passing that the problem "2SAT" is in P (Polynomial time). - **Collection Growth:** Notes the growing collection of NP-complete problems, mentioning specifically the focus on reducing 3SAT to graph coloring problem. - **Theorem 5.4.2:** - States that the graph vertex coloring problem is NP-complete. - **Proof Steps:** - Given an instance of 3SAT, constructs a polynomial time graph \(G\) ensuring it is properly colored if and only if the clauses are satisfiable. - **Graph \(G\) Description:** Has \(k + n\) vertices, described with certain sets and connections. - **Vertices \(v_i, C_j:** Describes how vertices \(v_i\) and \(C_j\) are connected under specific conditions. - **Example and Application:** Discusses a practical scenario of buying a computer program to illustrate solving the graph coloring problem can incidentally solve a 3SAT problem. #### 9. Perspective and Composition - **Perspective:** The image is a direct capture of a page from a text, presumably a textbook or academic paper, shown from a top-down, orthogonal perspective. - **Composition:** - The page consists of structured paragraphs with theorem and proof formats. - Text is evenly aligned with a clear hierarchical structure (theorems, proofs, descriptions). #### 10. Contextual Significance - **Overall Document Context:** The text appears to be an excerpt from a chapter focused on computational theory, specifically dealing with NP-complete problems. - **Contribution to the Theme:** The image contributes significantly by showcasing a detailed approach to solving NP-complete problems, particularly through reducing problems to graph coloring which is a common method in computational complexity theory. #### 12. Graph and Trend Analysis - The presence of set notation and graph-related terminology indicates an underlying emphasis on showing how graph theoretical approaches can solve logical satisfiability problems. #### 13. Graph Numbers - **No Visual Graphs Detected:** This page does not contain visual graphs. Instead, it describes graphs in a theoretical context. ### Summary - The single image contains dense theoretical content related to NP-complete problems and their reduction to graph coloring problems. - Text structure includes paragraphs, theorems, proofs, and explanatory examples. - The main themes revolve around computational problem-solving techniques in polynomial time. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 123 Context: Maximum clique: We are given a graph \( G \) and an integer \( K \). The question is to determine whether or not there is a set of \( K \) vertices in \( G \), each of which is joined, by an edge of \( G \), to all of the others. Edge coloring: Given a graph \( G \) and an integer \( K \), can we color the edges of \( G \) in \( K \) colors, so that whenever two edges meet at a vertex, they will have different colors? Let us refer to an edge coloring of this kind as a proper coloring of the edges of \( G \). A beautiful theorem of Vizing's deals with this question. If \( \Delta \) denotes the largest degree of any vertex in the given graph, the Vizing's theorem asserts that the edges of \( G \) can be properly colored in either \( \Delta \) or \( \Delta + 1 \) colors. Since it is obvious that at least \( \Delta \) colors will be needed, this means that the edge chromatic number is in doubt by only one unit, for every graph \( G \). Nevertheless, the decision as to whether the correct answer is \( \Delta \) or \( \Delta + 1 \) is NP-complete. Hamilton path: In a given graph \( G \), is there a path that visits every vertex of \( G \) exactly once? Target sum: Given a finite set of positive integers whose sum is \( S \)? The above list, together with SAT, 3SAT, Travelling Salesman and Graph Coloring, constitutes a modest sampling of the class of these seemingly intractable problems. Of course, it must not be assumed that every problem that "sounds like" an NP-complete problem is necessarily so hard. If for example we ask for an Euler path instead of a Hamilton path (i.e., if we want to traverse edges rather than vertices) the problem would no longer be NP-complete, and in fact it would be in P, thanks to theorem 1.6.1. As another example, the fact that one can find the edge connectivity of a given graph in polynomial time (see section 3.8) is rather amazing considering the quite difficult appearance of the problem. One of our motivations for including the network flow algorithms in this book was, indeed, to show how very sophisticated algorithms can sometimes prove that seemingly hard problems are in fact computationally tractable. ## Exercises for section 5.4 1. Is the claim that we made and proved above (just after (5.4.2)) identical with the statement that the clause (5.4.1) is satisfiable if and only if the clauses (5.4.2) are simultaneously satisfiable? Discuss. 2. Is the claim that we made and proved above (just after (5.4.2)) identical with the statement that the Boolean expression (5.4.1) is equal to the product of the Boolean expressions (5.4.2) in the sense that their truth values are identical on every set of inputs? Discuss. 3. Let it be desired to find out if a given graph \( G \) of \( V \) vertices, can be vertex colored in \( K \) colors. If we transform the problem into an instance of SAT, exactly how many clauses will there be? ## 5.5 Half a loaf ... If we simply want to solve an NP-complete problem, then we are faced with a very long computation. Is there anything that can be done to lighten the load? In a number of cases various kinds of probabilistic and approximate algorithms have been developed, some very ingenious, and these may often be quite serviceable, as we have already seen in the case of primality testing. Here are some of the strategies of "near" solutions that have been developed. ### Type 1: *Almost surely ...* Suppose we have an NP-complete problem that asks if there is a certain kind of substructure embedded inside a given structure. Then we may be able to develop an algorithm with the following properties: (a) It always runs in polynomial time (b) When it finds a solution then that solution is always a correct one (c) It doesn’t always find a solution, but it "almost always" does, in the sense that the ratio of successes to total cases approaches unity as the size of the input grows large. An example of such an algorithm is one that will find a Hamilton path in almost all graphs, failing to do so sometimes, but not often, and running always in polynomial time. We will describe such an algorithm below. * V. G. Vizing. On an estimate of the chromatic class of a \( p \)-graph (Russian), Diskret. Analiz. 3 (1964), 25-30. Image Analysis: ### Image Analysis #### 1. Localization and Attribution - **Image Position:** - The image is a full-page document. - Consists of text blocks and headings. #### 2. Object Detection and Classification - **Detected Objects:** - Text - Header - Subheaders - Paragraphs - Footnote #### 3. Scene and Activity Analysis - **Scene:** - The scene is an academic or educational document page. - Contains discussions about algorithmic problems. #### 4. Text Analysis - **Extracted Text:** - **Maxium clique:** Discusses testing the presence of K vertices fully connected in a graph. - **Edge coloring:** Color edges of G in K colors ensuring different colors at meeting points. - **Hamilton path:** Finding a path that visits each vertex exactly once. - **Target sum:** Identifying a subset whose sum equals S. - **Exercises for section 5.4:** Questions about solving and validating Boolean expressions. - **5.5 Half a loaf ...:** Strategies for tackling NP-complete problems with polynomial time algorithms. - **Type I:** Discussing probabilistic and approximate algorithms exhibiting the substructure defined. - **Footnote:** Refers to V.G. Vizing's work on chromatic classes of graphs (in Russian). #### 8. Color Analysis - **Color Composition:** - Predominantly black text on a white background. #### 9. Perspective and Composition - **Perspective:** - Straight-on view typical of a scanned or digitized document. - **Composition:** - The text is divided into logical sections with headers and subheaders guiding the reader through different topics. #### 10. Contextual Significance - **Overall Message:** - The document seems to be part of a larger text or book about graph theory and NP-complete problems. - The discussions and exercises suggest an educational context aimed at advancing understanding of specific computational problems. #### 12. Graph and Trend Analysis - **Trends and Interpretation:** - Theoretical exploration of solving computational problems using different techniques. - Focus on assessing and proving the complexity of problems. ### Additional Aspects #### Prozessbeschreibungen (Process Descriptions) - The document describes processes and strategies to tackle NP-complete problems. It examines knowing when an algorithm consistently solves a subproblem and approximations for solutions. #### Typen Bezeichnung (Type Designations) - **Type I: 'Almost surely...'** - Describes an algorithm finding a substructure in polynomial time with varying accuracy. #### Trend and Interpretation - The text identifies potential trends in the development of approximate and probabilistic algorithms for NP-complete problems, indicating advances in practical approximations when exact solutions are infeasible. ### Conclusion The analyzed page is from an educational document likely assessing graph theory problems and algorithmic complexity. It covers how certain problems can be translated into NP-complete problems, discusses potential approaches, and sets exercises for further understanding, highlighting the importance of theoretical computer science in practical problem-solving contexts. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 124 Context: # Chapter 5: NP-completeness ## Type II: 'Usually fast ...' In this category of quasi-solution are algorithms in which the uncertainty lies not in whether a solution will be found, but in how long it will take to find one. An algorithm of this kind will 1. always find a solution and the solution will always be correct, and 2. operate in an average of subexponential time, although occasionally it may require exponential time. The averaging is over all input strings of a given size. An example of this sort is an algorithm that will surely find a maximum independent set in a graph, will on the average require 'only' \( O(n^{\log n}) \) time to do so, but will occasionally, i.e., for some graphs, require nearly \( 2^n \) time to get an answer. We will outline such an algorithm below, in section 5.6. Note that \( O(n^{\log n}) \) is not a polynomial time estimate, but it’s an improvement over \( 2^n \). ## Type II: 'Usually fast ...' In this kind of algorithm, we don’t even get the right answer, but it’s close. Since this means giving up quite a bit, people like these algorithms to be very fast. Of course, we are going to drop our insistence that the questions be posed as decision problems, and instead they will be asked as optimization problems: find the shortest tour through these cities, or find the size of the maximum clique in this graph, or find a coloring of this graph in the fewest possible colors, etc. In response, these algorithms will 1. run in polynomial time 2. always produce some output 3. provide a guarantee that the output will not deviate from the optimal solution by more than such-and-such. An example of this type is the approximate algorithm for the traveling salesman problem that is given below, in section 5.8. It quickly yields a tour of the cities that is guaranteed to be at most twice as long as the shortest possible tour. Now let’s look at examples of each of these kinds of approximation algorithms. An example of an algorithm of Type I is due to Angluin and Valiant. It tries to find a Hamilton path (or circuit) in a graph \( G \). It doesn’t always find such a path, but in theorem 5.5.1 below we will see that it usually does, at least if the graph is from a class of graphs that are likely to have Hamilton paths at all. Input to the algorithm are the graph \( G \) and two distinguished vertices \( s, t \). It looks for a Hamilton circuit between the vertices \( s, t \) (if \( s = t \) on input then we are looking for a Hamilton circuit in \( G \)). The procedure maintains a partially constructed Hamilton path \( P \), from \( s \) to some vertex \( v_{dp} \), and it attempts to extend \( P \) by adjoining an edge to a new, previously unsatisfied vertex. In the process of doing so it will delete from the graph \( G \), from time to time, an edge, so we will also maintain a variable graph \( G' \) that is initially set to \( G \), but which is acted upon by the program. To do this, the algorithm chooses at random an edge \( (u_{dp}, v) \) that is incident with the current endpoint of the partial path \( P \), and it deletes the edge \( (u_{dp}, v) \) from the graph \( G' \), so it will never be chosen again. If \( v \) is a vertex that is not on the path \( P \) then the path is extended by adjoining the new edge \( (u_{dp}, v) \). So much is fairly clear. However if the new vertex \( v \) is already on the path \( P \), then we short circuit the path by deleting an edge from it and drawing in a new edge, as is shown below in the formal statement of the algorithm, and in Fig. 5.5.1. In that case the path does not get longer, but it changes so that it now has... #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 126 Context: # Chapter 5: NP-completeness What kind of graph has such a ‘good chance’? A great deal of research has gone into the study of how many edges a graph has to have before almost surely it must contain certain given structures. For instance, how many edges must a graph of \( n \) vertices have before we can be almost certain that it will contain a complete graph of \( n \) vertices? To say that graphs have a property ‘almost certainly’ is to say that the ratio of the number of graphs on \( n \) vertices that have the property to the number of graphs on \( n \) vertices approaches 1 as \( n \) grows without bound. For the Hamilton path problem, an important dividing line, or threshold, turns out to be at the level of \( \log n \) edges. That is to say, a graph of \( n \) vertices that has \( o(\log n) \) edges has relatively little chance of being even connected, whereas a graph with \( \omega(\log n) \) edges is almost certainly connected, and almost certainly has a Hamilton path. We now state the theorem of Angluin and Valiant, which asserts that the algorithm above will almost surely succeed if the graph \( G \) has enough edges. ## Theorem 5.5.1 Fix a positive real number \( \epsilon \). There exist numbers \( M \) and \( c \) such that if we choose a graph \( G \) at random from among those of \( n \) vertices and at least \( cn \) edges, and we choose arbitrary vertices \( u, v \) in \( G \), then the probability that algorithm UHC returns `success` before making a total of \( M \log n \) attempts to extend partially constructed paths is \( 1 - O(n^{-\epsilon}) \). ## 5.6 Backtracking (I): Independent Sets In this section we are going to describe an algorithm that is capable of solving some NP-complete problems fast, on the average, while at the same time guaranteeing that a solution will always be found, be it quickly or slowly. The method is called **backtracking**, and it has been a standard method in computer search problems when all else fails. It has been common to think of backtracking as a very long process, and indeed can be. But recently it has been shown that the method can be very fast on average, and that in the graph coloring problem, for instance, it functions in an average of constant time, i.e., the time is independent of the number of vertices, although to be sure, the worst-case behavior is very exponential. We first illustrate the backtrack method in the context of a search for the largest independent set of vertices (a set of vertices no two of which are joined by an edge) in a given graph \( G \), an NP-complete problem. In this case the average time behavior of the method is not constant, or even polynomial, but is subexponential. The method is also easy to analyze and to describe in this case. Hence consider a graph \( G \) of \( n \) vertices, in which the vertices have been numbered \( 1, 2, \ldots, n \). We want to find, in \( G \), the size of the largest independent set of vertices. In Fig. 5.6.1 below, the graph \( G \) has 6 vertices. ### Fig. 5.6.1: Find the largest independent set Begin by searching for an independent set \( S \) that contains vertex 1, so let \( S = \{1\} \). Now attempt to enlarge \( S \). We cannot enlarge \( S \) by adjoining vertex 2 to it, but we can add vertex 3. Our set \( S \) is now \( \{1, 3\} \). Now we cannot add vertex 4 (joined to 1) or vertex 5 (joined to 3) or vertex 6 (joined to 3), so we backtrack. Therefore we backtrack, by replacing the most recently added member of \( S \) by the next choice that we might have made for it. In this case, we delete vertex 3 from \( S \), and the next choice would be vertex 6. The set \( S \) is \( \{1, 6\} \). Again we have a dead end. If we backtrack again, there are no further choices with which to replace vertex 6, so we backtrack even further, and not only delete 6 from \( S \) but also replace vertex 1 by the next possible choice for it, namely vertex 2. Image Analysis: ### Analysis of the Visual Content #### 1. Localization and Attribution - **Image 1**: Located in the lower section of the page, positioned in the middle of the text. - **Image Number**: 1 #### 2. Object Detection and Classification - **Image 1**: Contains a diagram of a graph. - **Objects Detected**: - Nodes (labeled 1 to 6) - Edges connecting the nodes 5. **Diagram and Chart Analysis** - **Image 1** contains a graph with 6 vertices (1, 2, 3, 4, 5, 6). - **Axes**: Not applicable as this is a graph of nodes and edges, not a chart with axes. - **Scales**: Not applicable. - **Legends**: Not present in this graph. - **Key Insights**: - The figure demonstrates a search for the largest independent set within the graph. - Initially, vertices {1} are selected. - Subsequently, attempts are made to add vertices to this set while maintaining the independence property (no two vertices are adjacent). #### 3. Scene and Activity Analysis - **Image 1**: - **Scene**: A graphical representation of a set of vertices and edges in a mathematical graph. - **Activities**: An illustration of the process of finding the largest independent set in the graph. #### 4. Text Analysis - **Detected Text**: - **Text on the Page**: - Section Title: "Chapter 5: NP-completeness" - Subsections: Theorem 5.5.1, Backtracking (I): Independent Sets, and explanations. - Figure 5.6.1 description: "Find the largest independent set" - **Content Analysis**: - The text discusses the probability of a graph containing a Hamiltonian path, the theorem of Angluin and Valiant, and introduces backtracking as a method to solve NP-complete problems. - Theorem 5.5.1 provides a probabilistic guarantee of success for algorithm UHC on a random graph with `n` vertices and `m` edges. - The description of Fig. 5.6.1 explains the step-by-step algorithm to find the largest independent set in a graph. #### 8. Color Analysis - **Dominant Colors**: - The image is in grayscale, typical for academic textbooks. The text is black on a white background. - The diagram uses shades of gray to distinguish between vertices and edges. - **Impact on Perception**: The use of grayscale ensures clarity and focus on the content without distraction from colors. #### 12. Graph and Trend Analysis - **Trends**: - The diagram in Fig. 5.6.1 shows the progression of finding the largest independent set from the initial set {1} to final adjustments. - **Data Points**: - Initial Set: {1} - Intermediate Set: {1, 3}, {1, 6} - Final Set: {1, 4} #### 13. Graph Numbers - **Fig. 5.6.1 Data Points**: - Vertices: {1, 2, 3, 4, 5, 6} - Initial Independent Set: {1} - After Adding Vertex: {1, 3} - After Adjusting: {1, 6} #### 9. Perspective and Composition - **Perspective**: - The diagram is presented from a top-down view, common in graph theory visualizations. - **Composition**: - The nodes are spread evenly, and edges are clearly drawn to prevent overlap, making it easy to follow the text's explanation of the algorithm. #### Conclusion The page is an excerpt from a chapter discussing NP-completeness in graph theory. It includes theoretical explanations and a practical example using the backtracking algorithm to find the largest independent set in a graph. The use of diagrams supports the textual explanation and aids in understanding the described algorithm. The overall layout effectively combines text and visual elements to convey complex information clearly. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 127 Context: # 5.6 Backtracking (I): Independent Sets To speed up the discussion, we will now show the list of all sets \( S \) that turn up from start to finish of the algorithm: 1. \(\{1\}\) 2. \(\{13\}\) 3. \(\{16\}\) 4. \(\{2\}\) 5. \(\{24\}\) 6. \(\{245\}\) 7. \(\{25\}\) 8. \(\{3\}\) 9. \(\{34\}\) 10. \(\{343\}\) 11. \(\{35\}\) 12. \(\{4\}\) 13. \(\{45\}\) 14. \(\{5\}\) 15. \(\{6\}\) A convenient way to represent the search process is by means of the backtrack search tree \( T \). This is a tree whose vertices are arranged on levels \( L = 0, 1, 2, \ldots \) for a graph of \( n \) vertices. Each vertex of \( T \) corresponds to an independent set of vertices in \( G \). Two vertices of \( T \) corresponding to independent sets \( S_1, S_2 \) of vertices of \( G \) are joined by an edge in \( T \) if \( S_1 \) and \( S_2 \) consist of a single element: the highest-numbered vertex in \( S_1 \). On level \( L \), we find a vertex \( S \) for every independent set of exactly \( L \) vertices of \( G \). Level 0 consists of a single root vertex, corresponding to the empty set of vertices of \( G \). The complete backtrack search tree for the problem of finding a maximum independent set in the graph \( G \) of Fig. 5.6.1 is shown in Fig. 5.6.2 below. ## Fig. 5.6.2: The Backtrack Search Tree The backtrack algorithm amounts just to visiting every vertex of the search tree \( T \), without actually having to write down the tree explicitly in advance. Observe that the list of sets \( S \) above, or equivalently, the list of nodes of the tree \( T \), consists of exactly every independent set in the graph \( G \). A reasonable measure of the complexity of the searching job, therefore, is the number of independent sets that \( G \) has. In the example above, the graph \( G \) had 19 independent sets of vertices, including the empty set. The question of the complexity of backtrack search is therefore the same as the question of determining the number of independent sets of the graph \( G \). Some graphs have an enormous number of independent sets. The graph \( T_n \), of \( n \) vertices and no edges whatever has \( 2^n \) independent sets of vertices. The backtrack tree will have \( 2^n \) nodes, and the search will be a long one indeed. The complete graph \( K_n \) of \( n \) vertices and every possible edge, \( n(n-1)/2 \) in all, has just \( n+1 \) independent sets of vertices. Any other graph \( G \) of \( n \) vertices will have a number of independent sets that lies between these two extremes of \( 2^n \) and \( 2^{n-1} \). Sometimes backtracking will take an exponentially long time, and sometimes it will be fairly quick. Now the question is, on the average how fast is the backtrack method for this problem? What we are asking for is the average number of independent sets that a graph \( G \) of \( n \) vertices has. But that is the sum, over all vertex subsets \( S \subseteq \{1, \ldots, n\} \), of the probability that \( S \) is independent. If \( S \) has \( k \) vertices, then the probability that \( S \) is independent is the probability that, among the \( k(k - 1)/2 \) possible edges that might join a pair of vertices in \( S \), exactly zero of these edges actually lie in the random graph \( G \). Since each of these \( \binom{k}{2} \) edges has a probability \( 1/2 \) of appearing in \( G \), the probability that none of them appear is \( 2^{-k(k-1)/2} \). Hence the average number of independent sets in a graph of \( n \) vertices is \[ I_n = \sum_{k=0}^{n} \binom{n}{k} 2^{-k(k-1)/2}. \tag{5.6.1} \] Image Analysis: ### Comprehensive Examination #### 1. Localization and Attribution - **Image 1:** - Located centrally in the middle of the page. - Identified as Fig. 5.6.2. #### 2. Object Detection and Classification - **Image 1:** - **Objects Detected:** - Different nodes represented by circles containing numbers. - Lines connecting these nodes, forming a tree structure. - **Classification by Category:** - Nodes: Represent different states in the backtracking algorithm. - Lines: Indicate relationships or transitions between the states. #### 3. Scene and Activity Analysis - **Image 1:** - **Scene Description:** - A hierarchical tree diagram with nodes labeled by numbers and letters. - **Activities Taking Place:** - The nodes represent vertices of a graph, and the connections indicate the exploration of possible sets without conflicts. #### 4. Text Analysis - **Text Extracted:** - "Fig. 5.6.2: The backtrack search tree" - Main text includes explanations about the backtracking algorithm to find independent sets, organization of sets on different levels, and explanation about backtrack search complexity and applications to other graph types. - **Content Significance:** - Describes the process, complexity, and practical implications of the backtrack search method to find independent sets in a graph. #### 5. Diagram and Chart Analysis - **Diagram Analysis:** - **Axes, Scales, and Legends:** - No explicit axes or scales. - Levels are labeled from Level 0 to Level 3. - **Key Insights:** - Representation of all possible sets expands exponentially as depicted by the increasing number of nodes at each level. - Demonstrates the practical depth-first search steps of a backtracking algorithm. #### 6. Product Analysis - **Not Applicable** #### 7. Anomaly Detection - **No noticeable anomalies or unusual elements identified.** #### 8. Color Analysis - **Color Composition:** - Black and white, typical for academic or technical diagrams. - Dominant colors: Black text and lines, white background. - **Impact on Perception:** - Clear contrast ensures easy readability and focus on details. #### 9. Perspective and Composition - **Perspective:** - Straight-on view, which is standard for tree diagrams. - **Composition:** - Centered, hierarchical structure with clear connections between nodes. - Nodes are well-spaced and aligned for readability. #### 10. Contextual Significance - **Context within Document:** - Supports the explanatory text about backtrack search strategy in finding independent sets in graphs. - Visual representation aligns with the theoretical descriptions and facilitates understanding. #### 11. Metadata Analysis - **Not Applicable** #### 12. Graph and Trend Analysis - **Not Applicable** #### 13. Graph Numbers - **Not Applicable** ### Additional Aspects #### Ablaufprozesse (Process Flows) - **Depicted Process Flows:** - The backtracking search process to find independent sets in graphs. - Explores all vertices and edge combinations systematically. #### Prozessbeschreibungen (Process Descriptions) - **Description:** - Backtrack search starts from the root node. - Each subset of vertices explored and expanded level by level. - Branches represent possible combinations extending in a depth-first manner. - Process detailed in the accompanying text for complete context. #### Typen Bezeichnung (Type Designations) - **Identified Types:** - Different independent sets of vertices. - Separated into levels indicating stages of the search. #### Trend and Interpretation - **Identification and Interpretation:** - Highlights exponential growth of potential combinations in larger graphs. - Illustrates complexity and efficiency considerations. #### Tables - **Not Applicable** #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 128 Context: # Chapter 5: NP-completeness Hence in (5.6.1) we have an exact formula for the average number of independent sets in a graph of n vertices. A short table of values of \( I_n \) is shown below, in Table 5.6.1, along with values of \( 2^n \) for comparison. Clearly the average number of independent sets in a graph is a lot smaller than the maximum number that graphs of that size might have. | n | \( I_n \) | \( 2^n \) | |-----|------------|----------------| | 2 | 3.5 | 4 | | 3 | 5.6 | 8 | | 4 | 8.5 | 16 | | 5 | 12.3 | 32 | | 10 | 52 | 1024 | | 15 | 149.8 | 32768 | | 20 | 350.6 | 1048576 | | 30 |1342.5 | 1073741824 | | 40 |3862.9 | 1099511627776 | ### Exercises for section 5.6 1. What is the average number of independent sets of size k that are in graphs of \( V \) vertices and \( E \) edges? 2. Let \( t_k \) denote the kth term in the sum (5.6.1). (a) Show that \( t_k/t_{k-1} > 1 \) when k is small, then let \( k \) pass a certain critical value \( k_0 \). Hence show that the terms in the sum (5.6.1) increase in size until \( k = k_0 \) and then decrease. (b) Now we will estimate the size of \( k_0 \) in the previous problem. - Show that \( t_k < \) when \( k = \lfloor \log_2 n \rfloor \) and \( t_k > \) when \( k = \lfloor \log_2 n - \log_k n \rfloor \). Hence the index k of the largest term in (5.6.1) satisfies \[ \lfloor \log_2 n - \log_k n \rfloor < k_0 < \lceil \log_2 n \rceil \] (The entire sum in (5.6.1) is at most n + 1 times as large as its largest single term. Using Stirling's formula (1.11.10) and 3(a) above to show that the kth term is \( O((n+1)^{k}) \) and therefore the same is true of the whole sum, i.e., of \( I_n \).) ### 5.7 Backtracking (II): Graph coloring In another NP-complete problem, that of graph-coloring, the average amount of labor in a backtrack search is \( O(n) \) (bounded) as n, the number of vertices in the graph, grows without bound. More precisely, for fixed \( k \), if we ask “Is the graph \( G \) of \( V \) vertices, properly vertex-colorable in \( k \) colors?”, then the answer in a backtrack search for the answer is bounded. Hence not only is the average of polynomial growth, but the polynomial is of degree 0 in \( V \). To be more precise, consider the case of 3 colors. It is already NP-complete to ask if the vertices of a given graph can be colored in 3 colors. Nevertheless, the average number of nodes in the backtrack search tree for this problem is about 197, averaged over all graphs of all sizes. This means that if we input a random graph of 1,000,000 vertices, and ask if it is 3-colorable, then we can expect an answer (probably “No”) after only about 197 steps of computation. To prove this we will need some preliminary lemmas. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 129 Context: # 5.7 Backtracking (II): Graph Coloring ## Lemma 5.7.1 Let \( s_1, \ldots, s_K \) be nonnegative numbers whose sum is \( L \). Then the sum of their squares is at least \( \frac{L^2}{K} \). **Proof:** We have \[ 0 \leq \sum_{i=1}^K s_i^2 = \sum_{i=1}^K \left( s_i - \frac{L}{K} \right)^2 + \frac{L^2}{K} \] \[ = \sum_{i=1}^K s_i^2 - \frac{L^2}{K^2} + \frac{L^2}{K} \] \[ = \sum_{i=1}^K s_i^2 - \frac{L^2}{K^2} + \frac{L^2}{K} \] \[ \Rightarrow \sum_{i=1}^K s_i^2 \geq \frac{L^2}{K}. \] The next lemma deals with a kind of inside-out chromatic polynomial question. Instead of asking “How many proper colorings can a given graph have?”, we ask “How many graphs can have a given proper coloring?” ## Lemma 5.7.2 Let \( C \) be one of the \( K^L \) possible ways to color in \( K \) colors a set of \( L \) abstract vertices \( 1, 2, \ldots, L \). Then the number of graphs \( G \) whose vertex set is that set of \( L \) colored vertices and for which \( C \) is a proper coloring of \( G \) is at most \( 2^{L(L - 1)/2} \). **Proof:** In the coloring \( C \), suppose \( s_1 \) vertices get color 1, \( \ldots, s_K \) get color \( K \), where, of course, \( s_1 + \ldots + s_K = L \). If a graph \( G \) is to admit \( C \) as a proper vertex coloring then its edges can be drawn only between vertices of different colors. The number of edges that \( G \) might have is therefore \[ s_1 s_2 + s_1 s_3 + \ldots + s_K s_{K-1} + \ldots + s_{K-1} s_K \] for which we have the following estimate: \[ \sum_{1 \leq j < k \leq K} s_j s_k \leq \frac{1}{2} \sum_{j=1}^K s_j^2 \] \[ = \frac{1}{2} \left( \sum_{j=1}^K s_j^2 - \sum_{j=1}^K s_j^2 \right) = \frac{1}{2} \sum_{j=1}^K s_j^2 \] \[ \Rightarrow \sum_{1 \leq j < k \leq K} s_j s_k \leq \frac{L^2}{2} - \frac{1}{2} \sum_{j=1}^K s_j^2 \quad \text{(by lemma 5.7.1)} \] The number of possible graphs \( G \) is therefore at most \( 2^{(L(L - 1)/2)} \). ## Lemma 5.7.3 The total number of proper colorings in \( K \) colors of all graphs of \( L \) vertices is at most \[ K \cdot L^{2^{(L-1)/K}}. \] **Proof:** We are counting the pairs \( (G, C) \), where the graph \( G \) has \( L \) vertices and \( C \) is a proper coloring of \( G \). If we keep \( C \) fixed and sum on \( G \), then by lemma 5.7.2 the sum is at most \( 2^{(L-1)/K} \). Since there are \( K \) such \( C \), the proof is finished. Now let's think about a backtrack search for a \( K \)-coloring of a graph. Begin by using color 1 on vertex 1. Then use color 2 on vertex 2 unless \( (1, 2) \) is an edge, in which case use color 2. As the coloring progresses through vertices \( 1, 2, \ldots, L \), we color each new vertex with the lowest available color number that does not cause a conflict with some vertex that has previously been colored. Image Analysis: ### Comprehensive Analysis of the Attached Visual Content #### 1. **Localization and Attribution** - The visual content consists of one page from a document. - The page includes multiple mathematical expressions, proofs, and text explanations. - There is no numbering of images as there is a single continuous page of text and equations. #### 2. **Object Detection and Classification** - **Text and equations**: The page is composed mainly of paragraphs containing text and mathematical expressions. - **Mathematical Symbols**: Various symbols including summation (∑), inequality signs (≤), and fractions are present. - **Rectangles with numbers**: There are black rectangles with white text inside, representing the end of lemmas and proofs. #### 3. **Scene and Activity Analysis** - The scene is academic and mathematical, with the content focused on graph coloring and related lemmas and proofs. - The activities involve the presentation and proof of lemmas relating to the sum of squares and proper graph coloring. #### 4. **Text Analysis** - **Lemma 5.7.1**: Discusses nonnegative numbers and the sum of their squares. - **Significance**: The lemma concludes that the sum of the squares of nonnegative numbers under certain conditions is at least \(L^2 / K\). - **Lemma 5.7.2**: Explores a coloring problem in graph theory, providing a bound on the number of possible graphs for a given proper coloring. - **Significance**: This is crucial for understanding the complexity and constraints in graph coloring. - **Lemma 5.7.3**: Calculates the total number of proper colorings in \(K\) colors of all graphs with \(L\) vertices. - **Significance**: Provides a formula (\( K^L \cdot 2^{(L^2 - L) \cdot (1 - 1/K) / 2} \)) for quantifying the proper colorings, advancing theoretical knowledge in graph theory. - **Proofs**: Detailed mathematical proofs are provided for each lemma, following a typical structure of definitions, logical deductions, and conclusions. #### 7. **Anomaly Detection** - There are no apparent anomalies or unusual elements in the visual content. All elements align with standard mathematical documentation practices. #### 8. **Color Analysis** - **Dominant Colors**: The document uses a standard black-and-white color scheme typical for academic papers. - **Black**: Used for all text and mathematical symbols, enhancing readability. - **White**: Background color, ensuring contrast and clarity. #### 9. **Perspective and Composition** - **Perspective**: The perspective is direct, as expected from a scanned or digitally created academic document. - **Composition**: The page is well-structured with clear sections for lemmas and proofs. Equations are centered and inline with text, following standard mathematical document formatting. #### 13. **Graph Numbers** - **Lemma 5.7.1**: - The sum of squares formula is \[ \sum_{i=1}^K s_i^2 = \frac{L^2}{K} \] - **Lemma 5.7.2**: - The number of graphs \(G\) possible is \[ 2^{(L^2 - L) \cdot (1 - 1/K) / 2} \] - **Lemma 5.7.3**: - The total number of proper colorings is \[ K^L \cdot 2^{(L^2 - L) \cdot (1 - 1/K) / 2} \] #### **Contextual Significance** - The page appears to be from a chapter on "Backtracking (II): Graph Coloring" in a mathematical or computer science text. - **Contribution**: This section contributes to the overall understanding of graph coloring by providing theoretical bounds and proofs that facilitate further study and algorithms development. Overall, the page is a detailed exploration of specific aspects of graph theory, primarily focused on proper coloring and combinatorial bounds, aimed at readers with a strong background in mathematics or computer science. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 130 Context: # Chapter 5: NP-completeness At some stage, we may reach a dead end: out of colors, but not out of vertices to color. In the graph of Fig. 5.7.1, if we try to 2-color the vertices we can color vertex 1 in color 1, vertex 2 in color 2, vertex 3 in color 1, and then we'd be stuck because neither color would work on vertex 4. ![Fig. 5.7.1: Color this graph](path_to_image) When a dead end is reached, back up to the most recently colored vertex for which other color choices are available, replace its color with the next available choice, and try again to push forward to the next vertex. The (futile) attempt to color the graph in Fig. 5.7.1 with 2 colors by the backtrack method can be portrayed by the **backtrack search** tree in Fig. 5.7.2. The search is thought of as beginning at ‘Root’. The label at each node of the tree describes the colors of the vertices that have so far been colored. Thus ‘212’ means that vertices 1, 2, and 3 have been colored, respectively, in colors 2, 1, and 2. ![Fig. 5.7.2: A frustrated search tree](path_to_image) ![Fig. 5.7.3: A happy search tree](path_to_image) Image Analysis: ### Comprehensive Analysis of the Attached Visual Content #### 1. Localization and Attribution - **Image 1:** - Positioned at the top of the page. - Caption: Fig. 5.7.1: Color this graph - **Image 2:** - Positioned in the middle of the page. - Caption: Fig. 5.7.2: A frustrated search tree - **Image 3:** - Positioned at the bottom of the page. - Caption: Fig. 5.7.3: A happy search tree #### 2. Object Detection and Classification - **Image 1 (Fig. 5.7.1):** - Objects: Vertices and edges forming a graph. - Key Features: The graph consists of four vertices connected by edges, forming a shape visible as a triangle with an extended line. - **Image 2 (Fig. 5.7.2):** - Objects: Nodes and connecting lines forming a search tree. - Key Features: The nodes are labeled with numerical values indicating the coloring state of vertices. - **Image 3 (Fig. 5.7.3):** - Objects: Nodes and connecting lines forming another search tree. - Key Features: This tree is more extensive with detailed numerals representing vertex colorings. #### 3. Scene and Activity Analysis - **Image 1 (Fig. 5.7.1):** - Scene: A simple graph illustration. - Activity: An attempt to color the vertices of the graph. - **Image 2 (Fig. 5.7.2):** - Scene: A binary search tree. - Activity: Illustrates a search process that ends in frustration due to being unable to find a successful coloring of the graph. - **Image 3 (Fig. 5.7.3):** - Scene: Another binary search tree. - Activity: Shows a successful search process, resulting in heuristics that lead to a correctly colored graph. #### 4. Text Analysis - **Text Content:** - At some stage we may reach a dead end: out of colors, but not out of vertices to color... - When a dead end is reached, back up to the most recently colored vertex... - The (futile) attempt to color the graph in Fig. 5.7.1 with 2 colors by the backtrack method... - **Significance:** - The text explains the process of graph coloring and the backtracking algorithm, highlighting frustration when a dead end is reached, and satisfaction when a proper path is found. #### 7. Anomaly Detection - **Image 1:** - No unusual elements detected. - **Image 2:** - No noticeable anomalies; tree represents unsuccessful search attempts. - **Image 3:** - The volume of nodes suggests a more complex and refined search, but no anomalies. #### 8. Color Analysis - **Overall Color Composition:** - The images are in black and white, typical for textbook illustrations focusing on structure and logic rather than color impact. #### 9. Perspective and Composition - **Image 1:** - Perspective: Planar view of a graph. - Composition: Balanced with four vertices connected cleanly with edges. - **Image 2 & 3:** - Perspective: Hierarchical tree structures viewed from the root (top) downwards. - Composition: Nodes are symmetrical, illustrating the progression of search algorithms. #### 10. Contextual Significance - **Overall Contribution:** - The images visually support an explanation in a chapter about NP-completeness, emphasizing the difficulties in solving certain computational problems (e.g., graph coloring) and demonstrating both unsuccessful and successful search strategies. #### 13. Graph Numbers - **Image 2 (Fig. 5.7.2):** - Data Points: Root (1, 2), Level 1 (12, 21), Level 2 (121, 212) - **Image 3 (Fig. 5.7.3):** - Data Points: Root (1, 2), Level 1 (12, 13, 21, 23, 31, 32), Level 2 and beyond include more extensive numbering indicating paths and successful searches. #### Ablaufsprozesse (Process Flows) - **Images 2 and 3:** - These illustrate decision-making processes in search trees. #### Prozessbeschreibungen (Process Descriptions) - **Images 2 and 3:** - They depict the backtracking process in the search for valid graph colorings. #### Typen Bezeichnung (Type Designations) - **Images 2 and 3:** - Types are designated by numerical labels indicating vertex colorings at different nodes in the search process. ### Summary The content comprehensively demonstrates the concept of graph coloring in the context of NP-completeness through visual aids, including graphs and search trees, which effectively illustrate the problem-solving process via backtracking. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 131 Context: 1. **Localization and Attribution:** - **Image Number:** 1 2. **Text Analysis:** - **Detected Text:** ``` 5.7 Backtracking (II): graph coloring If instead we use 3 colors on the graph of Fig. 5.7.1 then we get a successful coloring; in fact we get 12 of them, as is shown in Fig. 5.7.3. Let's concentrate on a particular level of the search tree. Level 2, for instance, consists of the nodes of the search tree that are at a distance 2 from `Root.' In Fig. 5.7.3, level 2 contains 6 nodes, corresponding to the partial colorings 12, 13, 21, 23, 31, 32 of the graph. When the coloring reaches vertex 2 it has seen only the portion of the graph G that is induced by vertices 1 and 2. Generally, a node at level L of the backtrack search tree corresponds to a proper coloring in K colors of the subgraph of G that is induced by vertices 1,2,..., L. Let H_l(G) denote that subgraph. Then we see the truth of Lemma 5.7.4. The number of nodes at level L of the backtrack search tree for coloring a graph G in K colors is equal to the number of proper colorings of H_l(G) in K colors, i.e., to P(K, H_l(G)), where P is the chromatic polynomial. We are now ready for the main question of this section: what is the average number of nodes in a backtrack search tree for K-coloring graphs of n vertices? This is A(n, K) = 1/number of graphs G_n Σ_(graphs G_n) no. of nodes in tree for G = 2^(-3) Σ_(graphs G_i) (Σ L>=0 Σ_(nodes at level L)){no. of nodes at level L}} = 2^(-3) Σ_(graphs G_i) Σ L>=0 P(K, H_l(G)) (by lemma 5.7.4) = 2^(-3) Σ_(graphs G_i) Σ L>=0 (Σ_(Hl) P(K, H_l(G))... Fix some value of L and consider the inner sum. As G runs over all graphs of N vertices, H_l(G) selects the subgraph of G that is induced by vertices 1, 2,..., L. Now lots of graphs G of n vertices have the same H_l(G) (G) selecting at vertices 1, 2,... L. In fact exactly (n choose L)*(n-L choose i-L) different graphs G of n vertices all have the same graph H of L vertices in residence at vertices 1, 2,..., L (see exercise 15 of section 1.6). Hence (5.7.2) gives A(n, K) = 2^(-3) Σ L>=0 (choose i-L)(2^-L)(Σ_(H_h^l) P(K, H)) = Σ L>=0 2^(-l)(choose i-L) (Σ_(H_h^(_l)) P(K, H)). The inner sum is exactly the number that is counted by lemma 5.7.3, and so A(n, K) = Σ L>=0 2^(-L)(choose i-L)K^L{2^(-1-(L)(i/2}} <= Σ L>=0 K^L2^(-L/2-(L^2)/2/K. The infinite series actually converges! Hence, A(n, K) is bounded, for all n. This proves Theorem 5.7.1. Let A(n, K) denote the average number of nodes in the backtrack search trees for K-coloring the vertices of all graphs of n vertices. Then there is a constant h = h(K), that depends on the number of colors, K, but not on n, such that A(n, K) ≤ h(K) for all n. ``` - **Content Significance:** - This text discusses backtracking in the context of graph coloring. - It explains how nodes at different levels of a backtrack search tree correspond to colorings of subgraphs. - Lemma 5.7.4 is introduced, focusing on the number of nodes at a given level correlating to the number of proper colorings. - The text derives a formula for the average number of nodes in the backtrack search tree for K-coloring graphs with n vertices (A(n, K)). - Theorem 5.7.1 is stated, which provides bounds on A(n, K), showing that it is finite and does not grow indefinitely with n. 11. **Graph and Trend Analysis:** - While there is no visual graph included, a mathematical trend is described. - The average number of nodes in a tree for K-coloring graphs with n vertices is bounded. - This information is essential for understanding the efficiency of backtracking algorithms in graph coloring problems. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 133 Context: ```markdown # 5.7 Backtracking (II): Graph Coloring Suppose \( f \) is longer than \( \epsilon \). Then \( T' \) would not be minimal because the tree that we would obtain by exchanging \( f \) for \( e_i \) in \( T' \) (why is it still a tree if we do that exchange?) would be shorter, contradicting the minimality of \( T' \). Hence \( f \) and \( g \) have the same length. In \( T' \) exchange \( f \) for \( e_i \). Then \( T' \) is still a tree, and is still a minimum spanning tree. The index of the first edge of \( T \) that does not appear in \( T' \) is now at least \( r + 1 \), one unit larger than before. The process of replacing edges of \( T \) that do not appear in \( T' \) without affecting the minimality of \( T \) can be repeated until every edge of \( T \) appears in \( T' \), i.e., until \( T' = T \). Hence \( T \) was a minimum spanning tree. That fulfills one step of the process that leads to a polynomial time travelling salesman algorithm that finds a tour of at most twice the minimum length. The next step involves finding an Euler circuit. Way back in theorem 1.6.1 we learned that a connected graph has an Euler circuit if and only if every vertex has even degree. Recall that the proof was recursive in nature, and immediately implies a linear time algorithm for finding Euler circuits recursively. We also noted that the proof remains valid even if we are dealing with a multigraph, that is, with a graph in which several edges are permitted between single pairs of vertices. We will in fact need that extra flexibility for the purpose at hand. Now we have the ingredients for a quick near-optimal travelling salesman tour. **Theorem 5.8.1**. An algorithm that operates in polynomial time and will return a travelling salesman tour whose length is at most twice the length of a minimum tour. Here is the algorithm. Given \( n \) cities in the plane: 1. Find a minimum spanning tree \( T \) for the cities. 2. Double each edge of the tree, thereby obtaining a ‘multitree’ \( T' \) in which each pair of vertices there are \( 0 \) or \( 2 \) edges. 3. Since every vertex of the doubled tree has even degree, there is an Eulerian tour \( W \) of the edges of \( T' \); find one, as in the proof of theorem 1.6.1. 4. Now we construct the output tour of the cities. Begin at some city and follow the walk \( W \). However, instead of starting at some vertex \( v \), go from \( v \) directly (via a straight line) to the next vertex of the walk \( W \) that you haven't visited yet. This means that you will often short-circuit portions of the walk \( W \) by going directly from some vertex to another via several edges "down the road." The tour \( Z \) that results from (4) above is indeed a tour of all the cities in which each city is visited once and only once. We claim that its length is at most twice optimal. Let \( Z \) be an optimum tour, and let \( e \) be some edge of \( Z \). Then \( Z - e \) is a path that visits all of the cities. Since a path is a tree, \( Z - e \) is a spanning tree of the cities, hence \( Z - e \) is at least as long as \( T \), and so \( Z \) is surely at least as long as \( T \). Next consider the length of the tour \( Z \). A step of \( Z \) that walks along an edge of the walk \( W \) has length equal to the length of that edge of \( W \). A step of \( Z \) that short-circuits several edges of \( W \) has length at most equal to the sum of the lengths of the edges of \( W \) that were short-circuited. If we sum these inequalities over all steps of \( Z \) we find that the length of \( Z \) is at most equal to the length of \( W \), which is in turn twice the length of the tree \( T \). If we put all of this together we find that \[ \text{length}(Z) \leq \text{length}(Z - e) \leq \text{length}(T) = \frac{1}{2} \text{length}(W) \leq \frac{1}{2} \text{length}(Z') \] as claimed. More recently it has been proved (Christodes, 1976) that polynomial time we can find a TSP tour whose total length is at most \( 3/2 \) as long as the original tour. The algorithm makes use of Edmonds’s algorithm for maximum matching in a general graph (see the reference at the end of Chapter 3). It will be interesting to see if the factor \( 3/2 \) can be further refined. Polynomial time algorithms are known for other NP-complete problems that guarantee that the answer obtained will not exceed, by more than a constant factor, the optimum answer. In some cases this guarantees apply to the difference between the answer that the algorithm gives and the best one. See the references below for more information. ``` Image Analysis: ### Text Analysis: #### Image 1 - **Text Content:** - The text discusses a polynomial time approximation algorithm for finding a near-optimal traveling salesman tour. - It restates a theorem for the polynomial time working of this algorithm. - References to previous sections are included (e.g., Section 1.6.1). - Descriptions of the steps involved in the algorithm for n cities are provided. - Definitions and explanations about Euler circuits, multitreets, and process flows related to constructing and optimizing the traveling salesman path are mentioned. - A mathematical expression demonstrates the length relationship between different paths and circuits, including a proof. - **Significance in Context:** - Provides context for the algorithm's efficiency and optimality in solving the Traveling Salesman Problem under certain conditions. - Explains theoretical underpinnings (from earlier sections and external references) to give a potential context of research or course material on computational theory and graph algorithms. ### Color Analysis: - **Image 1:** - Dominated by black text on a white background, which is typical for textual academic or technical content. - The monochromatic color scheme enhances readability and is appropriate for the clear communication of complex mathematical recommendations and proofs. ### Perspective and Composition: - **Image 1:** - Straightforward, top-down perspective, typical of textbook pages. - The layout is columnar with margins and justified text, adhering to standard academic formatting. ### Contextual Significance: - **Image 1:** - Likely taken from an academic textbook or research paper dealing with graph theory, specifically focusing on algorithms related to the Euler circuits and Traveling Salesman Problem. - This page provides necessary theoretical explanations as part of broader material, indicating its role in teaching or scholarly examination of algorithms. ### Conclusion: This analysis indicates that the given image is a page filled with text from an advanced academic context, focusing on polynomial-time algorithms for the Traveling Salesman Problem. The explanations, definitions, and formal proof presented signify that this material is aimed at a reader with a solid understanding of theoretical computer science, likely providing coursework or supporting material for in-depth study of graph theory and its applications. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 133 Context: ### Color Analysis - **Color Composition:** - The image is primarily composed of black text on a white background, typical of printed documents. No additional color variations are present that contribute to the content. ### Perspective and Composition - **Perspective:** - The perspective is that of a flat, directly photographed or scanned page. - **Composition:** - The image is structured in columns of text with occasional numbered lists. Sections are clearly delineated with headings. ### Contextual Significance - **Contribution to Overall Message:** - The image contributes detailed theoretical content pertinent to the field of graph theory and algorithm design, specifically focusing on the Traveling Salesman Problem and Euler circuits. ### Graph and Trend Analysis - **Graphs and Trends:** - No graphs or explicit data trends are presented in this image. The focus is on theoretical descriptions and algorithmic steps. ### Prozessbeschreibungen (Process Descriptions) - **Processes Described:** - The image describes the step-by-step procedure of an algorithm for finding a near-optimal traveling salesman tour. ### Typen Bezeichnung (Type Designations) - **Type Designations:** - The text refers to types of mathematical structures such as trees, 'multitrees,' Eulerian tours, and spanning trees. ### Trend and Interpretation - **Identified Trends and Interpretations:** - The trend in the text shows a progressive build-up from theoretical background to practical algorithm description and mathematical proofs. ### Tables - **Content Description:** - No tables are present in this image. #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 136 Context: # Index - adjacent 40 - Adleman, L. 149, 164, 165, 176 - Alo, A. V. 103 - Anguita, D. 209-211, 227 - Appel, K. 69 - average complexity 57, 211f. - backtracking 211f. - Bender, E. 227 - Bentley, J. L. 54 - Berger, R. 3 - big O 9 - binary system 19 - bin-packing 178 - binomial theorem 37 - bipartite graph 44, 182 - binomial coefficients 35 - growth of 33 - blocking flow 124 - Burnside's lemma 46 - cardinality 35 - canonical factorization 138 - capacity of a cut 115 - Carmichael numbers 155 - certificate 171, 182, 193 - Chenskasy, B. V. 135 - Chinese remainder theorem 154 - chromatic number 44 - chromatic polynomial 73 - Cohen, H. 176 - coloring graphs 43 - complement of a graph 44 - complexity 1 - worst-case 4 - connected 41 - Cook, S. 187, 194-201, 226 - Cook's theorem 195f. - Cooley, J. W. 103 - Coppersmith, D. 99 - cryptography 165 - Cristofides, N. 224, 227 - cut in a network 115 - capacity of 115 - cycle 61 - cyclic group 152 - decimal system 19 - decision problem 181 - degree of a vertex 40 - deterministic 193 - Diffie, W. 176 - digitalis 105 - Divine, D. 103, 134 - divide 137 - Dixon, J. D. 170, 175, 177 - domino problem 3 - ‘easy’ computation 1 - edge coloring 206 - edge connectivity 132 #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 138 Context: ```markdown # Index - **k-subset** 35 - **language** 132 - **Lawler, E.** 99 - **layered network** 120f - **Lenstra, H. W., Jr.** 176 - **Levyque, W. J.** 175 - **Lewis, P. A. W.** 103 - **Lewis, P. M.** 227 - **L'Hôpital's rule** 12 - **Little, O.** 54 ## Network - **network** 105 - **flow** 105f - **dense** 107 - **layered** 108, 120f - **height** 125 - **Nijenhuis, A.** 60 - **nondeterministic** 193 - **NP** 182 - **NP-complete** 61, 180 - **NP-completeness** 178f - **octal system** 21 - **optimization problem** 181 - **orders of magnitude** 6f ## P - **P** 12 - **Palmer, E. M.** 228 - **Pav, V.** 103 - **Pascal’s triangle** 36 - **path** 41 - **predicate function** 87 - **polynomial time** 2, 179, 185 - **polynomials, multiplication of** 96 - **Ponomarev, C.** 143, 164, 176 - **positional number systems** 19f - **Pramodh-Kumar, M.** 108f, 135 - **Pratt, V.** 171, 172 - **Prim, R. C.** 227 - **primality testing** 148f, 186 - **routing** 179 - **prime number** 2 - **primitive root** 152 - **pseudorandomity test** 149, 156ff - **strong** 158 - **public key encryption** 150, 165 - **Quicksort** 50f - **Rabin, M. O.** 149, 162, 175 - **Ralston, A.** 103 ``` #################### File: Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf Page: 139 Context: # Index - recurrence relations 26/f - recurrent inequality 31 - recursive algorithms 48/f - reducibility 185 - relative prime 138 - ring Z, 151 - Rivest, R. 165, 176 - roots of unity 86 - Rosenkrantz, D. 227 - RSA system 165, 168 - Rumyantsev, R. 149, 164, 176 - Runge, C. 103 ## SAT - SAT 195 - satisfiability 187, 195 - second vertex 111 - Schöning, A. 103 - Selbig, J. 176 - Shamir, A. 165, 176 - slowest 50 - Solvable, R. 149, 162, 176 - splitter 52 - Stearns, R. E. 227 - Stirling's formula 16, 216 - Strassen, V. 73, 103, 149, 162, 176 - synthetic division 86 ## 3SAT - target sum 206 - Tajima, R. E. 66, 70, 103, 135 - Θ (Theta of) 10 - tiling ? - tractable 5 - travelling salesman problem 178, 184, 221 - tree 45 - Trojanowski, A. 66, 103 - TSP 178, 201 - Tukey, J. W. 103 - Turing, A. 226 - Turing machine 187/f - Ullman, J. D. 103 - usable edge 111 - Valiant, L. 208-11, 227 - vertices 40 - Wizing, V. 206 - Wagstaff, S. 176 - Welch, P. D. 103 - Wilf, H. S. 60, 103, 227, 228 - Winograd, S. 99 - worst-case 4, 180 - Wright, E. M. 175 #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 4 Context: # Preface These lectures are intended as an introduction to the elementary theory of numbers. I use the word “elementary” both in the technical sense—complex variable theory is to be avoided—and in the usual sense—that of being easy to understand, I hope. I shall not concern myself with questions of foundations and shall presuppose familiarity only with the most elementary concepts of arithmetic, i.e., elementary divisibility properties, e.g., (greatest common divisor), l.c.m. (least common multiple), essentially unique factorization into primes and the fundamental theorem of arithmetic: if \( p \mid ab \) then \( p \mid a \) or \( p \mid b \). I shall consider a number of rather distinct topics each of which could easily be the subject of 15 lectures. Hence, I shall not be able to penetrate deeply in any direction. On the other hand, it is well known that in number theory, more than in any other branch of mathematics, it is easy to reach the frontiers of knowledge. It is easy to propound problems in number theory that are unsolved. I shall mention many of these problems; but the trouble with the natural problems of number theory is that they are either too easy or much too difficult. I shall therefore try to expose some problems that are of interest and unsolved but for which there is at least a reasonable hope for a solution by you or me. The topics I hope to touch on are outlined in the Table of Contents, as are some of the main reference books. Most of the material I want to cover will consist of old theorems proved in old ways, but I also hope to produce some old theorems proved in new ways and some new theorems proved in old ways. Unfortunately I cannot produce many new theorems proved in really new ways. #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 5 Context: # Chapter 1 ## Compositions and Partitions We consider problems concerning the number of ways in which a number can be written as a sum. If the order of the terms in the sum is taken into account, the sum is called a **composition** and the number of compositions of \( n \) is denoted by \( c(n) \). If the order is not taken into account, the sum is a **partition** and the number of partitions of \( n \) is denoted by \( p(n) \). Thus, the compositions of \( 3 \) are: - \( 3 \) - \( 3 = 1 + 2 \) - \( 3 = 2 + 1 \) - \( 3 = 1 + 1 + 1 \) so that \( c(3) = 4 \). The partitions of \( 3 \) are: - \( 3 \) - \( 3 = 2 + 1 \) - \( 3 = 1 + 1 + 1 \) so \( p(3) = 3 \). There are essentially three methods of obtaining results on compositions and partitions: first by purely combinatorial arguments, second by algebraic arguments with generating series, and finally by analytic operations on the generating series. We shall discuss only the first two of these methods. We consider first compositions, these being easier to handle than partitions. The function \( c(n) \) is easily determined as follows. Consider \( n \) written as a sum of \( 1 \)'s. We have \( n - 1 \) spaces between them and in each of the spaces we can insert a slash, yielding \( 2^{n-1} \) possibilities corresponding to the \( (n-1)^{\text{th}} \) composition of \( n \). For example: \[ c(3) = 3 = 1 + 1 + 1, \quad 3 = 1 + 2, \quad 3 = 2 + 1 \] Just to illustrate the algebraic method in this rather trivial case we consider: \[ \sum_{n=1}^{\infty} c(n)x^n \] It is easily verified that: \[ \sum_{n=1}^{\infty} c(n)x^n = \frac{1}{(1 - x)^2} = \sum_{m=0}^{\infty} (m + 1)x^m \] #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 30 Context: # Chapter 5. Congruences Roughly speaking, shows that the residues and non-residues are characterized by this property: Jacobi's law also obtained partial results for the cases of 3 consecutive residues and non-residues. Let \( R_k \) and \( N_k \) be the number of residues and non-residues, respectively. One might conjecture that \( R_k, N_k \to \infty \) among those who contributed to this question are Vandiver, Brauer, Dodge, Haywood, Davenport, and A. B. K. The most interesting result is that of A. Brauer. He showed that for \( p > p_0 \), \( R_k \) and \( N_k > 0 \). We shall shortly state this result. It depends on a very interesting result of Van der Waerden (1927). Given \( k \), there exists an integer \( N = N_k \) such that if one separates the integers \( 1, 2, \ldots, N \) into \( k \) classes in any manner whatsoever, at least one of the classes will contain an arithmetic progression of length \( k \). There are a number of unanswered questions about this theorem which we shall return to in a later section. Returning to Brauer's work, we shall show how the powers that all large primes have, say, \( r \) consecutive residues. One separates the numbers \( 1, 2, \ldots, r \) into 2 classes, residues and non-residues. If \( p \) is large enough one of these classes will contain, by Van der Waerden's theorem, \( 49 \) terms in arithmetic progression, say \[ a, a + t, a + 2t, \ldots, a + 48t. \] Now if \( t = c \) then we have \( 49 \) consecutive numbers of the same quadratic character, namely \[ c, c + 1, c + 2, \ldots, c + 48. \] If these are residues we are done. If non-residues then suppose \( p \) is the smallest nonresidue of \( d \leq 7 \) we have finished for the \( 1, 2, \ldots, r \) are consecutive nonresidues. If \( 4 \leq d \leq 7 \) for the \( 7 \) nonresidues \( c, c + 2t, c + 4t, \ldots \), we now divide these by the nonresidue of which \( r \) resides: \[ \frac{c}{d} = c + 1, \quad \frac{c}{d} = c + 6 \] and the result is complete. The proof of the existence of nonresidues is considerably more complicated. Furthermore, it is interesting to note that the existence of blocks of size \( r \) is not covered by these methods. We now return to the question raised by Gauss. What can be said about the least nonresidue \( r \) of a "prime"? Since \( 1 \) is a residue, the corresponding question about residues is what is the smallest prime residue; this question was attacked in the 1920s by a number of mathematicians, including Nagel, Schinzel, Polya, Landau, Vandiver, Brauer, and Vanguarda. Nagel, for example, proved that for \( r \geq 23, \, r \sqrt{p} \) and Schur proved that \[ \sum_{j=0}^{r-1} \left( \frac{p}{j} \right) < \sqrt{r p} < p. \] Small primes (under \( 10,000 \)) were considered by Bernet, Chatalan, Brauer, Moeser, and others. Quite recently, the unproven extended Riemann hypothesis has been applied to these problems by Linnik, Chudnovsky, Erdős, and Ankeny. Thus, for example, Ankeny used the extended Riemann hypothesis to prove that \( p_r \sim O(\log p) \). In the opposite direction, Pillai (1945) proved that \( p_r \sim \log p \). Using this, Riemann's projections, and later some deep results of Linnik on primes in arithmetic progression, Friedlander and Chorom applied this to \( n \) to \( \pi(x) \). Quite recently there have been a number of results in a fashion different from previously. Benner, Nagel, Selkorn, Reidel, and Reidel's method is fundamentally interesting. He uses a finite projective geometrical analogue of the fundamental theorem of Minkowski on convex bodies to prove that for \( p = 1 \) and \( a_t \), at least \( t \) of the integers up to \( p \) are residues and at least \( \frac{1}{2} \) are nonresidues. Our own recent contribution is to improve along these lines. We shall outline some of this work. We consider the lattice of points in a square of side one. We seek an estimate for \( V(n) \), the number of visible lattice points in the square. As one paper shows: \[ [n^2] = V(n) + \left( \frac{7}{6} \right). \] #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 34 Context: # Chapter T ## Combinatorial Number Theory There are many interesting questions that lie between number theory and combinatorial analysis. We consider first one that goes back to Schur (1917) and is related in a surprising way to Fermat’s Last Theorem. Roughly speaking, the theorem of Schur states that if \( n \) is fixed and sufficiently many consecutive integers \( 1, 2, \ldots, n \) are separated into \( c \) classes, then at least one class will contain elements \( a, b, c \) with \( a + b = c \). Consider the fact that if we separate the positive integers less than \( 2^n \) into \( n \) classes by putting \( 1 \) in class \( 1 \), the next \( 2 \) in class \( 2 \), the next \( 4 \) in class \( 3 \), etc., then no class contains more than two of its elements. Alternatively, we could view every integer in the form \( 2^k \) where \( k \) is odd, and place it in the \( k \)th class. Again the numbers less than \( 2^n \) will be in classes and if \( m = 2^{k} \) and \( m' = 2^{k} + 2^j \) then \( m + m' = 2^{k + 1} \) lies in a higher numbered class. The more complicated manner of distributing integers outlined below enables us to distribute \( 1, 2, \ldots, \frac{2^{n}}{n} \) into classes in such a way that no class has a solution to \( a + b = c \): \[ \begin{array}{cccc} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ 13 & 14 & 15 & 16 \\ \vdots & \vdots & \vdots & \vdots \\ \end{array} \] On the other hand, the theorem of Schur states that if one separates the numbers \( 1, 2, \ldots, n \) into \( c \) classes then there will be at least one class that will contain a solution to \( a + b = c \). The gap between the last two statements reveals some interesting unsolved problem; namely, can we find the \( n \) that is \( [1, 2, \ldots, n] \) is clearly solved? We now give a definition and make several remarks to facilitate the proof of Schur’s theorem. Let \( T_n = T_{n-1} + \left( 1 + \frac{1}{2} + \frac{1}{3} + \ldots + \frac{1}{n} \right) \). ### References 1. L. E. Dickson, *History of the Theory of Numbers*, vol. 2 2. G. H. Hardy and E. M. Wright, *An Introduction to the Theory of Numbers*. 3. B. H. Lehmer, “List of Prime Numbers from 1 to 10,006,721.” 4. B. Rosser, "Explicit Bounds for Some Functions of Prime Numbers," *Amer. J. of Math.*, 63 (1941), 211–232. From Lehmer's table [3] and explicit estimates for \( \pi(x) \) due to Rosser [4], it can easily be checked that for \( 10^6 < x < 10^7 \) \[ \pi(x) \sim \frac{x}{\log x} \] Now in [2, p. 339] it is shown that \[ \sum_{p \leq x} \frac{1}{p} \sim \log x + \frac{1}{2} \log \log x. \] Combining (21), (22) and (23) gives the required result. In [4] it is proved that \[ \sum_{p \leq x} \log p \sim P \left( 1 - \frac{1}{\log^2 x} \right) x, \quad x < 10^6. \] Hence \[ \log M > \log P \implies P = \sum_{p \leq x} \log p \sim \left( 1 - \frac{1}{7 \log 10} \right) x > (231) 10^7. \] Now let \( m < 4 \) so that \[ \log m > \left( \log M - \log 2 \right) > (231) 10^7 \] and \( m > (231) 10^{10}. \) Returning to the case \( n = 1 \) odd, we note that in this case we cannot use (13). Letting \( N = (n - 1)/(2m - 1) \) we get from (8), (16), and (18) \[ \sum_{p \leq m} \frac{1}{p} + 1 \sim \frac{1}{m - 1} + \frac{2}{2m - 1} + \frac{4}{2m + 1} - 3. \] However, since the prime \( 2 \) does not appear on the left side (25) is actually a stronger condition on \( m \) than (19) so that in any case \( m > 10^{10}. \) #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 35 Context: # Chapter 2: Combinatorial Number Theory Thus Schur’s theorem can be restated as follows: If \(1, 2, \ldots, r\) are separated into \(r\) classes in any manner whatever, at least one class will contain a solution to \(a + b = c\). We will prove this by assuming that the numbers \(1, 2, \ldots, r\) have been classified in ways with no class containing a solution of \(a + b = c\) and from this obtain a contradiction. Note that the condition of \(a + b = c\) means no class can contain the difference of two of its elements. Suppose that some class, say \(A_4\), contains elements \(a_1 < a_2 < \ldots\). The differences of these in the following manner: - \(b_1 = a_2 - a_1, \quad b_2 = a_3 - a_2, \ldots\) - \(c_1 = b_2 - b_1, \quad c_2 = b_3 - b_2, \ldots\) - \(d_1 = c_2 - c_1, \quad d_2 = c_3 - c_2, \ldots\) and so on. We note that all the \(b\)s, \(c\)s, \(d\)s, etc., are differences of \(a\)s and hence cannot lie in \(A_4\). Now, we start with \(n\) elements. At least \[ \left\lfloor \frac{n}{r - 1} \right\rfloor + 1 \] of these must lie in a single class, say \(A_4\). We then form \(T_n\)’s. These do not lie in \(A_4\) and hence lie in the remaining \(n - 1\) classes. At least \[ \left\lfloor \frac{T_{n-1}}{r - 1} \right\rfloor + 1 = T_{n-1} + 1 \] of them must lie in a single class, say \(A_4\). Forming their \(T_n\) differences, the class yields \(T_{n-3}\) numbers either in \(A_1, A_2, A_3\). In this manner we eventually produce a \(T_1\) number not belonging to \(A_1, A_2, \ldots, A_4\). But all numbers from among the numbers \(1, 2, \ldots, T_n\) so we have a contradiction, which proves the theorem. We state, without proof, the connection with Fermat’s last theorem. A natural approach to Fermat’s theorem would be to show that \(x^n + y^n = z^n\) (mod \(p\)) is insolvable modulo some \(p\), provided \(p\) does not divide \(x+y\). However, Schur’s theorem can be used to show that this indeed must fail if \(p > 2\) and \(x^m + y^m \equiv p\) has a solution with not a factor of \(p\). Somewhat related to Schur’s theorem is a famous theorem of Van der Waerden, which we briefly investigate. In the early 1920’s the following problem arose in connection with the theory of distributing consecutive residues. Imagine the set of all integers to be divided in any manner into \(r\) classes. Can one assert that arithmetic progressions of arbitrary length can belong to at least one of these classes? The problem remained unsolved for several years in spite of concentrated efforts by many outstanding mathematicians. It was finally solved in 1928 by Van der Waerden. As is not uncommon with such problems, Van der Waerden’s first step was to tackle the more general case. Van der Waerden proved the following: Given integers \(r\) and \(k\), there exists an integer \(N = N(r, k)\) such that if the numbers \(1, 2, \ldots, N\) are separated into \(r\) classes in any manner, then at least one class will contain \(k\) terms in arithmetic progression. We will not give Van der Waerden’s proof here. It is extremely difficult to see strong, and leads only to fantastically large bounds for \(W(k, r)\). For this reason the reader might consider the very worthwhile unsolved problem of finding an alternative simpler proof that \(W(k, r)\) exists and finding reasonable bounds for it. We will have a little more to say about the function \(W(k, r)\) a little later. Our next problem of combinatorial number theory deals with “non-averaging” sequences. We call a sequence \(A = \{a_1 < a_2 < a_3 < \ldots\}\) non-averaging if it does not contain the average of two of its elements, i.e., if \(a_i + a_j \in A\) for \(i \neq j\). Let \(A(n)\) denote the number of elements in \(A\) not averaging \(n\). The main problem is to estimate how large \(A(n)\) can be if it is nonaveraging. We can form a nonaveraging sequence by starting with \(1, 2, \ldots\) and then always taking the smallest number that does not violate the conditions for nonaveraging sets. In this way we obtain \(1, 2, 4, 5, 10, 11, 14, 15, 28, 29, \ldots\). It is an interesting fact that this sequence is related to the famous Cantor ternary set. Indeed, we have an easier sequence to prove that this sequence can be obtained by adding \(1\) to each integer representation in base \(3\) containing only \(0\)s and \(1\)s. This sequence is visual in the sense that there cannot be integers without the successive digit violating its nonaveraging character. This, as well as other facts, led Schur (about 1930) to conjecture that this set was dens as any focusing on \(r\). The trick, then, is that the counting function can easily be estimated by Spencer and Spencer (1992) proved that one could have a nonaveraging set of integers of size at least \(2^{-\frac{1}{3}}n^{2/3}\). Given \(a\) numbers in base ten, we describe \(x\) as \(R\) in the vector form in which it is the first digit in the first bracket, the next digit in the second bracket, the next digit in the third bracket, and so on. If the last incorrectly bracketed the bracket in the left does not exist or does not strictly order of digits, it will overflow with zeros. For instance, the numbers \[ a = (000)(265)(320)(0)(20)(0). \] #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 36 Context: ``` # Chapter 2: Combinatorial Number Theory Let $$ b = \frac{(100)(2)(6)(10)(0)}{(100)(150)(60)}, $$ $$ c = \frac{(1008)(600)(290)(50)(0)}{(1008)(600)(290)(50)(0)}. $$ respectively. Now suppose the $\text{n}$ bracket in $\text{R}$ contains nonzero digits, but all further brackets to the left are 0. Call the number represented by the digits in the $\text{n}$ bracket, $x_r$, for $r = 1, 2, \ldots, r - 2$. Further, denote by $y$ the number represented by the digit in the last two brackets taken together, but excluding the last digit. For $x_r$ to belong to $\text{R}$ we require 1. The last digit of $x_r$ must be 1. 2. $x_r$ must begin with 0 for $r = 1, 2, \ldots, r - 2$. 3. $x_1 + x_2 + \ldots + x_r = z$. In particular, note that 2 satisfies (2) but violates (1) and (3) so that $x$ is not in $\text{R}$, but $x$ cannot satisfy all three conditions and are in $\text{R}$. To check (3) we note that $b^6 + 1^6 = 2600$. We next prove that no three integers in $\text{R}$ are in an arithmetic progression. First note that if two elements of $\text{R}$ have a different number of nonempty brackets their average cannot satisfy (1). Thus we need only consider averages of elements of $\text{R}$ having the same number of nonempty brackets. From (1) and (3) it follows that the two elements of $\text{R}$ can be averaged by bracket for the first $r - 2$ brackets and also for the last two brackets taken together. Thus, in our example, $$ \frac{(60 + 50)}{5} = \frac{1}{2}(150 + 290) = 220, $$ $$ \frac{1}{2}(10020060 + 100856600) = 100635300, $$ $$ \frac{1}{2}(h + c) = \frac{(10065)(230)(5)(0)}. $$ This violates (3) and so is not in $\text{R}$. In general we will prove that if $x$ and $y$ are in $\text{R}$ then $x = \frac{1}{2}(x + y)$ and $x$ is not in $\text{R}$. Since $x$ and $y$ are in $\text{R}$. On the other hand, if $z \in \text{R}$ implies $$ z = \sum_{i=1}^{r} x_i^2 + \frac{y^2}{2} - \sum_{i=1}^{r} (x_i + y_i)^2, $$ thus $$ \left( \sum_{i=1}^{r} (x_i + y_i)^2 \right) = 0, $$ which implies $x_r = y_r$ for $r = 1, 2, \ldots, r - 2$. This together with (1) and (2) implies that $x$ and $y$ are not distinct. Seeker's sequence starts with 100000, 1001000, 1002000, ... Nevertheless, the terms of this sequence are eventually much smaller than the corresponding terms of Seeker's sequence. We now estimate how many integers in $\text{R}$ contain exactly $r$ brackets. Given $r$ brackets we can make the first digit in each of the $r - 2$ brackets 0. We can fill up the first $r - 2$ brackets in as arbitrary manner. This can be done in $$ 10^{(r+2)-(\text{len}(r)-2)} = 10^{r-2} $$ ways. The last two brackets can be filled in such a way as to satisfy (1) and (3). To see this we need only check that the last two brackets will not be overfilled, and that the last digit, which we shall set equal to 1, will not be interfered with. This follows from the inequality $$ (10)^r + (10)^{r-2} + \ldots + (10)^{r-2} < 10^{r-n}. $$ For a given $r$ let $b$ be the integer determined by $$ 10^{\text{len}(r)-2} < k < 10^{\text{len}(r)+2}. \quad (4) $$ Since all integers with at most $r$ brackets will not exceed $n$, and since $r$ brackets can be filled to specification in $10^{(r - 2)(r-2)}$ ways, we have $$ R(n) \ge 10^{(r-2)-2}. \quad (5) $$ From the right hand side of (4) we have $$ r + z \approx 2 \sqrt{\log n} $$ that implies that $$ R(n) \ge (r)(r - 2) - 3 \log_{10}(r - \sqrt{n}), $$ where all logs are to base 10. ``` #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 37 Context: # Chapter 7: Combinatorial Number Theory An old conjecture was that \( \frac{d(n)}{n} \to 0 \) for every nontrivial sequence. This has only been proved quite recently [1954] by K. F. Roth. His proof is not elementary. L. Moser has used a similar technique to get lower bounds for the Van der Waerden function \( W(k, d) \). He proved that \( W(k, d) \geq 2^{k-1} \lceil \frac{n}{k} \rceil \) for \( k \) classes, in such a way that each class contains \( 3 \) terms in arithmetic progression. Using a quite different method Erdős and Roth have shown that \( W(k, 2) = \sqrt{n} \). Erdős has raised the following question: What is the maximum number of integers \( a_1 < a_2 < \cdots < a_k \) such that the \( a_i's \) are all distinct? The powers of \( 2 \) show that one can give \( k + 1 \) distinct exceeding \( 2^k \) and one can in fact give \( k + 2 \) to under \( 2^k \) satisfying the required condition. On the other hand, all the sums involved are less than so that \[ 2^k < Kn, \] which implies \[ k < \frac{\log n}{\log(2) + \mathcal{O}(1)} \log \log n. \] We now show how Erdős and Moser improved these estimates to \[ 2^k < \sqrt{Kn}, \] which implies \[ k < \frac{\log n}{\log(2) + \mathcal{O}(1)} \log \log n. \] The conjecture of Erdős is that \[ k = \frac{\log n}{\log 2} + \mathcal{O}(1). \] Denote the sum of distinct \( a_i's \) by \( s = a_1, a_2, \ldots, a_k \) and let \( A = a_i + a_j \). Observe that the average sum is \( \frac{s}{2} \) since we can pair each sum with the corresponding average term. This suggests that we estimate \( \sum (a_i + a_j) \). We have \[ \sum \left( s - \frac{a}{2} \right) = \sum_{1 \leq i < j \leq k} (a_i + a_j), \] where the last sum runs over the \( \binom{2}{2} \) possible distributions of sign. Upon seeing we find that all the crossing terms come in pairs which only appear \( 2^k \). 1. **Publisher's Note:** The current best lower bound may be found in L. A. Siegel’s lemma and number-theoretic notes, *Discrete Combs.* 39 (2008), 69–66. Thus, the number of sums \( s \) for which \[ \left| s - \frac{n}{2} \right| < \sqrt{n} \] cannot exceed \( 2^{k-1} \). Since all the sums are different, we have \( 2^{k-1} \) distinct members in a range of length \( 2\sqrt{K} \). This yields \( 2^k \leq 2\sqrt{K} \) as required. Let \( a_1 < a_2 < \cdots < a_k \) be an infinite sequence of integers and define \( f(n) \) to be the number of solutions of \( n = a_i + a_j \) where all solutions count once. G. A. Dirac and D. J. Newman gave the following interesting proof that \( f(n) \) cannot be constant from some stage on. If \( f(i) + f(i + 2) = \ldots \) we would have \[ \frac{1}{2} \left( \sum_{n=0}^{z} 2^n \right) + \sum_{n=0}^{j} P(n) = R(i) + \frac{z+1}{1 - r} \left( f(i) + f(i) = a \right), \] where \( P(i) \) is a polynomial of degree \( k \). If \( P(i) \to \infty \) on the real side asymptotically it is clear both terms on the left side are positive, and the second tends to infinity. This contradiction proves the theorem. Turán and Erdős conjectured that if \( f(n) \) for all sufficiently large \( n \) then \( f(n) \to \infty \) but this seems very difficult to prove. A still stronger conjecture would be that if \( a_i < a_j \) then \( f(n) \to \infty \). The best known result in this direction is only lim sup \( f(n) \geq 2 \). Fuchs and Erdős recently proved that \[ \sum f(k) = n + \left( \frac{k}{\log n} \right) \] is impossible. If \( a = A^2 \) one comes to the problem of lattice points in a circle of radius \( n \). Here Hardy and Landau proved \[ \sum f(k) = n + o \left( \frac{n}{\log n} \right) \] does not hold. Though not quite as strong as this, the result of Erdős and Fuchs is applicable to a much more general situation and is much easier (but not very easy) to prove. Let \( a_1 < a_2 < \cdots < a_k \) be an infinite sequence of integers. Erdős conjectured, and G. A. Dirac showed, that there exists a sequence \( {b_k} \) of zero density such that every integer is of the form \( a_k + b_j \). #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 39 Context: # Chapter 8 ## Geometry of Numbers We have already seen that geometrical concepts are sometimes useful in illuminating number theoretic considerations. With the introduction by Minkowski of geometry of numbers a real widening of important parts of number theory and geometry was achieved. This branch of mathematics has been in considerable vogue in the last 20 years, particularly in England where it was and is being developed vigorously by Mordell, Davenport, Mahler and their students. We shall consider a very brief introduction to this subject. First, we shall examine a proof of the fundamental theorem of Minkowski due to Hajos (1934). Finally, we shall investigate some new results and conjectures that are closely related. In its simplest form the fundamental theorem of Minkowski is the following: Let \( B \) be a region in the \( x \)-plane of area \( A > 4 \), symmetric about the origin and convex. Then it contains a lattice point other than the origin. First, some preliminary remarks. In the condition \( A > 4 \), the 4 cannot be replaced by any smaller number. This may be seen by considering the square of side \( 2 - \varepsilon \), centered at the origin. Indeed this example might suggest that the theorem is quite intuitive, as it might seem that suggesting this region in any direction and keeping its area fixed would necessarily force the region to cover some lattice point. However the matter is not quite so simple, as other examples reveal that neither central symmetry nor convexity are indispensable. As far as convexity is concerned what is really needed is that the vectors \( \overset{\rightarrow}{V_1} \) and \( \overset{\rightarrow}{V_2} \) correspond such that with \( \overset{\rightarrow}{V_1} \) the vector \( -\overset{\rightarrow}{V_2} \) should also be in \( B \). Thus the symmetry and connectivity together imply that \( \overset{\rightarrow}{V_1} \) and \( \overset{\rightarrow}{V_2} \) satisfy \[ \text{it is inspired by symmetry and connectivity but does not imply either of these conditions.} \] Another example that perhaps illuminates the significance of Minkowski's theorem is the following. Consider a line through \( O \) making an angle \( \theta \); see Figure 4. This line passes through the lattice point other than the origin. If we take a long segment of this line, extending length \( h \) on the side of \( O \), then there will be a lattice point closest to \( O \), and a distance from \( O \). #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 40 Context: # Chapter 8. Geometry of Numbers ## Figure 4 The long side of the rectangle is \( 2R \), the short \( 2r \). This segment. Hence, no matter how large \( R \) is, we can construct a rectangle containing this segment, which contains no lattice point other than \( O \). By the fundamental theorem of Minkowski on the area of this rectangle does not exceed \( 4 \). Thus \( 2R < 4 \). Note that if \( (p, q) \) is a lattice point on the border of the rectangle then \( \frac{p}{q} \) so that the fundamental theorem of Minkowski will give some information about how closely an irrational number can be approximated by rationals. Let us now return to Hajos proof of the fundamental theorem of Minkowski. Consider the \( x-y \) plane cut up into an infinite chessboard with the base square of area \( 2 \) determined by \( |x| \leq 1, |y| \leq 1 \). We now cut up the chessboard along the edges of the squares and superimpose all the squares that contain parts of the region \( R \). We have now compressed an area \( A > 4 \) into a region of area \( 2 \). This implies that there will be some overlapping, i.e., we can stick a pin through the square so as to pierce \( R \) into two points \( V_1 \) and \( V_2 \). Now reassemble the region and let the points \( V_1 \) and \( V_2 \) be the vectors \( \vec{V_1} \) and \( \vec{V_2} \). Consider the fact that the \( x \) and \( y \) coordinates of \( V_1 \) and \( V_2 \) differ by a multiple of \( 2 \). We write \( V_1 = (x_1, y_1) \) and \( V_2 = (x_2, y_2) \). Thus \( |y_1 - y_2| \) is a lattice point different from \( 0 \) (since \( y_1 \neq y_2 \)) in \( R \). The fundamental theorem of Minkowski can easily be generalized to \( n \)-dimensional space. Indeed we need only replace it in the fundamental theorem of Minkowski by \( n^2 \) and Hajos' proof goes through. Many extensions and refinements of the fundamental theorem of Minkowski have been made. I shall return to some of them later. One of Polya's earliest papers has the long and curious title "Zahlentheorie: this includes Wohlstandsreichtheorektheoretisches in der Sichtweite in Wade und durch Schweball". A proof of Polya's main result in this paper can be significantly simplified and somewhat refined using the fundamental theorem of Minkowski. The problem is this. ## Figure 5 Suppose every lattice point other than \( O \) is surrounded by a circle of radius \( r \leq 4 \) (a tree in a forest). A man stands at \( O \). In direction \( \theta \) he can see a distance \( F(r) \). What is the furthest he can see in any direction? That is, determine: \[ F(r) = \max f(\theta, r) \] By looking past the circle centered at \( (1, 0) \) (Figure 5), we can see almost a distance \( \phi \). On the other hand we can prove that \( F(r) \leq 5 \). For suppose that we can see a distance \( F(r) \) in direction \( O \) about this line of vision construct a rectangle with side \( 2r \). This rectangle contains no lattice point, for otherwise the tree centered at such a lattice point would obstruct our line of vision; see Figure 6. ## Figure 6 Hence, by the fundamental theorem of Minkowski \( F(r) < 4 \) and \( F(r) \leq \frac{1}{2} \) is required. Note that no lattice point can be in either semicircle in the diagram. This enables us to improve slightly on Polya's result. I shall leave the details as an exercise. A more significant application of the fundamental theorem of Minkowski concerns the possibility of solving in integers a set of linear inequalities. #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 41 Context: # Chapter 8. Geometry of Numbers Consider the inequalities \[ |a_{11}x_1 + a_{12}x_2 + \ldots + a_{1n}x_n| \leq \lambda_1, \] \[ |a_{21}x_1 + a_{22}x_2 + \ldots + a_{2n}x_n| \leq \lambda_2, \] \[ \vdots \] \[ |a_{m1}x_1 + a_{m2}x_2 + \ldots + a_{mn}x_n| \leq \lambda_m, \] where the \(a_{ij}\) are real numbers and the \(\lambda_1, \ldots, \lambda_m\) are positive numbers. The problem is to find sufficient conditions for the existence of integers \(z_1,\ldots,z_n\) not all satisfying the system. The fundamental theorem of Minkowski can be used to prove that a solution will exist provided the determinant \(\det(a_{ij})\) of the coefficients is, in absolute value, less than the product \(\lambda_1 \ldots \lambda_m\). This comes about in the following way. Geometrically, the inequalities determine an \(n\)-dimensional parallelepiped whose volume (or content) is \[ \frac{1}{\det(a)} \cdot 2^n \cdot \lambda_1 \cdots \lambda_m. \] If \(\lambda_1, \ldots, \lambda_m > 0\) and \(\det(a) \neq 0\), then the content exceeds \(2^n\) and so contains a lattice point different from \(0\). A very recent analogue of the fundamental theorem of Minkowski is the following. Let \(R\) be a convex region, not necessarily symmetric about \(0\), but having its centroid at \(0\). If it can exceed \(2^n\), then it contains a lattice point not \(0\). The constant \(\frac{1}{2^n}\) is again best possible, but an-individual analogue of this result is unknown. The following is a conjectured generalization of the fundamental theorem of Minkowski, which we have unfortunately been unable to prove. Perhaps you will be able to prove or disprove it. Let \(R\) be a convex region containing the origin and defined by \(f(x) \leq 0\) for \(x \in R\). \[ \int_{R} f(x) \, dx > 4 \] Then \(R\) contains a nontrivial lattice point. For symmetrical regions \(f(x) = f(-x)\), and the conjecture reduces to the fundamental theorem of Minkowski. Here is a somewhat related and only partially solved problem. If \(M(n)\) be defined as the smallest number such that any convex region around \(0\) can be placed as to cover \(n\) lattice points. Clearly \(M(1) = 0\). It is difficult to show that \(M(2) = 2\), i.e., in any convex region whose area exceeds that of a circle of diameter \(d\) can be used to cover \(2\) lattice points. To determine \(M(3)\) already seems difficult. What one can easily prove is that \(M(3) = 1\\) and we conjecture the existence of a positive constant \(c\) such that \(M(n) \in c \sqrt{n}\). ## Classical Unsolved Problems 1. Is every even number \(> 2\) the sum of two primes? (Goldbach) 2. Is every number of the form \(4n + 2 (n \geq 1)\) the sum of two primes of the form \(4n + 1\)? (Euler) 3. Obtain an asymptotic formula for the number of representations of \(2n\) as the sum of two primes. 4. Can every even number be expressed as the difference of two primes? 5. Can every even number be expressed as the difference of two primes in infinitely many ways? 6. In particular, are there infinitely many prime pairs? 7. Find an asymptotic formula for the number of prime pairs \(\leq z\). 8. Do there exist infinitely many primes of the form \(x^2 + 1\)? 9. Does any polynomial of degree \(> 1\) represent infinitely many primes? 10. Are there infinitely many Fermat primes? 11. Are there infinitely many Mersenne primes (primes of the form \(2^n - 1\))? 12. Are there infinitely many primes of the form \(2p + 1\) where \(p\) is a prime? 13. Is there at least one prime between every pair of consecutive squares? 14. Are there odd perfect numbers? 15. Are there infinitely many pairs of amicable numbers? 16. Let \(\{f(n)\} = f(0) - n\). Does the sequence \(f(n) = f(n-1) + f(n-2)\) for \(n = 1,2,3,\ldots\) remain bounded for every \(n\)? (Pound) 17. Are there infinitely many primes \(p\) for which \(p - 1\) is divisible by \(p^2\)? 1. *Publisher's Note:* Since the time that these were first written in 1897, it is likely that several of the "unsolved" problems listed here have found solutions. We welcome any information about such developments. #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 44 Context: ``` 78 Miscellaneous Problems 52. Prove that every positive integer is either of the form n + φ(n) or of the form n + P_n, but not both. 53. Show that \( (3 + 2 \sqrt{2})^{n} + (3 - 2 \sqrt{2})^{n} - 2 \) is a square for every \( n \geq 1 \). 54. Prove that for every real \( x > 2 \) there exists a real \( r \) such that the fractional part of \( r \) is greater than \( 1 - \frac{1}{x} \) for every integer \( x \). 55. Show that if \( p \) and \( q \) are integers such that \( p \) then it is possible to arrange \( n \) or fewer unit resistances to give a combined resistance of \( \phi \). 56. Show that \( (a_n)_{n \geq 1} \) and \( x = a - 12 \sum_{k=1}^{n} \left\lfloor \frac{km}{n} \right\rfloor \) imply \( x \equiv 1 \, (\text{mod} \, n) \). 57. If \( (a, b) = 1 \) prove that \( \sum_{k=1}^{\infty} \frac{(-1)^{k}}{k^a} \) diverges. 58. Show that the sum of reciprocals of integers representable as sums of two squares is divergent. 59. Show that the sum of reciprocals of integers whose digital representation does not include 100 consecutive 7's is convergent. 60. Prove that every \( n > 1 \) can be expressed as the sum of two deficient numbers. 61. Prove that every \( n > 10^6 \) can be expressed as the sum of two abundant numbers. 62. Prove that every sufficiently large \( n \) can be expressed as the sum of \( k \)-abundant numbers. 63. Prove that the \( n \)th non-square is \( n + \sqrt{n} \) (where \( \{x\} \) denotes the integer closest to \( x \)). 64. Prove that the \( n \)th nonquasimir is \( n + \sqrt{2n} \). 65. Prove that the \( n \)th non-\( k \)-power is \[ n + \sqrt{n + 1} \] 66. Show that the binary operation \( \circ \) defined on nonnegative integers by \[ m \circ n = m + n + \sqrt{mn} \] is associative. 67. Prove the same for the operation \( m \times n = m + n + 2\sqrt{mn} \). 68. Show that for \( p > 5 \), \( (p - 1)! \) contains a prime factor \( p \). 69. Show that the only solutions of \( x + y = z - 1 \) are \( (n, k) = (2, 1), (3, 1), \) and \( (5, 2) \). 79 Miscellaneous Problems 70. Show that \( x^2 \equiv 2^{n} \, (\text{mod} \, p) \) has a solution for every prime \( p \geq 3 \). 71. Show that if \( f(x) \) is a polynomial with integer coefficients and \( f(a) \) is a square for each \( a \), then \( f(x) = g(x)f(y) \), where \( g(y) \) is a polynomial with integer coefficients. 72. Given integers \( a_1 < a_2 < ... < a_k < n \) with \( a_j \leq \frac{n}{j} \), prove that for some \( i < j \leq k, a_i \). 73. Show that two of the \( a_i's \) of Problem 72 are relatively prime. 74. With the \( c \)'s of Problem 72, show that \( a_j + c_j \) is solvable. 75. Show that the number of solutions of \( x + 2y + 3z = n \) in non-negative integers is \[ \frac{(n + 3 - 1)(n + 3 - 2)}{2} \] 76. Show that the number of solutions of \( x + 2y + 4z = n \) in non-negative integers is \[ \left\{ \begin{array}{ll} \frac{(1 + 2n + 5)(-1)^{n}}{16}, & \text{if } n \equiv 1 \, (\text{mod} \, 16) \\ 0, & \text{otherwise} \end{array} \right. \] 77. Show that \( n \) and \( n + 2 \) are simultaneously prime if and only if \[ \sum_{k=1}^{n} \left[ \frac{n + 2}{k} + \frac{-1}{-1 - n} \right] = 4. \] 78. Show that if \( m \) and \( n \) are simultaneously prime if and only if \[ 4(n - 1) + 1 = 0 \, (\text{mod} \, n + 2), \, (n > 1). \] 79. Show that for every \( n \), \( 6, 10^2, \) and \( 125 \cdot 10^{t} + 1 \) are Pythagorean triples. 80. Show that the number of ordered pairs of integers whose 1.c.m. is \( n \) is \( \sigma(n) \). 81. Show that \[ \frac{1}{2} + \frac{1}{3} + \cdots + \sqrt[n]{n} \] is never an integer. 82. Show that \( x^2 + 2x + y^2 \) is a square if and only if \( x = y \). 83. Show that \[ \sum_{k=1}^{n} \phi(k)x^{n + k} = x(1 + x)^{n - g(n - 1)} \] 84. Show that the number of regular \( p \)-gons with \( p \) edges is \( 2d \). 85. Prove that the \( n \)th order determinant with \( a_{ij} \) has the value \( \prod_{j=1}^{n} \phi(j) \). ``` #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 47 Context: ```markdown 84 Unsolved Problems and Conjectures 20. Conjecture: \( \frac{(2n)!}{(n!)^2} \) is an integer for infinitely many \( n \) (Erdős). 21. Is \( (2n - 1)! \) an integer for every \( k \) and infinitely many \( n \)? (Erdős). 22. Does there exist an \( n \) such that \( [A_n] \) is prime for every \( n \)? (Mills). 23. Does \( [e^n] \) represent infinitely many primes? 24. Does \( [e^n] \) represent infinitely many composite numbers? (Erdős). 25. The number 105 has the property that \( 105 - 2^k \) is prime whenever it is positive. Is 105 the largest number with this property? 26. Is \( p \) the largest number such that for all \( k \) (with \( n \) and \( k > 2 \), \( n - E_k \) is prime)? (Erdős). 27. Does there exist a prime \( p > 41 \) such that \( 2 - z^2 + p \) is prime for \( 1 \leq z \leq p - 17 \)? 28. Let \( a(n) \) denote the number of 1's in the binary representation of \( n \). Does there exist a \( k \) such that for infinitely many primes \( p \), \( a(p) < k \)? (Belman). 29. If \( f(x) \) is a polynomial with integer coefficients, \( f(0) = a \), and \( f(1) = b \), and \( f(a) \), can a sequence \( f(k), k = 1, 2, \ldots \) consist of primes? 30. For sufficiently large \( a \) and \( b \), does the polynomial \( x^n + ax + b \) assume more than \( k \) values (mod \( p \))? (Chowla). 31. Find pairs of integers \( m, n \) such that \( m \) have the same prime factors; \( n = 2^n - 2 \) and \( n = x^2 + 2 \). Are these the only cases? (Straszewicz). 32. What is the largest integer not representable as the sum of distinct cubes? Conjecture: \[ \limsup_{n \to \infty} \frac{a_n}{n^{1/2}} = 0. \] (Chowla and Derpoot) 34. Conjecture: \( \sum_{p} (−1)^{\phi(p)} = 2 \) (Pillai). 35. Can every prime \( p \equiv 3 \, (mod \, 8) \), \( p > 163 \), be written as the sum of three distinct squares? (Erdős). 36. Is \( (3) \) irrational? (Erdős) 37. Conjecture: The only solution of \( 1 + 2 + \ldots + m = (m - 1)1 + 1 + 2 = 2 \) (Bowen). 38. Conjecture: The solutions of \( x^{(k + 1)} + x^{(k + 2)} + \ldots + x^{(k + k)} = \) \( (x + 1 + 2)^6, 3^3 + 3^4 + 5^3 + 5^6 = 5 \). (Erdős). 39. Does the equation \( 1^2 + 2^2 + \ldots + n^2 = (n(n + 1))^2 \) have solutions? (Kelly). 40. Conjecture: If \( r > 0 \) is not an integer then the density of solutions of \( (n,m) \) is 16 for \( (k) \). (Lambek and Moser). 42. Conjecture: The only solutions of \[ \frac{1}{x_1} + \frac{1}{x_2} + \ldots + \frac{1}{x_n} = 1 \] are \[ \text{arc}^2 \left( \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \frac{1}{5} + \frac{1}{12} + \frac{1}{42} \right). \] (Erdős). 43. Is it true that for all primes \( p \), all sufficiently large numbers can be written as the sum of distinct numbers of the form \( p^k \)? (Erdős). Let \( c_k \) be the integers not exceeding \( n \) such that the sum of all integers is \( n - 1 \). What is the maximum of \( \sum_{k=1}^{n} c_k \)? (Conjecture: 31.0) (Erdős). Let \( 0 < a_1 < a_2 < \ldots < a_k \) be such that the sums of distinct \( a_i \) are distinct. Conjecture: \( k - \log_k 2 \) is bounded. 44. Give a relatively simple proof of Roth's theorem: any sequence that does not contain an arithmetic progression has zero density. 45. Give an elementary proof of Dirichlet's theorem on quadratic residues: \[ \sum_{p} \left( \frac{2}{p} \right) > 0 \text{ for } p \equiv 3 \, (mod \, 4). \] ``` #################### File: An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf Page: 48 Context: ``` 86 Let \( a_1 < a_2 < \cdots \) be a sequence of positive integers and let \( f(n) \) denote the number of solutions of \( a_i + a_j = n \). Conjecture: If \( f(n) > 0 \) for every \( n \) then \( f(n) \) is unbounded. [Erdős and Turán] If the \( f(n) \) of Problem 49 is \( > 0 \) for every \( n \) sufficiently large then it can be written as the sum of three distinct \( a_k \). Construct a sequence of \( a_k \) for which the \( f(n) \) becomes \( > 0 \) and for which \( f(n) \) is long for every \( n \). [Erdős has shown that such sequences exist.] 53. Does there exist a sequence with a counting function \( A(n) < c / \log n \) such that every integer can be represented in the form \( a_i + a_j \)? Improve the bound \( [*] \) in Schur's theorem in combinatorial number theory. 54. Conjecture: If \( a_i < a_j < a_k \) is a sequence of integers with \( a_i / a_j \to 1 \) and if for every \( d \) every residue (mod \( d \)) is representable as the sum of distinct \( a_k \), then at most a finite number of integers are not representable as the sum of distinct \( a_i \). [Erdős] 55. Is the sum of the reciprocals of those integers that are representable as the sum of \( k \) powered divergents? [Klamkin and Newman] 56. Conjecture: For every \( \epsilon > 0 \) there exists an \( N \in \mathbb{N} \) such that for \( n > N \) the 3-dimensional game of tic-tac-toe played on a \( 3 \times 3 \times 3 \) board must terminate before \( 3^n \) moves have been played. [Moer] 57. Same as Problem 56 with \( 3 \) replaced by \( k \). 58. Every integer belongs to one of the arithmetic progressions \( \{2n\}, \{3n\}, \{4n + 1\}, \{6n + 5\}, \{12n + 7\}, n = 1, 2, \ldots \). This is the simplest example of a finite set of arithmetic progressions, and with distinct common differences, all of those common differences are greater than, or contain all integers. Does there exist for every \( c > 0 \) a set of progressions, such that common difference being \( c \)? [End] 59. Give an explicit representation of \( n \) as the sum of super classes of arithmetic progression? 60. Do there exist for every \( n \) primes that are consecutive terms of an arithmetic progression? 61. \( \frac{1}{1 + 2^2} + \frac{1}{1 + 3^2} + \cdots + \frac{1}{n^2} = 1. \) 62. Are there infinitely many primes of the form \( 11 \cdots 1 \)? 63. Are there infinitely many primitive roots \( 2, 3, \ldots, p + 1 \)? 64. Conjecture: The least primitive root of a prime \( p \) is \( < p \). 65. Conjecture: The number of perfect numbers \( n \) is \( < \log n \). 66. Find good bounds for the density of the abundant numbers. 67. Prove that the ratio of residues to nonresidues in the range \( (1, \lfloor \sqrt{n} \rfloor) \) approaches \( 1 \) as \( n \to \infty \). 68. Give an elementary proof of \( \prod_{p > 3} 2^n \). 70. Conjecture: \( \lim_{n \to \infty} (a_{n+1} - a_n) \) implies \( \sum_{n}\frac{1}{n^2} \). [Erdős] 71. Find all solutions of \( x^4 + y^4 = z^4 + t^4 \). 72. Find all solutions of \( x^2 + y^2 + z^2 = t^2 \). 73. Find all solutions of \( x^n = y^n \). 74. Let \( (t_n) \) be the least \( n \) for which there exists a chain of integers \( a_0 = 1 < a_1 < a_2 < \cdots < a_k = n \), where for each \( i > 0, a_i = a_j + c \) for some \( j, k < i \) permitted). 75. Conjecture: \( t(n) < t(n) \) for all \( n > 0 \). [Utzi] 76. Let \( S(n) \) denote the number of solutions of \( t(n) = n \). Is it true that \( S(n) < S(n + 1) \) for all \( n > 0? \) [Utzi] 77. Polyá's conjecture: \( \sum_{n} \frac{1}{n} > 1 \) for \( n < 800,000 \). 78. Turán's conjecture: \( \sum_{n} \frac{M(n)}{n} \) = 1. [Checked for \( < 50,000 \).] 79. Pillar’s conjecture: \( |n - g| \neq N, m, n > 1 \) has for every \( n \) only a finite number of solutions. 80. \( \frac{1}{1 + 1/2^2} + \frac{1}{1 + 1/3^2} + \cdots + \frac{1}{1/n} = 1 \). ``` ########## """QUERY: what are sets and spaces? in 250 words""" Consider the chat history for relevant information. Use all information included. If query is already asked in the history double check the correctness of your answer and maybe correct your previous mistake. Use as much tokens as needed but at the same time be as efficient as possible. If you find information separated by a | in the context, it is a table formatted in Markdown - the whole context is formatted as md structure. Important: Take a look at the QUERY and only the QUERY. Please try always to answer the query question. If the client ask for a formatting structure follow his advise.But if the question is vague or unclear ask a follow-up question based on the context. If too many questions were asked already based on the history, just answer the question Final Files Sources: Algebraic%20Topology%20AT-toc.pdf - Page 1, Algebraic%20Topology%20AT-toc.pdf - Page 3, Algebraic%20Topology%20AT-toc.pdf - Page 4, Algebraic%20Topology%20AT-toc.pdf - Page 5, Algebraic%20Topology%20AT-toc.pdf - Page 6, Algebraic%20Topology%20AT-toc.pdf - Page 7, Algebraic%20Topology%20AT-toc.pdf - Page 8, Algebraic%20Topology%20AT-toc.pdf - Page 9, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 4, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 5, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 6, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 7, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 8, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 9, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 10, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 11, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 12, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 15, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 16, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 20, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 23, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 24, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 25, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 26, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 28, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 29, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 32, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 33, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 41, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 42, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 43, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 44, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 45, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 46, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 47, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 48, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 51, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 53, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 54, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 60, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 63, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 67, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 79, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 83, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 88, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 94, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 95, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 99, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 101, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 104, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 108, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 109, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 110, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 111, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 113, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 116, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 119, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 121, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 123, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 124, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 126, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 127, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 128, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 129, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 130, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 131, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 133, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 136, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 138, Algorithms%20and%20Complexity%20-%20Herbert%20S.%20Wilf%20%28PDF%29.pdf - Page 139, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 4, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 5, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 30, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 34, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 35, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 36, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 37, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 39, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 40, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 41, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 44, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 47, An%20Introduction%20to%20the%20Theory%20of%20Numbers%20-%20Leo%20Moser%20%28PDF%29.pdf - Page 48 ================================================== **Elapsed Time: 0.00 seconds** ================================================== FINAL ANSWER Answer: [Answer was streamed to client] ================================================== **Elapsed Time: 6.39 seconds** ==================================================