logo

Машина Мура

Машина Мура — це кінцевий автомат, у якому наступний стан визначається поточним станом і поточним вхідним символом. Вихідний символ у певний момент залежить лише від поточного стану машини. Машину Мура можна описати 6 кортежами (Q, q0, ∑, O, δ, λ), де,

 Q: finite set of states q0: initial state of machine ∑: finite set of input symbols O: output alphabet δ: transition function where Q × ∑ → Q λ: output function where Q → O 

приклад 1:

Діаграма стану машини Мура така

Машина Мура

Таблиця переходів для машини Мура:

перетворити рядок на об’єкт json
Машина Мура

У наведеній вище машині Мура вихідні дані представлені кожним вхідним станом, розділеним /. Вихідна довжина для машини Мура більша за вхідну на 1.

введення: 010

Перехід: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2

Вихід: 1110 (1 для q0, 1 для q1, знову 1 для q1, 0 для q2)

приклад 2:

Створіть машину Мура для створення доповнення до 1 заданого двійкового числа.

рішення: Щоб створити доповнення до 1 заданого двійкового числа, проста логіка полягає в тому, що якщо вхід дорівнює 0, то вихід буде 1, а якщо вхід дорівнює 1, то вихід буде 0. Це означає, що є три стани. Один стан є початковим станом. Другий стан призначений для прийому нулів як вхідних даних і створення вихідних даних як 1. Третій стан призначений для прийому 1 як вхідних даних і створення вихідних даних як 0.

Отже, машина Мура буде,

Машина Мура

Наприклад, візьмемо одне двійкове число 1011

шаблони проектування в java
Введення 1 0 1 1
Держава q0 q2 q1 q2 q2
Вихід 0 0 1 0 0

Таким чином, ми отримуємо 00100 як доповнення до 1 до 1011, ми можемо знехтувати початковим 0, і результатом, який ми отримуємо, є 0100, який є доповненням до 1 до 1011. Таблиця транзакцій виглядає наступним чином:

Машина Мура

Таким чином, машина Мура M = (Q, q0, ∑, O, δ, λ); де Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. таблиця переходів показує функції δ і λ.

приклад 3:

Спроектуйте машину Мура для двійкової вхідної послідовності так, що якщо вона має підрядок 101, машина виводить A, якщо вхід має підрядок 110, вона виводить B, інакше виводить C.

рішення: Щоб спроектувати таку машину, ми перевіримо дві умови, а це 101 і 110. Якщо ми отримаємо 101, результатом буде A, а якщо ми розпізнаємо 110, результатом буде B. Для інших рядків результатом буде C.

Часткова діаграма буде виглядати так:

Машина Мура

Тепер ми вставимо можливості 0 і 1 для кожного стану. Таким чином, машина Мура стає:

Машина Мура

Приклад 4:

Побудуйте машину Мура, яка визначає, чи містить вхідний рядок парну чи непарну кількість одиниць. Машина повинна вивести 1, якщо в рядку є парна кількість одиниць, і 0 в іншому випадку.

рішення:

Машина Мура буде:

Машина Мура

Це необхідна машина Мура. У цій машині стан q1 приймає непарну кількість одиниць, а стан q0 приймає парну кількість одиниць. Обмежень на кількість нулів немає. Отже, для входу 0 самоцикл можна застосувати до обох станів.

перевизначення методу в java

Приклад 5:

Створіть машину Мура з вхідним алфавітом {0, 1} і вихідним алфавітом {Y, N}, яка виводить Y на виході, якщо вхідна послідовність містить 1010 як підрядок, інакше виводить N на виході.

рішення:

Машина Мура буде:

Машина Мура