0% found this document useful (0 votes)
29 views

Assignment Toc 3

This document contains a student's assignments on theory of computation. It includes 3 questions: 1) Using Thomson Construction Method to construct non-deterministic machines for two regular languages and compare to deterministic machines constructed using Subset Construction Method. 2) Interpret and compare the deterministic and non-deterministic machines. 3) Justify how theory of computation has helped evolve computing with examples related to limits of computation, algorithm design, programming languages, and more.

Uploaded by

faria shahzadi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Assignment Toc 3

This document contains a student's assignments on theory of computation. It includes 3 questions: 1) Using Thomson Construction Method to construct non-deterministic machines for two regular languages and compare to deterministic machines constructed using Subset Construction Method. 2) Interpret and compare the deterministic and non-deterministic machines. 3) Justify how theory of computation has helped evolve computing with examples related to limits of computation, algorithm design, programming languages, and more.

Uploaded by

faria shahzadi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Theory of Computation

Assignment: 03

Submitted by:
Faria Shehzadi
Reg No: 1165 -FOC/MSCS/F23
Class: MSCS F23
Course Code: CS512
Submitted to: Dr Qamar Abbas
Date: 17-12-2023
Question # 1
Use Thomson Construction Method to construct the non-deterministic machine from
following languages
a). (a|abc|c)* b) (aa|bb|cc)*
Highlight Thomson Construction Method steps properly
Question # 2
Use Subset Construction Method to convert the machines of Question#1 to
deterministic machines. You are also required to interpret the results of converted
machines. Compare the designed/converted machines in question # 1 and question #
2 w.r.t resources.
Interpretation:
The DFA is deterministic, meaning for each state and input symbol, there is a unique next
state. The DFA represents the language defined by the regular expression.
(a∣abc∣c)*
Comparison with NFA:
The DFA typically has more states than the NFA due to the subset construction process.
Each state in the DFA corresponds to a set of states in the NFA.
The DFA is generally more memory-efficient during runtime since it only needs to
remember its current state, whereas the NFA might require tracking multiple possible
states simultaneously.
Resources:
The DFA is more efficient in terms of memory as it has a fixed number of states.
The NFA might be more compact in terms of the number of states but may require
additional bookkeeping to handle non-determinism.
PART B
Interpretation:
The DFA represents the language defined by the regular expression
(aa∣bb∣cc) ∗
.It is deterministic, meaning for each state and input symbol, there is a unique next
state.
Comparison with NFA:
The DFA may have more states than the NFA due to the subset construction process.
The DFA is more memory-efficient during runtime since it only needs to remember
its current state, whereas the NFA might require tracking multiple possible states
simultaneously.
Resources:
The DFA is more efficient in terms of memory as it has a fixed number of states.
The NFA might be more compact in terms of the number of states but may require
additional bookkeeping to handle non-determinism.
Question # 3
How theory of computation is helpful is evolving the field of computing? Justify your
answer with proper examples in detail?
The theory of computation is a branch of theoretical computer science that explores
the fundamental properties of computation. It provides a theoretical foundation for
understanding the nature and limits of computation, helping to shape the field of computing
in various ways. Here are some ways in which the theory of computation is helpful in
evolving the field:
 Defining the Limits of Computation:
What can and cannot be computed algorithmically is defined in part by the theory of
computation, especially through models such as Turing machines. Gaining a realistic
understanding of these boundaries is essential to appreciating the power of computers.
 Complexity Theory:
Within the field of theory of computation, complexity theory examines the resources
needed to solve computational problems. It assists in categorizing issues according to their
intrinsic complexity, which is crucial for locating effective algorithms and comprehending
the difficulties that come with solving particular kinds of issues.
 Algorithm Design:
Theoretical models of computation often inspire the design of practical algorithms. For
example, algorithms for sorting, searching, and graph traversal are influenced by
theoretical concepts such as finite automata, formal languages, and graph theory.
 Programming Language Design:
Theoretical insights into the nature of computation influence the design of programming
languages. Understanding formal grammars and automata theory, for instance, is crucial
for creating languages with clear syntax and semantics.
 Compiler Construction:
The theory of computation contributes to compiler construction by providing formal
methods for language recognition and code optimization. Automata theory and formal
languages play a role in designing lexical analyzers and parsers.
 Cryptography and database systems:
Cryptography and database systems both utilize theoretical concepts from computation
theory, with cryptographic protocols' security based on computational challenges, while
database systems design and optimize.
 Parallel and Distributed Computing:
The development of models for distributed and parallel computing is guided by theoretical
insights from the theory of computation. This entails being aware of the constraints and
potential of distributed systems and parallel algorithms.
 Formal Verification:
The theory of computation plays a crucial role in formal methods and verification
techniques. Formal verification ensures the correctness of software and hardware systems
by using mathematical models derived from theoretical concepts.
 Artificial Intelligence:
Theoretical foundations from computation theory, such as computational complexity,
influence the development of AI algorithms, helping to design feasible and practical
solutions to certain problems.
 Automata Theory and Language Recognition:
Justification: Language recognition and parsing heavily rely on the theory of computation,
in particular automata theory. It serves as the foundation for compiler design and is
important to formal language theory.
An example of how theoretical concepts are put to use in practice is the widespread use of
regular expressions, which have their roots in formal language theory and are utilized in
text processing and pattern matching.
 Turing Machines and Universal Computation:
Justification: The theory of computation is based on the ideas of Turing machines and
universal computation. It forms the foundation of contemporary programming languages
and computers.
As an illustration of the usefulness of theoretical ideas, consider how various algorithms
and programs are carried out by contemporary computers, which are driven by the ideas of
universal computation.

You might also like