Многомерная нечеткая классификация в историко-типологическом исследовании: разработка и апробация новой версии программного продукта

Исследование эффективности новой версии программы многомерной нечеткой классификации на основе алгоритма FuzzyClass, созданного на кафедре исторической информатики МГУ. Сравнение ее результатов с результатами других алгоритмов нечеткой классификации.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 08.04.2019
Размер файла 453,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

b. каждое значение в массиве NewMuValues делится на соответствующее текущему объекту значение из массива TotalMuForEachObject (т.е. каждое значение делится на сумму этих значений для объекта) и возводится в степень, равную значению P . На выходе имеем готовый массив новых весов принадлежности NewMuValues.

8. Начинает работу цикл с проверкой. На этом этапе каждое значение NewMuValues вычитается из каждого (соответствующего) значения массива OldMuValues, модуль разности возводится в степень P . На каждом шаге цикла получаем временную переменную tempAbsValueInPowerP. Далее происходит две проверки (переменной i, которая отражает количество пройденных циклов, и переменной tempAbsValueInPowerP). В зависимости от результата проверки возможны несколько сценариев:

a. i не превышает 40, и какое-то из tempAbsValueInPowerP превышает 0,01; в этом случае происходит копирование массива NewMuValues в OldMuValues, значение i увеличивается на 1, а цикл возвращается к п. 3;

b. i не превышает 40, и ни одно из tempAbsValueInPowerP не превышает 0,01 (либо i >=40); в этом случае цикл завершается - переход к п. 9.

9. Функция FindFunctional() производит подсчет значения функционала для финальных значений.

10. FindSumOfProductsForMuAndData("Initial"). Вызывается в последний раз процедура для подсчет сумм произведений исходных значений на значения из массива OldMuValues в степени P (значения в массиве были возведены в степень в процедуре FindNewMuValues() и поэтому на данном шаге уже не нужно проводить возведение в степень).

11. FindTotalMuForEachClass(). Пересчет финальных значений весов принадлежности на основе исходных данных.

12. FindClassCenters(). Пересчет значений центров классов на основе исходных данных.

13. Подсчет значений внутриклассовых вариаций - FindClassVariations(). Сначала происходит подсчет стандартного отклонения по формуле:

Затем на основе этого значения считают внутриклассовые вариации, отражающие степень однородности класса.

14. Вывод на экран полученных результатов при помощи функции OutputResults(), а также построение диаграммы.

Приложение 3. Блок-схема программы

На рис. 2 приводится блок-схема программы. После ввода начальных данных и первичных настроек (количество классов, параметра нечеткости, при желании - выбор цветов для классов), начинает работу главный цикл (MainAlgo()), который последовательно вызывает все процедуры программы и делает проверку из п. 8 приведенного выше описания алгоритма.

Далее алгоритм либо завершает цикл, подсчитывая центры классов и внутриклассовые вариации с исходными значениями, либо вновь вызывает все процедуры для нормализованных значений до достижения результата. Если количество шагов превышает 40, цикл завершается с подсчетом конечных результатов, даже если значение valueForCheck превышает 0,01 (в программе переменная называется иначе - tempAbsValueInPowerP, на блок-схеме используется другое название для удобства представления информации).

Рис. 2. Блок-схема работы алгоритма

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.