2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Построение Конечного автомата
Сообщение16.10.2017, 00:54 


16/10/17
1
доброго времени суток буду краток пишу алгоритм конечного автомата на маткаде и питоне.(код в маткад примерно похож на то, что написано на питоне)
Задача автомата - продажа пива. Стоимость кружки пива 10 у.е., при этом принимает монеты достоинством 5, 10 у.е. и имеет 2 кнопки "Сброс" и "Наливай".
код: [ скачать ] [ спрятать ]
Используется синтаксис Python
def S(A, B, X, Z, Y, x):
    h = 0
    yy = []
    for i in range(len(x)):
        for j in range(len(X)):
            flag = 0
            for k in range(len(Z)):
                if x[i][0] == X[j] and x[i][1] == Z[k]:
                    flag = 1
                    break
            if flag:
                yy.append(Y[B[h][k]])
                h = A[h][j]
                break
    return yy


A = [[1, 0], [2, 0], [0, 0], [2, 0], [0, 0]]
B = [[0, 3], [1, 3], [1, 3], [1, 3], [1, 3]]
Y = ["Мало денег", "Налить пиво", "Дать сдачу и налить пиво", "Вернуть деньги", "Ожидание"]
X = [5, 10]
Z = ["Наливай", "Сброс"]
x = [[5, "Наливай"], [5, "Сброс"], [10, "Наливай"], [5, "Наливай"], [10, "Наливай"]]

print(S(A, B, X, Z, Y, x))

Собственно в чем соль. А - матрица переходов; В - матрица функции выходов; Y - множество выходов; X, Z - множество входов; x - матрица для проверки.
на выходе получил нечто следующее:
['Мало денег', 'Вернуть деньги', 'Налить пиво', 'Мало денег', 'Налить пиво']
Граф в наличии, возможно там тоже имеется ошибка.
Изображение

 Профиль  
                  
 
 Re: Построение Конечного автомата
Сообщение16.10.2017, 05:06 


21/05/16
4292
Аделаида
А Python x и X не путает?

 Профиль  
                  
 
 Re: Построение Конечного автомата
Сообщение16.10.2017, 08:18 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Нет, kotenok gav, не путает. Он case sensitive.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: QuantumCoder


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group