Примечание: Символ % набирать не следует - это знак-приглашение операционной системы UNIX. Синтаксис fismain подобен mex-файлу, содержащему evalfis.m, за исключением того, что все матрицы и структуры заменяются на имена файлов.
В результате выполнения программы появится файл fis_out, содержащий результаты нечеткого логического вывода. Файл представляют собой матрицу размером 121х1, каждая строчка которой соответствует результату нечеткого логического вывода для одного входного вектора.
Для сравнения результатов нечетких логических выводов, выполняемых матлабовским mex-файлом и программой fismain, выполним в среде MatLab следующий сценарий:
fis = readfis (‘mam21’);
matlab_out = evalfis(input_data, fis);
load fis_out
max(max(abs(matlab_out – fis_out)))
В результате получим значение максимального абсолютного отклонения между результатами нечетких логических выводов. Значение отклонения имеет порядок 10 -13. Оно может отличаться в зависимости аппаратных средств – длины разрядной сетки.
При использовании Си-кода машины нечеткого логического вывода необходимо помнить, что:
- Си-код совместим с ANSI- и K&R- (Керниган и Ричи) стандартами на язык Си;
- Си-код не поддерживает определяемые пользователем функции принадлежности и реализации логических операций И, ИЛИ, импликации и аггреатирования. Таким образом, доступными являются только запрограммированные реализации этих операций и 11 типовых функций принадлежности;
- fismain.c содержит только одну функцию – main(). Она довольно плохо документирована, поэтому ее легкая адаптация для других приложений проблематична;
- для добавления нового типа функций принадлежности или для изменения механизма вывода необходимо внести изменения в файл fis.c, который содержит все необходимые функции для выполнения нечеткого логического вывода;
- для компьютеров Macintosh программа fismain по умолчанию будет использовать следующие файлы: fismain.in – для исходных данных; fismain.fis – для системы нечеткого логического вывода; fismain.out – для результатов нечеткого логического вывода. Имена этих файлов заданы в файле fismain.c; они могут быть изменены по необходимости.