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 ] 

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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