{"id":23730,"date":"2023-05-09T03:38:12","date_gmt":"2023-05-09T03:38:12","guid":{"rendered":"https:\/\/www.booksofall.com\/ru\/?post_type=product&#038;p=23730"},"modified":"2023-05-09T03:43:09","modified_gmt":"2023-05-09T03:43:09","slug":"introduction-to-theory-of-computation","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/","title":{"rendered":"Introduction to Theory of Computation"},"content":{"rendered":"<h2>Chapter 1 Introduction<\/h2>\n<h4>1.1 Purpose and motivation<\/h4>\n<p>This course is on the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Theory_of_computation\">Theory of Computation<\/a>, which tries to answer the following questions:<\/p>\n<ul>\n<li>What are the mathematical properties of computer hardware and software?<\/li>\n<li><a href=\"https:\/\/equip.learning.com\/computational-thinking-algorithmic-thinking-design-thinking\">What is a computation and what is an algorithm<\/a>? Can we give rigorous mathematical definitions of these notions?<\/li>\n<li>What are the limitations of computers? Can \u201ceverything\u201d be computed? (As we will see, the answer to this question is \u201cno\u201d.)<\/li>\n<\/ul>\n<p><em>Purpose of the Theory of Computation: Develop formal mathematical models of computation that reflect real-world computers.<\/em><\/p>\n<p>This field of research was started by mathematicians and logicians in the 1930\u2019s, when they were trying to understand the meaning of a \u201ccomputation\u201d. A central question asked was whether all mathematical problems can be solved in a systematic way. The research that started in those days led to computers as we know them today.<\/p>\n<p>Nowadays, the Theory of Computation can be divided into the following three areas: <a href=\"https:\/\/medium.com\/@junp01\/an-introduction-to-complexity-theory-3c20695725f8\">Complexity Theory<\/a>, <a href=\"https:\/\/cs.lmu.edu\/~ray\/notes\/computabilitytheory\/\">Computability Theory<\/a>, and <a href=\"https:\/\/cs.stanford.edu\/people\/eroberts\/courses\/soco\/projects\/2004-05\/automata-theory\/basics.html\">Automata Theory<\/a>.<\/p>\n<h4>1.1.1 Complexity theory<\/h4>\n<p>The main question asked in this area is \u201cWhat makes some problems computationally hard and other problems easy?\u201d<\/p>\n<p>Informally, a problem is called \u201ceasy\u201d, if it is efficiently solvable. Examples of \u201ceasy\u201d problems are (i) sorting a sequence of, say, 1,000,000 numbers, (ii) searching for a name in a telephone directory, and (iii) computing the fastest way to drive from Ottawa to Miami. On the other hand, a problem is called \u201chard\u201d, if it cannot be solved efficiently, or if we don\u2019t know whether it can be solved efficiently. Examples of \u201chard\u201d problems are (i) time table scheduling for all courses at Carleton, (ii) factoring a 300-digit integer into its prime factors, and (iii) computing a layout for chips in VLSI.<\/p>\n<p><em>Central Question in Complexity Theory: Classify problems according to their degree of \u201cdifficulty\u201d. Give a rigorous proof that problems that seem to be \u201chard\u201d are really \u201chard\u201d.<\/em><\/p>\n<h4>1.1.2 Computability theory<\/h4>\n<p>In the 1930\u2019s, Go\u0308del, Turing, and Church discovered that some of the fundamental mathematical problems cannot be solved by a \u201ccomputer\u201d. (This may sound strange, because computers were invented only in the 1940\u2019s). An example of such a problem is \u201cIs an arbitrary mathematical statement true or false?\u201d To attack such a problem, we need formal definitions of the notions of<\/p>\n<ul>\n<li>computer,<\/li>\n<li>algorithm, and<\/li>\n<li>computation.<\/li>\n<\/ul>\n<p>The theoretical models that were proposed in order to understand solvable and unsolvable problems led to the development of real computers.<\/p>\n<p><em>Central Question in Computability Theory: Classify problems as being solvable or unsolvable.<\/em><\/p>\n<h4>1.1.3 Automata theory<\/h4>\n<p>Automata Theory deals with definitions and properties of different types of \u201ccomputation models\u201d. Examples of such models are:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.cs.rochester.edu\/u\/nelson\/courses\/csc_173\/fa\/fa.html\">Finite Automata<\/a>. These are used in text processing, compilers, and hardware design.<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Context-free_grammar\">Context-Free Grammars<\/a>. These are used to define programming languages and in Artificial Intelligence.<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Turing_machine\">Turing Machines<\/a>. These form a simple abstract model of a \u201creal\u201d computer, such as your PC at home.<\/li>\n<\/ul>\n<p><em>Central Question in Automata Theory: Do these models have the same power, or can one model solve more problems than the other?<\/em><\/p>\n<h4>1.1.4 This course<\/h4>\n<p>In this course, we will study the last two areas in reverse order: We will start with Automata Theory, followed by Computability Theory. The first area, Complexity Theory, will be covered in COMP 3804.<\/p>\n<p>Actually, before we start, we will review some mathematical proof techniques. As you may guess, this is a fairly theoretical course, with lots of definitions, theorems, and proofs. You may guess this course is fun stuff for math lovers, but boring and irrelevant for others. You guessed it wrong, and here are the reasons:<\/p>\n<ol>\n<li>This course is about the fundamental capabilities and limitations of computers. These topics form the core of computer science.<\/li>\n<li>It is about mathematical properties of computer hardware and software.<\/li>\n<li>This theory is very much relevant to practice, for example, in the design of new programming languages, compilers, string searching, pattern matching, computer security, artificial intelligence, etc., etc.<\/li>\n<li>This course helps you to learn problem solving skills. Theory teaches you how to think, prove, argue, solve problems, express, and abstract.<\/li>\n<li>This theory simplifies the complex computers to an abstract and simple mathematical model, and helps you to understand them better.<\/li>\n<li>This course is about rigorously analyzing capabilities and limitations of systems.<\/li>\n<\/ol>\n<p>Where does this course fit in the Computer Science Curriculum at Carleton University? It is a theory course that is the third part in the series COMP 1805, COMP 2804, COMP 3803, COMP 3804, and COMP 4804. This course also widens your understanding of computers and will influence other courses including Compilers, Programming Languages, and Artificial Intelligence.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe style=\"width: 100%; height: 750px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/introduction-to-theory-of-computation-1clkjo7zte?p=1\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"featured_media":23734,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!"},"product_brand":[],"product_cat":[385],"product_tag":[],"class_list":{"0":"post-23730","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-theoretical-computer-science","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introduction to Theory of Computation - BooksOfAll Russian<\/title>\n<meta name=\"description\" content=\"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Theory of Computation - BooksOfAll Russian\" \/>\n<meta property=\"og:description\" content=\"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll Russian\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-09T03:43:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 \u043c\u0438\u043d\u0443\u0442\u044b\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/\",\"url\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/\",\"name\":\"Introduction to Theory of Computation - BooksOfAll Russian\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg\",\"datePublished\":\"2023-05-09T03:38:12+00:00\",\"dateModified\":\"2023-05-09T03:43:09+00:00\",\"description\":\"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg\",\"contentUrl\":\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg\",\"width\":\"827\",\"height\":\"1169\",\"caption\":\"Introduction to Theory of Computation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/ru\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/ru\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Introduction to Theory of Computation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/#website\",\"url\":\"https:\/\/www.booksofall.com\/ru\/\",\"name\":\"BooksOfAll Russian\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/ru\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/#organization\",\"name\":\"BooksOfAll Russian\",\"url\":\"https:\/\/www.booksofall.com\/ru\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\/\/www.booksofall.com\/ru\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll Russian\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/ru\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Theory of Computation - BooksOfAll Russian","description":"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/","og_locale":"ru_RU","og_type":"article","og_title":"Introduction to Theory of Computation - BooksOfAll Russian","og_description":"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!","og_url":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/","og_site_name":"BooksOfAll Russian","article_modified_time":"2023-05-09T03:43:09+00:00","og_image":[{"url":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg","twitter_misc":{"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"4 \u043c\u0438\u043d\u0443\u0442\u044b"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/","url":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/","name":"Introduction to Theory of Computation - BooksOfAll Russian","isPartOf":{"@id":"https:\/\/www.booksofall.com\/ru\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg","datePublished":"2023-05-09T03:38:12+00:00","dateModified":"2023-05-09T03:43:09+00:00","description":"The theory of computation studies the nature of computation and the algorithms that can be used to solve computational problems. Learn more here!","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/"]}]},{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#primaryimage","url":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg","contentUrl":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2023\/05\/Introduction-to-Theory-of-Computation.jpg","width":"827","height":"1169","caption":"Introduction to Theory of Computation"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/ru\/introduction-to-theory-of-computation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/ru\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/ru\/categories\/"},{"@type":"ListItem","position":3,"name":"Introduction to Theory of Computation"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/ru\/#website","url":"https:\/\/www.booksofall.com\/ru\/","name":"BooksOfAll Russian","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/ru\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/ru\/#organization","name":"BooksOfAll Russian","url":"https:\/\/www.booksofall.com\/ru\/","logo":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/www.booksofall.com\/ru\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/ru\/wp-content\/uploads\/sites\/7\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll Russian"},"image":{"@id":"https:\/\/www.booksofall.com\/ru\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/product\/23730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/media\/23734"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/media?parent=23730"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/product_brand?post=23730"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/product_cat?post=23730"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/ru\/wp-json\/wp\/v2\/product_tag?post=23730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}