计算理论导论(英文版)数学基础
计算理论导论(英文版)前言01
What the course is about
The theory of computation represents a fascinating landscape that intersects交叉computer science and mathematics and can be roughly divided into three overlapping areas: AUTOMATA AND LANGUAGES, COMPUTABILITY THEORY , and COMPLEXITY THEORY .
Several different computational models were devised by these early researchers. One model, the Turing machine, stores characters on an infinitely long tape, with one square at any given time being scanned by a read/write head. Another model, recursive functions, uses functions and function composition to
The first step was to define what was meant by a "simple method" for solving a problem, implying a need for a formal model of computation.
1
computational models
3
2 What the course is about
计算理论基础课件_Introduction..40页PPT
•
6、黄金时代是在我们的前面,而不在 我们的 后面。
•
7、心急吃不了热汤圆。
•
8、你可以很有个性,但某些时候请收 敛。
•
Hale Waihona Puke 9、只为成功找方法,不为失败找借口 (蹩脚 的工人 总是说 工具不 好)。
•
10、只要下定决心克服恐惧,便几乎 能克服 任何恐 惧。因 为,请 记住, 除了在 脑海中 ,恐惧 无处藏 身。-- 戴尔. 卡耐基 。
55、 为 中 华 之 崛起而 读书。 ——周 恩来
谢谢!
51、 天 下 之 事 常成 于困约 ,而败 于奢靡 。——陆 游 52、 生 命 不 等 于是呼 吸,生 命是活 动。——卢 梭
53、 伟 大 的 事 业,需 要决心 ,能力 ,组织 和责任 感。 ——易 卜 生 54、 唯 书 籍 不 朽。——乔 特
计算理论基础课件_Introduction..
计算表格
程序 Let me see
一个一般的计算过程
图灵机:现代计算机的理论模型
两端无限长的纸带
与现代计算机相同 之处:程序与数据 混合在一起,由控 制器控制执行
控制器( 读写或计算)
与现代计算机 不同:内存无 限大!没有考 虑输入与输出 !(所有信息 都在子带上)
图灵对可计算的定义:
被求解问题需要形式化; 必须设计一个算法; 算法需要有合理的复杂度(空间与时间 复杂度)
什么是可以计算的
X Y Z ( X , Y , Z R, n 3)
n n n
费马定理
费马声称当n>2时,就找不到满足 xn +yn = zn的整数解
计算的验证形式
数据测试
形式化测试
C. Antony R. Hoare Hoare 逻辑
完成形式化证明的杰出工作,但是仍旧存在困 难(本书介绍的内容基本属于形式化问题)
Gö del's Theorem has been used to argue that a computer can never be as smart as a human being because the extent of its knowledge is limited by a fixed set of axioms, whereas people can discover unexpected truths ...
是物理机械平台,而非数学逻辑平台 当时工艺机械达到了设计这种机械平台 的能力!
图灵对计算机智能的思考
“计算机会思考么?”,这样的问题是 没有什么意义的。 (图灵,1950年) 但是我们可以通过如下测试去判断计算 机是否有智能?
计算机科学导论_Introduction
建立数学模型:将一个现实问题转化成可以被 计算的任务(数学建模)
设计算法:准确而完整地描述可在计算机上执 行的一个求解方案
编写程序或设计硬件逻辑:通过软件或硬件实 现求解方案
可见,软件程序和硬件逻辑都是建立在数 学模型基础上的
计算机科学的数学理论体系
现行教育方式与人工智能学习特点 高度重合
数学之外的理科:
应试教育:注重结论性的东西,忽视问题的提 出、过程的探究、实验设计的原始思路
人工智能:擅长学习已有的知识,在自然问题 和工程问题的提出、探究、实验方面只能起辅 助作用
现行教育方式与人工智能学习特点 高度重合
应试教育正在产生一大批“在思想层面上 类人工智能化,而在执行力层面上远低于 人工智能”的学生:
数值计算:
主要包括数值分析、数学分析、线性代数、计算几 何、概率论与数理统计
离散数学:
一般认为包含集合论、逻辑学、代数学、图论、组 合学
数论:
包括初等数论、解析数论、代数数论、几何数论
计算理论:
主要包括算法学、计算复杂性理论、程序理论
离散数学
离散数学是研究离散量的结构及其相互关系的数 学学科
如何学好数学?
关注数学的来龙去脉,知道数学概念、方法和理论的 产生渊源和发展过程:
它们为什么提出来?要解决什么问题? 理解数学的精神实质和思想方法:
注重思考和理解,不要死记硬背数学知识,要活学要用 对于实际问题要能建立正确的数学模型,然后运用已知的数
学工具加以解决
严格训练,培养抽象思维、逻辑推理和归纳构造能力:
数学是一门关键的技术:
数学的思想和方法与高度发展的计算技术相结合,形成 了一种关键性的、可实现的技术,称为“数学技术”
计算机专业应该掌握的理论知识
首先,应该意识到数学修养的重要性。
作为一个优秀的程序员,一定的数学修养是十分重要也是必要的。
数学是自然科学的基础,计算机科学实际上是数学的一个分支。
计算机理论其实是很多数学知识的融合,软件工程需要图论,密码学需要数论,软件测试需要组合数学,计算机程序的编制更需要很多的数学知识,如集合论、排队论、离散数学、统计学,当然还有微积分。
计算机科学一个最大的特征是信息与知识更新速度很快,随着数学知识与计算机理论的进一步结合,数据挖掘、模式识别、神经网络等分支科学得到了迅速发展,控制论、模糊数学、耗散理论、分形科学都促进了计算机软件理论、信息管理技术的发展。
严格的说,一个数学基础不扎实的程序不能算一个合格的程序员,很多介绍计算机算法的书籍本身也就是数学知识的应用与计算机实现手册。
第一部是《算法导论》,英文名称:Introduction to Algorithms,作者:Thomas H. Cormen ,Ch arles E. Leiserson ,Ronald L. Rivest ,Clifford Stein。
本书的主要作者来自麻省理工大学计算机,作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了图灵奖。
这本书目前是算法的标准教材,美国许多名校的计算机系都使用它,国内有些院校也将本书作为算法课程的教材。
另外许多专业人员也经常引用它。
本书基本包含了所有的经典算法,程序全部由伪代码实现,这更增添了本书的通用性,使得利用各种程序设计语言进行程序开发的程序员都可以作为参考。
语言方面通俗,很适合作为算法教材和自学算法之用。
另一部是很多人都应该知道的Donald.E.Knuth所著《计算机程序设计艺术》,英文名称:The Art of Computer Programming。
Donald.E.Knuth人生最辉煌的时刻在斯坦福大学计算机系渡过,美国计算机协会图灵奖的获得者,是本领域内当之无愧的泰斗。
唐常杰翻译的计算理论导引
周学时 4
任课教师 唐常杰
时间 每周三 8:00-11:35
地点 研 3-301
教材 Material: Michael Sipser (MIT)
[Required] Sipser, Michael, Introduction to the Theory of Computation. PWS Publishing Company, 1997. (Both first and second printing are okay. ISBN 0-619-21674-2)
CS_Dept.Sichaun Univ.
3
本电子教案由机械工业出版社出版
可计算理论 2020/9/11
CS_Dept.Sichaun Univ.
4
请提改进意见
任课教师 : 唐常杰 联系信息 四川大学计算机科学与技术系 主任。 博士生导师 中国计算机学会数据库专业委员会副主任 下载教案网址 机械工业出版社网址 或 下列网址
内容 Chapters 0 - 8.3 (up to the PSPACE-completeness of TQBF)
可计算理论 2020/9/11
CS_Dept.Sichaun Univ.
1
关于选择教材的体会
2001-2002 我们采用教材为: Lewis, Harry R., and Papadimitriou, Christos H., Elements of the Theory of Computation, 2nd ed. Prentice-Hall, 1997.
川大计算机学院: /~tangchangjie/teach/tang_teaching.htm
数值计算基础 英文
数值计算基础英文The foundation of numerical computation involves the fundamental principles and techniques used in performing mathematical calculations using numerical values. It encompasses various mathematical operations such as addition, subtraction, multiplication, division, exponentiation, and root extraction. Additionally, it includes concepts related to numerical methods, numerical analysis, and computational mathematics.Numerical computation serves as the basis for various fields such as engineering, physics, computer science, and finance. It is essential for solving complex mathematical problems and simulating real-world phenomena through computational models. Understanding the basics of numerical computation is crucial for accurately representing, analyzing, and interpreting quantitative data in diverse applications.In numerical computation, it is important to considerthe precision of numerical values, the impact of rounding errors, and the selection of appropriate algorithms for different types of calculations. Additionally, the representation of numbers in different formats such as floating-point representation and fixed-point representation is a key aspect of numerical computation.Moreover, the study of numerical computation involves the analysis of convergence, stability, and accuracy of numerical algorithms. It also encompasses the utilization of computational tools and software for efficient and reliable numerical calculations.Overall, a strong foundation in numerical computation is essential for professionals and students in various fields to effectively tackle mathematical problems, optimize algorithms, and make informed decisions based on numerical analysis. It provides the necessary skills to leverage computational resources for problem-solving and decision-making in diverse disciplines.。
计算引论教学大纲-中文版
课程名称:中文:计算理论导论英文:Introduction to the Theory of Computation先修课程:《数据结构与算法》或《算法分析与设计》,《程序设计》教材:<Introduction to the Theory of Computation>(《计算理论导论》), Michael Sipser, 机械工业出版社.参考书:1.<Introduction to Automata Theory, Languages, and Computation>(《自动机理论、语言和计算导论》), John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. 清华大学出版社内容简介:本课程主要讲述计算机的三个数学模型,即有穷自动机、下推自动机(上下文无关文法)和图灵机。
涉及了计算理论的自动机、可计算性两个中心领域,辅之计算复杂性领域。
学习本门课后学生应该能够回答下述问题:什么使得某些问题难计算而其他问题易于计算?什么问题是计算机可以解决的,什么问题是计算机根本无法解决的?课程主要内容包括:1.相关数学概念与术语介绍 ; 2.有穷自动机、正则语言和非确定性; 3.DFA 与 NFA的等价性,正则语言的性质; 4.正则语言与正则表达式; 5.非正则语言; 6.上下文无关语言与上下文无关文法; 7.下推自动机; 8.非上下文无关语言; 9.图灵机形式定义,多带图灵机、非确定型图灵机和枚举器; 10.希尔伯特问题和算法定义; 11.可判定语言:与正则语言、上下文无关语言相关的可判定问题; 12.停机问题:对角化方法,停机问题的不可判定性; 13.不可判定语言:语言理论归约、计算历史归约; 14.PCP,映射归约; 15.计算复杂性、P、NP、NPC。
清华大学计算导论英文版Introduction to the Theory of Computation
Introduction to the Theory of Computation, Michael SipserChapter 0: IntroductionAutomata, Computability and Complexity:• They are linked by the question:o “What are the fundamental capabilities and limitations of computers?”• The theories of computability and complexity are closely related. In complexity theory, the objective is to classify problems as easy ones and hard ones, whereas in computability theory he classification of problems is by those that are solvable and those that are not. Computability theory introduces several of the concepts used in complexity theory.• Automata theory deals with the definitions and properties of mathematical models of computation. • One model, called the finite automaton, is used in text processing, compilers, and hardware design.Another model, called the context – free grammar, is used in programming languages and artificial intelligence.Strings and Languages:• The string of the length zero is called the empty string and is written as ε.• A language is a set of strings.Definitions, Theorems and Proofs:• Definitions describe the objects and notions that we use.• A proof is a convincing logical argument that a statement is true.• A theorem is a mathematical statement proved true.• Occasionally we prove statements that are interesting only because they assist in the proof of another, more significant statement. Such statements are called lemmas.• Occasionally a theorem or its proof may allow us to conclude easily that other, related statements are true. These statements are called corollaries of the theorem.Chapter 1: Regular LanguagesIntroduction:• An idealized computer is called a “computational model” which allows us to set up a manageable mathematical theory of it directly.• As with any model in science, a computational model may be accurate in some ways but perhaps not in others.• The simplest model is called “finite state machine” or “finite automaton”.Finite Automata:• Finite Automata are good models for computers with an extremely limited amount of memory, like for example an automatic door, elevator or digital watches.• Finite automata and their probabilistic counterpart “Markov chains” are useful tools when we are attempting to recognize patterns in data. These devices are used in speech processing and in optical character recognition. Markov chains have even been used to model and predict price changes in financial markets.• State diagrams are described on p.34.• The output of an finite automaton is “accepted” if the automaton is now in an accept state (double circle) and reject if it is not.• A finite automaton is a list of five objects: o Set of stateso Input alphabeto Rules for movingo Start stateo Accepts states• y x =)1,(δ, means that a transition from x to y exists when the machine reads a 1.• Definition: A finite automaton is a 5 – tuple ),,,,(0F q Q δΣ, where1. Q is a finite set called the states.2. Σ is a finite set called the alphabet.3. Q Q →Σ×:δ is the transition function4. Q q ∈0 is the start state5. Q F ⊆ is the set of accept states.• If A is the set of all strings that machine M accepts, we say that A is the language of machine M and write L(M) = A. We say M recognizes A.• A language is called a “regular language” if some finite automaton recognizes it.• A finite automaton has only a finite number of states, which means a finite memory.• Fortunately, for many languages (although they are infinite) you don’t need to remember the entire input (which is not possible for a finite automaton). You only need to remember certain crucialinformation.The Regular Operations:• We define 3 operations on languages, called the regular operations, and use them to study properties of the regular languages.• Definition: Let A and B be languages. We define the regular operations union , concatenation and star as follows:o Union: }|{B x or A x x B A ∈∈=∪o Concatenation: }|{B y and A x xy B A ∈∈=oo Star: }0|...{*21A x each and k x x x A i k ∈≥=• Example: Let the alphabet Σ be the standard 26 letters {a, b, …, z}. If language A = {good, bad} and language B = {boy, girl}, then:o =∪B A {good, bad, boy, girl}o =B A o {goodboy, goodgirl, badboy, badgirl}o =*A {ε, good, bad, goodgood, goodbad, badgood, badbad, goodgoodgood, goodgoodbas, …} • The class of regular languages is closed under the union operation. In other word, if A and B are regular languages, so is B A ∪.• The class of regular languages is closed under the concatenation operation.• The class of regular languages is closed under the intersection operation.• The class of regular languages is closed under the star operation. Nondeterminism :• Nondeterminism is a generalization of determinism, so every deterministic finite automaton is automatically a nondeterministic finite automaton.• In a DFA (deterministic finite automaton), every state always has exactly one exiting transition arrow for each symbol in the alphabet. In an NFA (nondeterministic finite automaton) a state may have zero,one or many exiting arrows for each alphabet symbol.• How does an NFA compute? Suppose that we are running an NFA on an input string and come to a state with multiple ways to proceed. Fro example, say that we are in state q1 in NFA N1 and that thenext input symbol is a 1. After reading that symbol, the machine splits into multiple copies of itself and follows all the possibilities in parallel. Each copy of the machine takes one of the possible ways to proceed and continues as before. If there are subsequent choices, the machine splits again. If the next input symbol doesn’t appear on any of the arrows exiting the state occupied by a copy of the machine, that copy of the machine dies, along with the branch of the computation associated with it. Finally, if any one of these copies of the machine is in an accepts state ate the end of the input, the NFA accepts the input string. If a state with an ε symbol on an exiting arrow is encountered, something similarhappens. Without reading any input, the machine splits into multiple copies, one following each of the exiting ε - labelled arrows and one staying at the current state. Then the machine proceedsnondeterministically as before.• Nondeterministic finite automata are useful in several respects. As we will show, every NFA can be converted into an equivalent DFA, and constructing NFAs is sometimes easier than directlyconstructing DFAs. An NFA may be much smaller than its deterministic counterpart, or its functioning may be easier to understand.Nondeterministic Finite Automaton:• Definition: A nondeterministic finite automaton is a 5 – tuple ),,,,(0F q Q δΣ, where1. Q is a finite set of states.2. Σ is a finite alphabet.3. )(:Q P Q →Σ×εδ is the transition function, }{εε∪Σ=Σ4. Q q ∈0 is the start state.5. Q F ⊆ is the set of accept states.• In a DFA the transition function takes a state and an input symbol and produces the next state. In a NFA the transition function takes a state and an input symbol or the empty string and produces the setof possible next states.• For any set Q we write P(Q) to be the collection of all subsets of Q (Power ser of Q).• Deterministic and nondeterministic finite automaton recognize the same class of languages. • Two machines are equivalent if they recognize the same language.• Every NFA has an equivalent DFA.• If k is the number of states of the NFA, it has k 2 subsets of states. Each subset corresponds to one ofthe possibilities that the DFA must remember, so the DFA simulating the NFA will have k 2 states. • NFA transforming to DFA: o The DFA M accepts (means it is in an accept state) if one of the possible states that the NFA Ncould be in at this point, is an accept state.o A language is regular if and only if some NFA recognizes it.Regular Expressions:• Definition: Say that R is a regular expression if R is: 1. a for some a in the alphabet Σ.2. ε.3. ∅, 1*∅ = ∅, ∅* = {ε}, ∅=∅o R4. )21(R R ∪, where R1 and R2 are regular expressions.5. )21(R R o , where R1 and R2 are regular expressions.6. *)1(R , where R1 is a regular expression.• The value of a regular expression is a language.• Regular expressions have an important role in computer science applications. In applications involving text, user may want to search for strings that satisfy certain patterns . Regular expressions provide apowerful method for describing such patterns.• We can write Σ as shorthand for the regular expression )10(∪. More generally, if Σis any alphabet,the regular expression Σ describes the language consisting of all strings of length 1 over that alphabet, and *Σ describes the language consisting of all strings over that alphabet. Similarly 1*Σ is the language that contains all strings that end in a 1. The language )1*(*)0(Σ∪Σ consists of all strings that either start with a 0 or end with a 1.• Precedence in regular expressions: ∪>>o *• When we want to make clear a distinction between a regular expression R and the language that itdescribes, we write L(R) to be the language of R.• A language is regular if and only if some regular expression describes it. Generalized Nondeterministic Finite Automaton:• Definition: A generalized nondeterministic finite automaton, ),,,,(accept start q q Q δΣ is a 5 – tuple where1. Q is the finite set of states.2. Σ is the input alphabet.3. R q Q q Q start accept →−×−}){(}){(:δ is the transition function.4. start q is the start state.5. accept q is the accept state.• The GNFA reads blocks of symbols form the input, not necessarily just one symbol at a time as in an ordinary NFA.• For convenience we require that GNFAs always have a special form that meets the followingconditions:o The start state has transition arrows going to every other state but no arrows coming in fromany other state.o There is only a single accept state, and it has arrows coming in from every other state but noarrows going to any other state. Furthermore, the accept state is not the same as the start state.o Except for the start and accept states, one arrow goes from every state to every other state andalso from each state to itself.• We can easily convert a DFA into a GNFA in the special form. We simply add a new start state withan ε arrow to the old start state and a new accept state with ε arrows form the old accept states. If any arrows have multiple labels (or if there are multiple arrows going between the same two states in the same direction), we replace each with a single arrow whose label is the union of the previous labels. Finally, we add arrows labeled ∅ between states that had no arrows. This last step won’t change the language recognized because a transition labeled with ∅ can never be used.• We let M be the DFA for language A. The we convert M to a GNFA G by adding a new start state and a new accept state and additional transition arrows as necessary. We use the procedure CONVERT(G),which takes a GNFA and returns an equivalent regular expression.• CONVERT(G): Generates a regular expression R out of a GNFA G on p. 73. Nonregular Languages:• To understand the power of finite automata you must also understand their limitations. In this sectionwe show how to prove that certain languages cannot be recognized by any finite automaton.• Let’s take the language }0|10{≥=n B n n . If we attempt to find a DFA that recognizes B, we discoverthat the machine seems to need to remember how many 0s have been seen so far as it reads the input. Because the number of 0s isn’t limited, the machine will have to keep track of an unlimited number of possibilities. But it cannot do so with any finite number of states.• Our technique for proving nonregularity stems from a theorem about regular languages, traditionally called the pumping lemma . This theorem states that all regular languages have a special property. If wecan show that a language does not have this property, we are guaranteed that it is not regular. The property states that all strings in the language can be “pumped” if they are at least as long as a certain special value, called the pumping length. That means each such string contains a section that can be repeated any number of times with the resulting string remaining in the language.• Pumping Lemma: If A is a regular language, then there is a number p (the pumping length) where, if s is any string in A of length at least p, then s may be divided into three pieces, s = xyz, satisfying thefollowing conditions:1. for each A z xy i i ∈≥,02. 0||>y3. p xy ≤||• To use the pumping lemma to prove that a language B is not regular, first assume that B is regular in order to obtain a contradiction. The use the pumping lemma to guarantee the existence of a pumpinglength p such that all strings of length p or greater in B can be pumped. Next, find a string s in B that has length p or greater but that cannot be pumped. Finally, demonstrate that s cannot be pumped by considering all ways of dividing s into x, y and z (taking condition 3 of the pumping lemma into account if convenient) and, for each such division, finding a value i where B z xy i ∉. This final step often involves grouping the various ways of dividing s into several cases and analysing themindividually. The existence of s contradicts the pumping lemma if B were regular. Hence B cannot be regular. Finding s sometimes takes a bit of creative thinking. You may need to hunt through several candidates for s before you discover one that works. Try members of B that seem to exhibit the “essence” of B’s nonregularity.Chapter 2: Context – Free LanguagesIntroduction:• In this chapter we introduce context – free grammars, a more powerful method, than finite automata and regular expressions, of describing languages. Such grammars can describe certain features thathave a recursive structure which makes them useful in a variety of applications (study of human languages, compilation of programming languages).Context – Free Grammars:• A grammar consists of a collection of substitution rules, also called productions. Each rule appears as a line in the grammar and comprises a symbol and a string, separated by an arrow. The symbol iscalled a variable. The string consists of variables and other symbols called terminals.• You use a grammar to describe a language by generating each string of that language in the following manner.1. Write down the start variable . It is the variable on the left – hand side of the top rule, unlessspecified otherwise.2. Find a variable that is written down and a rule that starts with that variable. Replace the writtendown variable with the right – hand side of that rule.3. Repeat step 2 until no variables remain.• All strings generated in this way constitute the language of the grammar. We write L(G) for the language of grammar G.• Any language that can be generated by some context – free grammar is called a context – free language (CFL).• Definition: A context – free grammar is a 4 – tuple ),,,(S R V Σ, where1. V is a finite set called the variables.2. Σ is a finite set, disjoint from V, called terminals.3. R is a finite set of rules, with each rule being a variable and a string of variables and terminals.4. V S ∈ is the start variable.• We write v u ∗⇒ if v u = or if a sequence k u u u ,...,,21 exists for 0≥k andv u u u u k ⇒⇒⇒⇒⇒ (21)• The language of the grammar is }|*{w S w ∗⇒Σ∈Designing Context – Free Grammars (p.96):• You can convert any DFA into an equivalent CFG as follows. Make a variable i R for each state i q ofthe DFA. Add the rule j i aR R → to the CFG if j i q a q =),(δ is a transition in the DFA. Add the rule ε→i R if i q is an accept state of the DFA. Make 0R the start variable of the grammar, where 0q is the start state of the machine. Verify on your own that the resulting CFG generates the same language that the DFA recognizes.• If a grammar generates the same string in several different ways, we say that the string is derived ambiguously in that grammar. If a grammar generates some string ambiguously we say that thegrammar is ambiguous.• A derivation of a string w in a grammar G is leftmost derivation of at every step the leftmost remaining variable is the one replaced.• A string w is derived ambiguously in context – free grammar G if it has two or more different leftmost derivations. Grammar G is ambiguous if it generates some string ambiguously.Chomsky Normal Form:• A context – free grammar is in Chomsky normal form, if every rule is of the formo BC A →o a A →• where a is any terminal and A, B and C are any variables – except that B and C may not be the startvariable. In addition we permit the rule ε→S , where S is the start variable.• Any context – free language is generated by a context – free grammar in Chomsky normal form. Pushdown Automata (PDA):• These automata are like NFA but have an extra component called a attack. The stack provides additional memory beyond the finite amount available in the control. The stack allows pushdownautomata to recognize some Nonregular languages.• Pushdown automata are equivalent in power to context – free grammars.• A stack is valuable because it can hold an unlimited amount of information.• The current state, the next input symbol read and the top symbol of the stack determine the next move of a pushdown automaton.• Definition: A pushdown automaton is a 6 – tuple ),,,,,(0F q Q δΓΣ, where ΓΣ,,Q and F are all finitesets, and:1. Q is the set of states.2. Σ is the input alphabet.3. Γ is the stack alphabet.4. )(:εεεδΓ×→Γ×Σ×Q P Q is the transition function.5. Q q ∈0 is the start state.6. Q F ⊆ is the set of accept states.• We write c b a →, to signify that when the machine is reading an a from the input it may replace thesymbol b on the top of the stack with a c. Any of a, b and c may be ε. If a is ε, the machine may make this transition without reading any symbol form the input. If b is ε, the machine may make thistransition without reading and popping any symbol from the stack. If c is ε, the machine does not write any symbol on the stack when going along this transition.Equivalence with context – free grammars:• A language is context free if and only if some pushdown automaton recognizes it.• Constructing a CFG out of a PDA, p. 108 – 110.• Every regular language is context – free.Pumping lemma for context – free languages:• If A is a context – free language, then there is a number p (the pumping length) where, if s is any string in A of length at least p, then s may be divided into five pieces s = uvxyz satisfying theconditions:1. For each A z xy uv i i i ∈≥,02. 0||>vy3. p vxy ≤||Chapter 3: The Church – Turing ThesisTuring Machines:• Similar to a finite automaton but with an unlimited and unrestricted memory, a Turing machine is a much more accurate model of a general purpose computer. A Turing machine can do everything that areal computer can do. Nonetheless, even a Turing machine cannot solve certain problems. In a very real sense, these problems are beyond the theoretical limits of computation.• The following list summarizes the differences between finite automata and Turning machines: 1. A Turing machine can both write on the tape and read from it.2. The read – write head can move both to the left and to the right.3. The tape is infinite.4. The special states for rejecting and accepting take immediate effect.• In actuality we almost never give formal descriptions of Turing machines because they tend to be very big.• Definition: A Turing machine is a 7 – tuple ),,,,,,(0reject accept q q q Q δΓΣ, where ΓΣ,,Q are all finitesets and:1. Q is the set of states.2. Σ is the input alphabet not containing the special blank symbol3. Γ is the tape alphabet, where Γ∈ and Γ⊆Σ4. },{:R L Q Q ×Γ×→Γ×δ is the transition function5. Q q ∈0 is the start state6. Q q accept ∈ is the accept state7. Q q reject ∈ is the reject state, where accept reject q q ≠$• For a Turing machine, δtakes the form: },{:R L Q Q ×Γ×→Γ×δ. That is, when the machine is in acertain state 1q and the head is over a tape square containing a symbol a , and if ),,(),(21L b q a q =δ, the machine writes the symbol b replacing the a , and goes to state 2q .• Initially M receives its input *...21Σ∈=n w w w w on the leftmost n squares of the tape, and the rest ofthe tape is blank.• As a Turing machine computes, changes occur in the current state, the current tape contents, and the current head location. A setting of these three items is called a configuration of the Turing machine. • A Turing machine M accepts input w if a sequence of configurations k C C C ,...,,21 exists where1. 1C is the start configuration of M on input w2. Each i C yields 1+i C3. k C is an accepting configuration.• The collection of strings that M accepts is the language of M, denoted L(M).• Call a language Turing – recognizable if some Turing machine recognizes it.• When we start a TM on an input, three outcomes are possible. The machine may accept, reject, or loop. By loop we mean that the machine simply does not halt. It is not necessarily repeating the samesteps in the same way forever as the connotation of looping may suggest. Looping may entail any simple or complex behaviour that never leads to a halting state.• We prefer Turing machines that halt on all inputs; such machines never loop. These machines are called deciders because they always make a decision to accept or reject. A decider that recognizessome language also is said to decide that language.• Call a language Turing – decidable or simply decidable if some Turing machine decides it. • Every decidable language is Turing – recognizable but certain Turing – recognizable languages are not decidable.Variants of Turing Machines:• The original TM model and its reasonable variants all have the same power – they recognize the same class of languages.• To show that two models are equivalent we simply need to show that we can simulate one by the other.• A multitape TM is like an ordinary Turing machine with several tapes. Each tape has its own head for reading and writing. Initially the input appears on tape 1, and the others start out blank.• Two machines are equivalent if they recognize the same language.• Every multitape Turing machine has an equivalent single tape Turing machine.• A language is Turing – recognizable if and only if some multitape Turing machine recognizes it.• A nondeterministic Turing machine is defined in the expected way. At any point in a computation the machine may proceed according to several possibilities. The transition function for a nondeterministicTuring machine has the form:o }),{(:R L Q P Q ×Γ×→Γ×δ• The computation of a nondeterministic Turing machine is a tree whose branches correspond to different possibilities for the machine. (If you want to simulate a nondeterministic TM with a “normal”TM you have to perform a breadth – first search through the tree, because with depth – first you can lose yourself in a infinite branch of the tree and miss the accept state). If some branch of thecomputation leads to the accept state, the machine accepts its input.• Every nondeterministic Turing machine has an equivalent deterministic Turing machine.• A language is Turing – recognizable if and only if some nondeterministic Turing machine recognizes it.• We call a nondeterministic Turing machine a decider if all branches halt on all inputs.• A language is decidable if and only if some nondeterministic TM decides it.• Loosely defined, an enumerator is a Turing machine with an attached printer.• A language is Turing – recognizable if and only if some enumerator enumerates it. The Definition of Algorithm:• Informally speaking, an algorithm is a collection of simple instructions for carrying out some task. • Alonzo Church used a notational system called the λ - calculus to define algorithms. Turing did it with his “machines”. These two definitions were shown to be equivalent. This connection between theinformal notion of algorithm and the precise definition has come to be called the Church – Turing thesis.• The Church – Turing thesis: o Intuitive notion of algorithm is equal to Turing machine algorithms.• Our notation for the encoding of an object O into its representation as a string is <O>. If we haveseveral objects k O O O ,...,,21 we denote their encoding into a single string by ><k O O O ,...,,21. • Example on page. 145.Chapter 4: DecidabilityDecidable Languages:• Acceptance problem expressed as languages for regular expressions:o }|,{w string input accepts that DFA a is B w B A DFA ><=o The problem of testing whether a DFA B accepts an input w is the same as the problem oftesting whether <B,w> is a member of the language DFA A . Similarly, we can formulate othercomputational problems in term of testing membership in a language. Showing that thelanguage is decidable is the same as showing that the computational problem is decidable.o DFA A is a decidable language.o }|,{w string input accepts that NFA an is B w B A NFA ><=o NFA A is a decidable language.o |,{><=w R A REX R is a regular expression that generates string w }o REX A is a decidable language.• Emptiness testing for regular expressions:o |{><=A E DFA A is a DFA and L(A) = ∅ }o This means, that no string exists that DFA A accepts.o DFA E is a decidable language.• The next theorem states that testing whether two DFAs recognize the same language is decidable:o |,{><=B A EQ DFA A and B are DFAs and L(A) = L(B) }o DFA EQ is a decidable language.• Acceptance problem expressed as languages for context – free languages:o |,{><=w G A CFG G is a CFG that generates string w }o CFG A is a decidable language.o The problem of testing whether a CFG generates a particular string is related to the problem ofcompiling programming languages.• Emptiness testing for context – free grammars:o |{><=G E CFG G is a CFG and L(G) = ∅ }o CFG E is a decidable language.• Equivalence testing for context – free grammars:o |,{><=H G EQ CFG G and H are CFLs and L(G) = L(H) }o CFG EQ is not decidable• Every context – free language is decidable. The Halting Problem:• |,{><=w M A TM M is a TM and M accepts w }• TM A is undecidable but TM A is Turing – recognizable hence TM A is sometimes called the haltingproblem.The Digitalisation Method:• Cantor observed that two finite sets have the same size if the elements of one set can be paired with the elements of the other set.• Assume A and B are two (infinite) sets. If then exists a bijektive function f between the two sets, they have the same size.• A set B is countable if either it is finite or it has the same size as the natural numbers N.• Q (rational numbers) and N have the same size.• R (real numbers) is uncountable.• It shows that some languages are not decidable or even Turing – recognizable, for the reason that there are uncountable many languages yet only countably many Turing machines. Because each Turingmachine can recognize a single language and there are more languages than Turing machines, some languages are not recognizable by any Turing machine.• Some languages are not Turing – recognizable.• The following theorem shows that, if both a language and its complement are Truing – recognizable, the language is decidable. Hence, for any undecidable language, either it or its complement is notTruing – recognizable. We say that a language is co – Turing – recognizable if it is the complement of a Turing – recognizable language.• A language is decidable if and only if it is both Turing – recognizable and co – Turing – recognizable. • TM A is not Turing – recognizable.Chapter 5: ReducibilityUndecidable Problems from Language Theory:• In this chapter we examine several additional unsolvable problems. In doing so we introduce the primary method for proving that problems are computationally unsolvable. It is called reducibility. • A reduction is a way of converting gone problem into another problem I such a way that a solution to the second problem can be used to solve the first problem.• When A is reducible to B, solving A cannot be harder than solving B because a solution to B gives a solution to A. In terms of computability theory, if A is reducible to B and B is decidable, A also isdecidable. Equivalently, if A is undecidable and reducible to B, B is undecidable. This last version is key to proving that various problems are undecidable.• |,{><=w M HALT TM M is a TM and M halts on input w }• TM HALT is undecidable• |{><=M E TM M is a TM and L(M) = ∅ }• TM E is undecidable.• |{><=M REGULAR TM M is a TM and L(M) is a regular language }• TM REGULAR is undecidable.• Rice’s theorem: o Testing any property of the languages recognized by a TM is undecidable.• 121|,{M M M EQ TM ><= and 2M are TMs and )()(21M L M L = }• TM EQ is undecidable.• Despite their memory constraints, linear bounded automata (LBA) are quite powerful. For example,the deciders for CFG DFA CFG DFA E E A A ,,, all are LBAs. Every CFL can be decided by an LBA. • Let M be an LBA with q states and g symbols in the tape alphabet. There are exactly n g n q ⋅⋅ distinctconfigurations of M for a tape of length n.• |,{><=w M A LBA M is a LBA that accepts string w }• LBA A is decidable.• |{><=M E LBA M is an LBA where L(M) = ∅ }• LBA E is undecidable.• |{><=G ALL CFG G is a CFG and *)(Σ=G L }• CFG ALL is undecidable.• This is the problem of testing whether a context – free grammar generates all possible strings. Mapping Reducibility:• Roughly speaking, being able to reduce problem A to problem by using a mapping reducibility means that a computable function exists that converts instances of problem A to instances of problem B. Ifwe have such a conversion function, called a reduction, we can solve a with a solver for B.。
计算理论基础:可计算性、复杂性和语言(英)
谢谢观看
Ron Sigal,资深软件工程师。1983年在纽约大学获得计算机科学博士学位。曾先后任教于纽约城市大学、 意大利卡塔尼亚大学、耶鲁大学、Hofstra大学。他参与的软件项目有NASA的火星探路者、JBoss等。
Elaine J.Weyuker,著名女计算机科学家。美国国家工程院院士、IEEE和ACM会士、AT&T院士、ACM妇女委 员会主席、ACM执行委员,现任AT&T实验室研究员。她的主要研究领域是软件测试与可靠性。此前曾任纽约大学 柯朗数学研究所计算机科学教授近20年。
计算理论基础:可计算性、复杂性 和语言(英)
20xx年5月1日人民邮电出版社出版的图书
01 内容简介
03 媒体评论
目录
02 作者计算性、复杂性和语言(英)》是2009年5月1日人民邮电出版社出版的一本图书,作者 是(美国)Maritin D.Davis,(美国)Ron Sigal,(美国)Elaine J.Weyuker。
媒体评论
“如果说有哪一本计算理论方面的书所有的大学图书馆都应该收藏,那就是这本书!” ——Choice杂志
目录信息
Contents I Preliminaries 1 1. Sets and n-tuples 1 2. Functions 3 3. Alphabets and Strings 4 4. Predicates 5 5. Quantifiers 6 6. Proof by Contradiction 8 7. Mathematical Induction 9 Part 1 Computability 15 2 Programs and Computable Functions 17
内容简介
《计算理论基础可计算性复杂性和语言(英文版·第2版)》是理论计算机科学领域的名作,是计算机科学核 心主题的导论性教材。全书分为可计算性、文法与自动机、逻辑学、复杂性及语义学5个部分,分别讲述了可计算 性理论、形式语言、逻辑学与自动演绎、可计算复杂性(包括NP完全问题)和编程语言的语义等主题,并展示了它 们之间如何相互关联。《计算理论基础可计算性复杂性和语言(英文版·第2版)》是计算机及相关专业高年级本 科生和研究生的理想教学参考书,对于计算机领域的专业人士也是很好的技术参考书
计算理论导论(英文版)图灵机
Exa. : 判定A = { 0j | j=2n ,n
0}
Example 3.4 Describe a TM M that recognizes the language consisting of all strings of 0s whose length is a power of 2. It decides the language A = { 0j | j=2n ,n0}. Solution: To give the formal description of M= (Q,S,G,d,q0,qaccept,qreject) as follows. 1. Q = {q1,q2,q3,q4,q5, qaccept,qreject), 2. S ={0}, and 3. G = {0, x, _ } , 4. q1 start state Q 5. qaccept accept state Q 6. qreject reject state Q 7. To describe the transition function d with the following 21 state diagram. (fig. 3.4 p132)
6
Input Convention
7
Input Convention
8
Output Convention
9
Turing Machine
元组式定义 A Turing machine M is defined by a 7-tuple (Q,S,G,d,q0,qaccept,qreject), with 1. Q finite set of states 状态集合,相当于程序标号 2. S finite input alphabet (without “_”) 输入字母表 3. G finite tape alphabet with { _ } S G 带字母表 4. q0 start state Q 开始状态 5. qaccept accept state Q 接受状态 6. qreject reject state Q 拒绝状态 7. d the transition function 转移函数相当于移动+goto
计算理论导引 0_绪论
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
8
0.1 自动机、可计算性与复杂性
什么是计算? 计算机的基本能力和局限性是什么? 计算复杂性理论
把问题分成容易计算和难以计算的
可计算理论
布尔逻辑
合取、析取、非、异或
12
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
13
0.3 定义、定理和证明
定义:描述了我们使用的对象和概念。 证明:是一种逻辑论证。 定理:是被证明为真的数学命题。 引理:有助于证明另一个更有意义的命题的命题。
5
课程说明
教材处理
讲要点,前后次序有少数调整 略讲或自学的部分,要求了解主要思想 快讲的部分,需要一般了解的章节,要求了解主要方法和演绎框架 要求深入掌握的部分——能作题目或作难题,通过考试
6
课时安排
第0章 绪论——2学时 第1章 正则语言——5学时 第2章 上下文无关文法——3学时 第3章 丘奇-图灵论题——2学时 第4章 可判定性——2学时 第5章 可归约性——2学时 第6章 可计算理论高级专题——2学时 第7章 时间复杂性——4学时 第8章 空间复杂性——3学时 第9章 难解性——3学时 第10章 复杂性理论高级专题——4学时
京: 清华大学出版社. (美) John E.Hopcroft等著. 孙家骕等译.自动机理论、语言和计算导
论(原书第3版). 北京: 机械工业出版社.
4
课程说明
作业
计算理论探索计算机科学的数学基础和问题求解方法
计算理论探索计算机科学的数学基础和问题求解方法计算机科学作为一门学科,其数学基础和问题求解方法的探索对于计算理论的发展起着重要的作用。
本文将从数学基础和问题求解方法两个方面,分析探讨计算机科学的发展。
一、数学基础1. 离散数学离散数学是计算机科学的重要基础,它涉及到计算机中的逻辑、集合论、图论、代数和组合数学等内容。
逻辑是计算机中的基本操作,而离散数学中的命题逻辑和谓词逻辑为计算机的逻辑运算提供了数学基础。
集合论、图论和代数则为计算机的数据结构和算法设计提供了基础理论支持。
组合数学则在密码学和编码理论等领域有重要应用。
2. 线性代数线性代数是计算机科学中的一个重要分支,它主要研究向量、矩阵和线性变换等内容。
在计算机图形学、机器学习和人工智能等领域的算法设计和数据处理中,线性代数提供了重要的数学工具。
例如,在计算机图形学中,利用矩阵变换可以实现图像的旋转、缩放和平移等操作。
3. 概率论与统计学在计算机科学中,概率论和统计学被广泛运用于算法设计、数据分析和人工智能等领域。
概率论可以描述随机性和不确定性,而统计学则可以通过对数据的分析和推断,提供对问题的解决方法。
例如,在机器学习中,利用概率模型和统计方法可以对数据进行分类、聚类和回归等操作。
二、问题求解方法1. 算法设计算法是计算机科学中的核心内容,它研究如何解决具体问题的方法和步骤。
良好的算法设计可以提高计算机程序的效率和性能。
常见的算法设计方法包括贪心算法、动态规划、分治法和回溯法等。
通过对问题的分析和抽象,可以运用不同的算法设计方法来解决问题。
2. 数据结构数据结构是计算机科学中用来存储和组织数据的方式,不同的数据结构适用于不同的问题求解方法。
常见的数据结构包括数组、链表、栈、队列、二叉树和图等。
选择合适的数据结构可以提高问题的解决效率。
例如,在图论中,使用邻接矩阵或邻接表来表示图的结构,可以方便地进行图的遍历和搜索。
3. 计算模型计算模型是计算机科学中描述计算过程的理论模型。
计算理论基础课件III
The same string may have several derivations in a CFG.
3.1 Context-Free Grammars
Example 3.1.5
All regular languages are context-free. Proof.
Let a DFA: M={K, ∑, δ, s, F}, a CFG: G(M)={V, ∑, R, S}, where V=K∪∑, S=s, R={q→ap : δ(q,a)=p }∪{q→e : q∈F } → → The nonterminals are the states of the automaton; For each transition from q to p on input a , there is the rule q→ap. →
The Theory ofห้องสมุดไป่ตู้Computation
Part III
CONTENTS
1. 2. 3. 4. 5. Introduction Sets, Relations, and Functions Finite Automata Context-free Languages Turing Machines Undecidablity
Part III. Context-Free Languages
3.1 Context-free grammars 3.2 Parse trees 3.3 Pushdown automata 3.4 Pushdown automata and context-free grammars 3.5 Languages that are and are not context-free 3.6 Algorithms for Context-Free Grammar 3.7 Determinism and parsing 3.8 Chomsky normal form
计算机科学中的数学基础
计算机科学中的数学基础计算机科学作为一门重要的学科,离不开数学的支持和应用。
数学作为计算机科学的基础知识,为计算机算法、数据结构等方面的发展和研究提供了必要的工具和理论基础。
本文将介绍计算机科学中的数学基础,并探讨其在计算机领域中的应用。
一. 离散数学离散数学是计算机科学中至关重要的一门学科,它研究的是离散的数学结构和离散的对象。
离散数学的主要内容包括:集合论、图论、逻辑、代数系统等。
在计算机领域,离散数学被广泛应用于算法分析、数据结构设计、计算理论等方面。
1. 集合论集合论是离散数学的基础,它研究的是元素的集合及其之间的关系。
在计算机科学中,集合论常用于表示和描述数据的结构和关联关系。
例如,在数据库中,使用集合论中的交、并、差等运算来操作数据;在算法设计中,使用集合论的概念来描述问题和解决方案之间的关系。
2. 图论图论是研究图(由节点和边组成的数学结构)及其性质的学科。
在计算机科学中,图论广泛应用于图像处理、网络分析、路由算法等领域。
例如,在社交网络分析中,使用图论的概念来表示用户之间的关系;在路由算法中,使用图论的算法来确定最短路径。
3. 逻辑逻辑是研究推理和证明的学科,它在计算机科学中起到了重要的作用。
逻辑的符号表示法和推理规则可以帮助我们理解和证明计算机程序的正确性。
在软件工程中,使用逻辑的概念来描述程序的规范和验证程序的正确性。
4. 代数系统代数系统是研究数学结构和操作规则的学科,它在计算机科学中也有着广泛的应用。
在编程语言中,代数系统的概念和操作规则被用来定义数据类型和运算符。
例如,在面向对象的编程中,使用代数系统的概念来定义类和对象之间的关系;在数据库中,使用代数系统的概念和操作规则来进行数据查询和操作。
二. 概率论与统计学概率论与统计学是计算机科学中另一重要的数学基础,它研究的是不确定性和随机现象。
概率论和统计学的应用在计算机科学中非常广泛,例如在机器学习、数据挖掘、人工智能等领域起着重要的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
N-ary relation
1-ary relation 2-ary relation 3-ary relation
unary relations binary relations ternary relations
16
17
5 composition
QR= {(a,b): for some c, (a,c)Q and (c,b) R }
Composition of f: AB and g:B C is a function h from A to C such that h(a)=g(f(a)).
18
6 special types of binary relations
directed graph
Node Edges Notes: do not allow “parallel arrows”.
2
written
Listing Refer to other sets and properties
3
4
5
Set operations
Union: AB Intersection: AB Complement: A Difference: A-B Disjoint Sets: AB=Null
29
A path in a binary relation R is a sequence (a1,..,an) for some n1 such that (ai, ai+1)R for i=1, …, n-1; this path is said to be from a1 to an. The length of a path (a1,..,an) is n. The path (a1,..,an) is a cycle if the ai’s are all distinct and also (an, a1) R .
38
Finite and Infinite Sets
1.4
Size We call two sets A and B equinumerous if there is a bijection f: A B . Equinumerosity is a symmetric relation Equinumerosity is a equivalence relation
For the objects belong to the relation No the objects not distinguished
11
Ordered Pairs
12
Cartesian product
13
Binary relation
14
Ordered tuple
Ordered 2-tuple
All of the elements on the diagonal line of its matrix are 1.
21
Symmetric
A relation RA×A is symmetric if (b,a) R whenever (a,b) R. In the directed graph representing a symmetric relation, whenever there is an arrow between two nodes, there are arrows between those nodes in both directions. Characteristics of matrix?
elements Color(R1) Shape(R2) Size(R3) x1 x2 x3 x4 x5 x6 x7 x8 red blue red blue yellow yellow red yellow round square triangular triangular round Square triangular triangular Small Large Small Small Small Small Large Large
Example: {(a,b): a and b are persons with the same father}
22
undirected graph
A symmetric relation without pairs of the form (a,a) is represented as an undirected graph, or simple a graph.
6
Laws and Properties
Commutative law Associative law Distributive law Absorption law Demogan’s law Idempotent law
7
Super Set
A collection of any sets
ordered pairs
Ordered Ordered Ordered Ordered
3-tuple ordered triples 4-tuple quadruples 5-tuple quintuples 6-tuple sextuples Sequence is an ordered n-tuple for some unspecified n, where n is the length of the sequence. N-fold Cartesian product
Chapter 0: Introduction, mathematical notation, proof techniques
1
0.2.1 Standard Set Theory review
A set is an unordered collection of objects.
Elements ( members) Multiset - Do distinguish repetitions of the elements {7,7} and {7}
R1={(x,y):x C, y S, and x is a city in state y} R2={(x, y):x S, y C, and y is a city in state x}
35
2 expression
Domain f(a) image of a under f
f: AB f(a) = b
1 0 if ( a , b ) f otherwise
19
Adjacent matrix
M [a, b] {
Properties of relations
Reflexive Symmetric
Asymmetric Anti-symmetric
Transitive
20
Reflexive
Argument
value
36
3 Certain kinds of functions
One-to-one 一对一 Onto 满射 Bijection 双射
37
4 Inverse of a binary relation R-1
Note
The inverse of a function need not be a function. If f is a bijection, f -1 is a function. f -1(f(a))=a , for each aA; f (f -1(b))=b , for each bB;a,b∈A ∧ a≠b源自∧ (a,b)R → (b,a)R
Example1: Let P be the set of all persons, {(a,b): a ,b P and a is the father of b}
25
Transitive
A relation RA×A is transitive if whenever (a , b) R and (b, c) R, then (a , c) R. In terms of the directed graph representation, transitivity is equivalent to the requirement that whenever there is a sequence of arrows leading from an element a to an element z, there is an arrow directly from a to z.
23
Asymmetric (非对称性)
A relation RA×A is asymmetric if: ∃(a, b ∈ A ∧ (a , b) R → (b , a) R )
24
Antisymmetric (反对称性)
A relation RA×A is anti-symmetric :
40
infinite
S S
8
9
Coverage
Difference between coverage and partition
10
0.2.2 sequences and tuples
How to express relations between objects The language of sets