0% found this document useful (0 votes)
45 views12 pages

Notes TOC

Uploaded by

Kyng Shem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views12 pages

Notes TOC

Uploaded by

Kyng Shem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

-Theory of Computation WK1: Introduction

What are the fundamental capabilities and limitations of computers?

Automata Theory -What can we compute with very little space?

Allows practice with formal definitions of computation and introduces concepts relevant to other
nontheoretic areas of computer science.

Has two models

• finite automaton - used in text processing, compilers, and hardware design

• context-free grammar - used in programming languages and AI.

Computability Theory -Is a given problem solvable or unsolvable?

Defines whether a problem is solvable by any abstract machine.

Theoretical models are proposed in order to understand solvable/unsolvable problems which


leads to the development of real computers.

• The Turing machine is a simple abstract mathematical model of a real computer

Complexity Theory- What makes some problems computationally hard and others easy?

The objective is to classify problems as easy ones and hard one,

“Easy” problem - searching for a name in a directory.

“Hard” problem - if it cannot be solved efficiently, or if we don’t know whether it can be solved
efficiently. An example is finding an optimal timetable for all UTech students .

PREREQUISITE KNOWLEDGE
Mathematical Concepts

Set theory plays a fundamental role in the theory of computation, providing a mathematical
foundation for formal languages, automata theory, formal proofs, and complexity theory. It
enables the precise definition and analysis of computational models and their properties, making
it an essential tool in computer science research and practice.
Sequences and Tuples

sequences represent strings and words over an alphabet, which form the basis of formal
languages.

Tuples represent states, transitions, input symbols, and instances of computational problems in
automata theory and complexity theory.

Understanding these concepts is essential for analyzing computational models and algorithms’
behavior, properties, and complexity.
Functions and Relations
Functions describe mappings or computations on sequences and play a role in language processing,
automata behavior, computational models, and complexity analysis.

Relations describe associations or connections between sequences and are used to define the structure
and dependencies of formal languages, automata, computational models, and problems in complexity
theory.
Graphs
Graphs are used to represent and analyze various structures, including parse trees, state transition
diagrams, data flow/control flow graphs, circuit/communication graphs, and reduction graphs.

Graph theory and graph algorithms provide insights into the behavior, properties, and complexity of
computational models, formal languages, and problems in the theory of computation.

Boolean Logic
Boolean logic provides the foundation for expressing and manipulating binary values, enabling
the design, analysis, and understanding of computational systems and algorithms.
Strings and Languages
Strings represent data and form the basis for formal languages, while languages are sets of
strings defined by specific rules.
Theory of Computation WK5: Context-Free Languages

You might also like