Статья посвящена созданию экспертной системы.
В начале статьи блок-схема из книги из библиографии, затем описание базы данных и алгоритма.
Далее идет «Помощь о том, как сделать этот проект», где описан алгоритм создания этого проекта.
В конце статьи имеется список использованной литературы.
Там же есть пара скриншотов.
Блок-схема алгоритма
База данных содержит три таблицы – изображения, вопросы и результаты.
Первый из них является основным для «классификации и идентификации», он содержит признак успешного распознавания (поле флаг) и количество «пар «объект, ответ»» в «обучающей выборке» (поле n).
Второй содержит эту самую выборку (поле значения), а также названия «свойств и характеристик» (поле имени) и поле правила, используемое в алгоритме распознавания.
Наконец, третья таблица содержит возможные ответы (дождь/без дождя и т. д.).
Экшн шоу
Алгоритм работает следующим образом.
На текущей итерации сумма значений rule*value не превышает rule*n (поскольку value имеет одно из двух значений: 0 или 1).
На следующей итерации единственное значение правила превышает эту сумму, то есть rule=rule*n+1. Число инерции с вычтенной из него единицей (на первой итерации с нулевой суммой ответ неизвестен) является номером ответа (для К.
Нейлора положительная сумма правил*значение означала первый ответ, отрицательная сумма означала второй ).
Очевидно, что на первой итерации (значения правил по умолчанию равны нулю) сумма значений также будет равна нулю.
На второй итерации оно будет в диапазоне [1, n] (см.
формулу правила выше), на третьей - в диапазоне [n+1,(n+1)*n]; на четвертом диапазон будет такой: [(n+1)*n+1,((n+1)*n+1)*n] и так далее.
Таким образом, правая граница диапазона рассчитывается по формуле sum=(sum+1)*n. Когда все возможные варианты ответа проверены, мы сбрасываем правило.
Как это выглядит в веб-браузере
Помогите как сделать этот проект
Практически все файлы проекта можно создать с помощью командВ файле db/migrate/yyyyMMddhhmmss_create_images.rb вместо строки t.boolean :flag пишем t.boolean :flag, default: false. Мы также добавляем нулевые значения по умолчанию для полей images.n, questions.value и questions.rule. И делаем грабли db:migrate. Далее в файле config/routes.rb мы сделаем ресурсы вопросов и результатов подчиненными ресурсу изображений.rails generate scaffold Image name:string flag:boolean n:integer rails generate scaffold Question name:string value:integer rule:integer image:references rails generate scaffold Outcome name:string image:references
Мы также добавим has_many :questions и has_many :outcomes в файл app/models/image.rb. Остаётся только соответствующим образом изменить пути в контроллерах и представлениях: заменить questions_path на image_questions_path(params[:image_id]) и т.д. Мы создаем частичные файлы _question.html.erb и _outcome.html.erb, чтобы затем можно было визуализировать их в представлении images/show.html.erb. Подробнее об этой методике вы можете узнать, посмотрев видеотур по Rails 5, который находится на главной странице официального сайта этого веб-фреймворка.
В результате всех этих действий представления new.html.erb и edit.html.erb для обоих подчиненных ресурсов нарушены.
Вместе с единственным частичным _form.html.erb они получают один и тот же путь для действия этой формы, что неверно.
Давайте исправим это.
Алгоритм с пересчетом значений полей правила (при необходимости) см.
выше.
Он запускается, когда обновляется веб-страница, отображаемая действием show ImageController. И наконец, автоматическое тестирование.
В связи с изменением маршрутов, тесты и приспособления также требуют соответствующих изменений.
Литература
К.Нейлор.
Как построить собственную экспертную систему - Издательство «Энергоатомиздат», 1991 г.
Теги: #Алгоритмы #программирование #искусственный интеллект #agile #разработка #ruby onrails #распознавание образов
-
Очистка Снимка Изображения
19 Oct, 24 -
«Умные» Рекламные Щиты
19 Oct, 24 -
Sptd 1.58 — Поддержка Бета-Версии Windows 7
19 Oct, 24 -
Итоги Акции С Groupon. Практический Опыт
19 Oct, 24 -
Субстики #82
19 Oct, 24 -
Анонимность Skype Снова Под Угрозой
19 Oct, 24