Construct DFA Beginning with A but Does Not Have Substring AAB

Bhanu Priya
Updated on 15-Jun-2021 12:37:02

1K+ Views

ProblemGiven language to construct the deterministic finite automata (DFA) is, the strings start with ‘a’ but not contain substring ‘aab’ over alphabet ∑={a,b}.SolutionIf the input is: “baabba”The output is: string is not acceptedBecause the string does not start with ‘a’, and generating a substring ‘abb’,DFA transition diagramThe DFA transition diagram for the string beginning with ‘a’ but not having the substring as ‘aab’ is as follows −Transition tableThe transition table is as follows −STATEINPUT (a)INPUT (b)→ 01*4 (dead state)1*2*3*2*2*4 (dead state)3*1*3*4 (dead state)4 (dead state)4 (dead State)

Polynomial Time Reduction from Clique Problem to Vertex Cover Problem

Bhanu Priya
Updated on 15-Jun-2021 12:30:04

2K+ Views

Vertex cover is a subset of vertices that covers all the edges in a graph. It is used to determine whether a given graph has a 3SAT to vertex cover.Clique is called a subset of vertices that are all directly connected. It determines whether a clique of size k exists in a graph.To prove − Vertex cover can be reduced to clique.ProofGiven a graph G=(V, E) and integer k.Get its complement graph G'=(V, E').Solve CLIQUE(G', |V|-k).If there is a solution, return yes. Otherwise, it returns as no.To prove this reduction, we need to show the following −If there is a ... Read More

Assign Specific Colors to Cells in a Matplotlib Table

Rishikesh Kumar Rishi
Updated on 15-Jun-2021 12:28:40

2K+ Views

To assign specific colors to specific cells in a Matplotlib table, we can take the following steps −Set the figure size and adjust the padding between and around the subplots.Make a tuple for columns attribute.Make a list of lists, i.e., list of records.Make a list of lists, i.e., color of each cell.Create a figure and a set of subplots.Add a table to an axes ax.Turn off the axes.To display the figure, use show() method.Exampleimport matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True columns = ('name', 'age', 'marks', 'salary') cell_text = [["John", "23", "98", "234"], ["James", ... Read More

Plot with Different Scales in Matplotlib

Rishikesh Kumar Rishi
Updated on 15-Jun-2021 12:26:48

5K+ Views

To plot with different scales in matplotlib, we can take the following steps −StepsSet the figure size and adjust the padding between and around the subplots.Create t, data1 and data2 data points using numpyCreate a figure and a set of subplots, ax1.Initialize a color variable.Set x and y labels of axis 1.Plot t and data1 using plot() method.Set label colors using tick_params() method.Create a twin Axes sharing the X-axis, ax2.Perform steps 4, 6, 7 with a different dataset on axis 2.To display the figure, use show() method.Exampleimport numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] ... Read More

Horizontal Stacked Bar Chart in Matplotlib

Rishikesh Kumar Rishi
Updated on 15-Jun-2021 12:25:28

11K+ Views

To plot stacked bar chart in Matplotlib, we can use barh() methodsStepsSet the figure size and adjust the padding between and around the subplots.Create a list of years, issues_addressed and issues_pending, in accordance with years.Plot horizontal bars with years and issues_addressed data.To make stacked horizontal bars, use barh() method with years, issues_pending and issues_addressed dataPlace the legend on the plot.To display the figure, use show() method.Examplefrom matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True year = [2014, 2015, 2016, 2017, 2018, 2019] issues_addressed = [10, 14, 0, 10, 15, 15] issues_pending = [5, 10, 50, ... Read More

Construct DFA Recognizing Language with 1s Divisible by 2 and 0s by 3

Bhanu Priya
Updated on 15-Jun-2021 12:20:23

5K+ Views

ProblemThe given language L={ x | the number of 1's is divisible by 2, and 0's by 3} over an alphabet ∑={0, 1}.SolutionThe language is divided into two parts, first we need to find the number of 1’s divisible by 2 and second find out the number of 0’s divisible by 3, finally combine the two parts to generate a result.Step 1 − DFA for the first part, number of 1’s divisible by 2.Here, q0 on 0 goes to q0 which is a final state, and generates a string 0, accepted by the given language.q0 on 1 goes to q1, ... Read More

Differentiate Between Ambiguous and Unambiguous Grammar

Bhanu Priya
Updated on 15-Jun-2021 12:14:50

8K+ Views

Before understanding the differences between ambiguous grammar and unambiguous grammar, let us learn about these concepts.Ambiguous GrammarA grammar is said to be ambiguous if there exists more than one left most derivation or more than one right most derivation or more than one parse tree for a given input string.If the grammar is not ambiguous then we call unambiguous grammarIf the grammar has ambiguity then it is good for compiler constructionNo method can automatically detect and remove the ambiguity, but we can remove the ambiguity by re-writing the whole grammar without ambiguity.ExampleLet us consider a grammar with production rules −E=I ... Read More

Construct DFA of Alternate 0's and 1's

Bhanu Priya
Updated on 15-Jun-2021 12:13:10

4K+ Views

ProblemConstruct deterministic Finite automata (DFA) whose language consists of strings with alternate 0’s and 1’s over an alphabet ∑ ={0, 1}.SolutionIf Σ = {0, 1} (ε + 1)(01)* (ε + 0) is the set of strings that alternate 0’s and 1’s Another expression for the same language is (01)*+ 1(01)*+ (01)*0+ 1(01)*0.The strings the given language generates are as follows −If no input is either 0 or 1 then it generates {ε} .String starts with 0 and followed by 1 = {0101…}.String starts with 1 followed by 0 ={101010….. }So, based on string generation it is clear the strings are ... Read More

Construct a TM Performing Multiplication of Two Unary Numbers

Bhanu Priya
Updated on 15-Jun-2021 12:11:27

10K+ Views

AlgorithmStep 1 - Read the leftmost ‘0’ replace it by ‘x’ and move right to process the immediate symbol after ‘#’.Step 2 - Replace the symbol ‘0’ by x and move right reach the first ‘B’ after ‘#’Step 3 - Replace B by ‘0’ and move left until the nearest ‘x’ is reachedStep 4 - Replace the ‘x’ by 0 and move right to process the next symbol of the multiplicand.Step 5 - Perform steps 2, 3 and 4 until all the symbols of the multiplicand are processed.Step 6 - Move left to replace the symbol of the multiplier, ‘x’ ... Read More

Design a Turing Machine to Compute Addition of Two Unary Numbers

Bhanu Priya
Updated on 15-Jun-2021 12:08:55

11K+ Views

The unary input number n is represented with a symbol 0 n – times.Example4 → 00001 → 05 → 00000The separation symbol, „#‟ (any other special character) shall be used to distinguish between two or more inputs.For Example: 5, 2 are the inputs represented by 00000 # 00.AlgorithmStep 1 - Read the symbols of the first input with no replacements and move right.Step 2 - When the symbol = ‘#’, replace it by ‘0’ and move right.Step 3  - Traverse right side until the rightmost ‘0’ (left to B – last symbol)Step 4 - Replace the rightmost ‘0’ by BStep ... Read More

Advertisements