Complete a haskell function derivative

Assignment Help Theory of Computation
Reference no: EM132130024

Models of Computation Assignment -

Purpose - To improve and consolidate your understanding of regular and context-free languages, finite-state and pushdown automata. To develop skills in analysis and formal reasoning about complex concepts, and to practise writing down formal arguments.

Challenge 1 - This challenge is to design eight finite relations and submit them via Grok. Let D = {1, 2, 3}. We can think of a binary relation on D as a subset of D × D. For example, the identity relation is {(1, 1),(2, 2),(3, 3)}. There are 9 elements in D×D, so there are 29 = 512 different binary relations on D.

Construct eight of these, r0, . . . , r7, satisfying the criteria given in the table below. Each relation should be presented as a Haskell list of pairs, that is, an expression of type [(Int, Int)]. For full marks, each relation has to be as small as it can be.

Reflexive

Symmetric

Transitive

r0

no

no

no

r1

no

no

yes

r2

no

yes

no

r3

no

yes

Yes

r4

yes

no

no

r5

yes

no

Yes

r6

yes

yes

no

r7

yes

yes

Yes

Challenge 2 - This challenge is to design three DFAs and a regular expression and submit them via Grok. An expression such as (01 ∪ 1)* ∩ (0*11)* is not a regular expression, since ∩ is not a regular operation. Nevertheless, the expression denotes a regular language.

a. Give a 3-state DFA Da for (01 ∪ 1)*.

b. Give a 4-state DFA Db for (0∗11)*.

c. In tute exercise 61 we constructed "product" automata for the intersection of languages. Now find a minimal DFA Dc for (01 ∪ 1)* ∩ (0∗11)*. You can build the DFA that is the "product" of Da and Db, but be aware that the result may not be minimal, so you may have to apply minimisation.

d. Use the NFA-to-regular-expression translation shown in Lecture 12, to turn Dc into a regular expression r for (01 ∪ 1)* ∩ (0*11)*.

Challenge 3 - This challenge is to complete, on Grok, some Haskell functions that will allow us to test for membership of languages given as regular expressions. You have probably used regular expression features in your favourite programming language, and this challenge will help you understand how such features are implemented.

Let us call a language A volatile iff ε ∈ A. For example, L(10 ∪ (11)*) is volatile, but L((0 ∪ 1)(11)*) is not. Another useful concept is that of a derivative of a language with respect to a (finite) string. The derivative of A with respect to s,

d(A, s) = {w | sw ∈ A}

For example, if A = {0, 02, 102, 111, 1102} then d(A, 11) = {1, 02}. For another example, if B is the language given by the regular expression (00)* then d(B, 0) = L((00)*0) = L(0(00)*).

We can extend the definition of "volatile" to regular expressions r: We say that r is volatile iff ε ∈ L(r). Similarly we extend d so that the function takes, and produces, regular expressions. Let us first handle the case where the string s is of length 1, that is, s is a single symbol x. We define

d1(∈, x) = ∅

d1(∅, x) = ∅

d1(y, x) = ∅ if y is a symbol and y ≠ x

d1(x, x) = ∈

d1(r1 ∪ r2, x) = d1(r1, x) ∪ d1(r2, x)

d1(r1 r2, x) = d1(r1, x) r2 ∪ d1(r2, x) if r1 is volatile

d1(r1 r2, x) = d1(r1, x) r2 if r1 is not volatile

d1(r*, x) = d1(r, x) r*

Now we can define the general case, that is, the derivative of r with respect to an arbitrary string s. We define d(r, ∈) = r and, for k ≥ 1: d(r, x1x2 · · · xk) = d1((. . . d1(d1(r, x1), x2), . . .), xk)

You should think about why the above recursive definitions are correct, before you complete their Haskell implementations on Grok. On Grok you will find a Haskell type RegExp for regular expressions.

a. Write a Haskell function volatile :: RegExp -> Bool that determines whether a regular expression is volatile.

b. Complete a Haskell function derivative :: RegExp -> String -> RegExp so that you can use Haskell to calculate derivatives of regular expressions.

c. Write a function contains :: RegExp -> String -> Bool which takes a regular expression r and a string w and decides whether w ∈ L(r). This function must use the functions volatile and derivative.

Challenge 4 - Let Σ be a finite non-empty alphabet and let x ∈ Σ be a symbol. For every w ∈ Σ* and x ∈ Σ, let omit(x, w) be the string w with all occurrences of x removed. For example, if Σ = {a, b, c} and w = baabca then omit(a, w) = bbc. Similarly, omit(b, bb) = ∈.

We now "lift" this function to languages: To "drop" a symbol from a language L will mean to "omit" it from every string in L. That is, for L ⊆ Σ*, define

drop(x, L) = {omit(x, w) | w ∈ L}.

For example, if L = {aa, baabca, bbaac, bbc} then drop(a, L) = {∈, bbc} and drop(b, L) = {aa, aac, aaca, c}.

a. Show that if R is a regular language then drop(a, R) is a regular language.

b. Assuming {a, b} ⊆ Σ, provide a language L such that drop(a, L) is context-free and non-regular, while drop(b, L) is regular.

Challenge 5 - Every regular language can be recognised by a push-down automaton which has only three states, qI , qR, and qA. Show in detail how to systematically translate an arbitrary DFA to a PDA with only three states. Try to answer this question precisely, that is, make use of the formal definitions of DFAs and PDAs. So, given an arbitrary DFA (Q, Σ, δ, q0, F), define precisely each component of the corresponding PDA (Q′, Σ′, Γ, δ′, q′0, F′).

Hints: (a) A PDA does not have to have an empty stack in order to accept a string; (b) its stack alphabet Γ can be whatever (finite) set of symbols you choose; and (c) we named the states qI, qR, and qA for a reason.

Challenge 6 - Let us fix the alphabet Σ = {0, 1}. Define a substring of w ∈ Σ* to be any string x ∈ Σ* such that w = uxv for some u, v ∈ Σ*. Now consider the language

A = {w ∈ Σ*| 001 is not a substring of w}

For example, ∈, 01, 1111, 10101, and 0111010101 are in A, but 10001 and 11001011 are not.

Consider the context-free grammar G = ({S}, Σ, R, S), where the rules R are: S → ∈

| S 0

| 1 S

| 0 1 S

Show that L(G) = A.

Hint: Show L(G) ⊆ A using structural induction and show A ⊆ L(G) by induction on the length of strings in A.

Attachment:- Assignment File.rar

Verified Expert

We had some hands on experience with relations on a finite set. We have also improved our understanding about context free and regular languages by looking at some illustrating examples. We learnt some techniques along the way like using product automata to write down regular expression for the intersection of two regular expressions, dropping a particular symbol to produce new context-free (regular) language from existing context-free(regular) language. We also saw how we can realize any regular language using a push down automata with just 3 states.

Reference no: EM132130024

Questions Cloud

The context of the healthcare supply chain : Describe the concepts, theories and models of leadership presented in this chapter in the context of the healthcare supply chain.
Relationship between two goods : The relationship between two goods must be found beforehand. what kind of relationship are possibly there between two goods?
Examine the type of training or education that is required : Examine the type of training or education that is required. Discuss whether a license or certification is required to practice this therapy.
Receiving direction on work-related task : Describe a time when you experienced a communication breakdown either in giving or receiving direction on a work-related task.
Complete a haskell function derivative : Improve and consolidate your understanding of regular and context-free languages, finite-state and pushdown automata. To develop skills in analysis and formal
Predict the cross-price elasticity : Suppose you could buy shoes one at a time, rather than in pairs. What do you predict the cross-price elasticity for left shoes and right shoes would be?
What is the cross-price elasticity of demand : If the price of good A falls from $4 to $3 and the quantity demanded of good B rises from 2 to 4, what is the cross-price elasticity of demand?
Compare the main causes leading to the economic collapses : Review working paper "The Iceland and Ireland banking crises: Lessons for the future". Compare the main causes leading to the economic collapses
Give an example of a household consumption good or service : Give an example of a household consumption good or service that the law of diminishing marginal utility does not affect?

Reviews

inf2130024

11/24/2018 1:07:46 AM

Is that possible for your tutor to do the challenge 4,5,6 first, so I can get the answer to challenge 4,5,6 tomorrow(in 24 hours)? Thank you OK! I confirm the extension Thank you very much for your work Would you mind sending me a pdf format answer just including challenge 4 5 6? And remove the title and the headers. Thank you That's great! Thank you Excellent 1 till now as per the expectation I got very Good marks so please provide this kind of solution. Awesome Job. Submitted by the deadline and received great scores too. Surely recommend to all students

Write a Review

Theory of Computation Questions & Answers

  Construct a finite-state automaton with four states

Construct a finite-state automaton with four states that recognizes the set of bit strings containing an even number of 1s and an odd number of 0s.

  Compiler design problem

This is done by changing the CFG that the language uses and what changes would have to be made to ac's CFG

  Part -1q1 what do you consider were the three most

part -1q1 what do you consider were the three most important things planned or unplanned that you learned last year?

  Build a graphic map for your project

You can use any of the techniques mentioned above and use any software application that you like. Don't do it in haste: take your time to analyze, improve, and modify it. Post the answers on the seventh day to your folder.

  Question based on deadlock problem

Students who want to enroll in Model Railroading II at the local university are required to obtain permission from the instructor and pay a laboratory fee.

  Prepare a research strategy

A research strategy is a plan of action that gives direction to your efforts enabling you to conduct your research systemically rather than haphazardly.

  Design deterministic finite state transducers

Design deterministic finite state transducers that implement the subsequent context sensitive rules:

  A new manager is starting in the organisation shortly you

a new manager is starting in the organisation shortly. you have been asked to provide an outline to this new-starter so

  Design grammars for the set of all strings

Design grammars for the set of all strings of 0s and 1s such that every 0 is immediately followed by at least one 1.

  Construct a dfsa that recognizes the set

Construct a finite-state machine with output that produces an output of 1 if the bit string read so far as input contains four or more consecutive 1s.

  Find language of nondeterministic finite-state automaton

Find a deterministic finite-state automaton that recognizes the same language as the nondeterministic finitestate automaton in Exercise.

  Describe languages denoted by regular expressions

Describe the languages denoted by the following regular ex-pressions and write regular expressions for the languages over the alphabet {a, b}

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd