Каноническая математическая модель¶
Это отправная точка для математического контракта FuzzyRoutines. Документ определяет общую терминологию, фиксирует формулы текущих публичных интерфейсов и связывает каждую тему с подробным контрактом и исполняемыми проверками. Подробные главы остаются авторитетным источником для численных алгоритмов, исключений совместимости и границ доказательств.
Модель одномерная и скалярная. Многомерные нечёткие множества, нечёткие множества типа 2, символьная алгебра и неявная интерполяция не входят в текущий контракт.
Иерархия контрактов и свидетельств¶
При кажущемся противоречии источников используйте следующий порядок:
- принятые архитектурные решения определяют целевой контракт;
- этот документ излагает объединённую математическую модель;
- специализированные математические главы определяют детали и границы свидетельств по темам;
- публичные строки документации описывают поведение вызываемых объектов;
- исполняемые тесты подтверждают поведение текущей реализации.
Текущий статус реализации отделяет принятый проект от поставляемого поведения. Контракт исторической совместимости защищает существующие имена и сигнатуры, но не делает историческую терминологию математически канонической.
Скалярное нечёткое множество и области¶
Скалярное нечёткое множество — упорядоченная пара
где \(X\) — явно объявленное ContinuousUniverse или DiscreteUniverse.
Координаты и степени принадлежности — конечные вещественные скаляры. Логические значения,
неконечные числа и степени вне диапазона отклоняются, а не преобразуются.
Следующие понятия различаются:
| Понятие | Определение | Текущее представление |
|---|---|---|
| Универсальное множество | Координаты, на которых \(\mu_A\) определяет \(A\) | ContinuousUniverse или DiscreteUniverse |
| Область интегрирования | Конечный замкнутый интервал одной численной операции | IntegrationDomain |
| Множество поддержки | \(\{x\in X\mid\mu_A(x)\gt 0\}\) | Точная область или явный результат выборки |
| Замыкание множества поддержки | Замыкание множества поддержки относительно \(X\) | Точная область для поддерживаемых представлений |
| Ядро нечёткого множества | \(\{x\in X\mid\mu_A(x)=1\}\) | Точная область для поддерживаемых представлений |
| Граница | \(\{x\in X\mid0\lt \mu_A(x)\lt 1\}\) | Нечёткая переходная область, не топологическая граница |
| Высота | \(\sup\{\mu_A(x)\mid x\in X\}\) | Точный скаляр только при наличии доказательства в данном представлении |
Область интегрирования никогда не считается множеством поддержки по умолчанию.
В частности, исторический кортеж FuzzySet.supportSet — совместимое имя конечного
интервала интегрирования. Семантика точных и выборочных свойств определена
в контракте универсального множества и множества поддержки
и ADR-0002.
Семейства функций принадлежности¶
MFunction — исторический реестр аналитических семейств. Пусть \(S_{a,b}\) обозначает
квадратичное возрастающее плечо
Семейства triangle и trapezium используют защищённый исторический порядок параметров, хотя геометрический порядок их опорных точек другой:
и
Каждый сохраняемый параметр функции принадлежности — конечное число встроенного типа
int или float; логические значения отклоняются, хотя Python считает их целыми числами.
Ниже приведены ограничения семейств, дополняющие этот общий скалярный контракт.
desirability не хранит параметров, но координата вычисления также должна быть конечным встроенным скаляром.
Реализованы следующие семейства:
| Исторический идентификатор | Математическая функция | Допустимые параметры | Точные псевдонимы |
|---|---|---|---|
hyperbolic |
\(1\) при \(x\le c\); иначе \(1/(1+(a(x-c))^b)\) | \(a\gt 0\), \(b\gt 0\), конечное \(c\) | Нет |
bell |
\(S_{a,b}(x)\) при \(x\lt b\); \(1\) на \([b,c]\); \(1-S_{c,c+b-a}(x)\) после \(c\) | \(a\lt b\le c\) | Нет |
parabolic |
\(S_{a,b}(x)\) | \(a\lt b\) | sShoulder |
triangle |
\(\mathrm{Tri}_{a,c,b}(x)\) | \(a\lt c\le b\); исторический порядок a, b, c |
Нет |
trapezium |
\(\mathrm{Trap}_{a,c,d,b}(x)\) | \(a\lt c\le d\lt b\); исторический порядок a, b, c, d |
Нет |
exponential |
\(\exp\!\left[-\tfrac12((x-a)/b)^2\right]\) | конечное \(a\), \(b\gt 0\) | gaussian |
sigmoidal |
\(1/(1+\exp[-a(x-b)])\) | \(a\ne0\), конечное \(b\) | logistic |
desirability |
\(\exp[-\exp(-y)]\) | конечное \(y\); сохраняемых параметров нет | harringtonDesirability |
Точные кусочные уравнения triangle и trapezium, численные ветви и исторический порядок
параметров зафиксированы контрактом функций принадлежности.
Историческое bell — кусочно-квадратичное семейство с плоской вершиной, а не обобщённая
колоколообразная функция, распространённая в других библиотеках. Псевдонимы реестра используют
одну реализацию; они не создают новых семейств и не разрешают переименовывать защищённые параметры.
Отрицания¶
Каждое отрицание отображает \([0,1]\) в \([0,1]\). Современный API множеств требует явной
NegationPolicy; общего для процесса значения по умолчанию нет.
Стандартное дополнение:
Историческое параметрическое сильное отрицание имеет неподвижную точку \(\alpha\in(0,1)\):
Параболическое семейство — допустимая ветвь уравнения
При \(D=1-8(2\alpha-1)(x-\alpha)\) устойчивая к потере значащих цифр ветвь имеет вид
На допустимой области выполняются \(N(0)=1\), \(N(1)=0\), \(N(\alpha)=\alpha\),
монотонное убывание и инволютивность. Аргумент epsilon, сохранённый в FuzzyNOTParabolic,
служит только совместимости и не управляет аналитическим алгоритмом.
См. вывод
и ADR-0004.
T-нормы и s-нормы¶
Для \(x,y\in[0,1]\) публичные скалярные операторы и современные политики предоставляют четыре двойственных семейства. Значения в первом столбце — защищённые исторические идентификаторы реестра, а не стандартные математические названия семейств:
| Исторический идентификатор | Стандартное имя t-нормы | T-норма \(T(x,y)\) | Стандартное имя s-нормы | S-норма \(S(x,y)\) |
|---|---|---|---|---|
logic |
Минимум | \(\min(x,y)\) | Максимум | \(\max(x,y)\) |
algebraic |
Произведение | \(xy\) | Вероятностная (алгебраическая) сумма | \(x+y-xy\) |
boundary |
Лукасевича | \(\max(x+y-1,0)\) | Лукасевича | \(\min(x+y,1)\) |
drastic |
Драстическое произведение | \(y\) при \(x=1\); \(x\) при \(y=1\); иначе \(0\) | Драстическая сумма | \(y\) при \(x=0\); \(x\) при \(y=0\); иначе \(1\) |
Историческое имя — SCoNorm; современная политика множеств — SNormPolicy.
Композиция проверяет каждый операнд перед свёрткой. Исполняемые тесты проверяют замкнутость,
коммутативность, ассоциативность, нейтральные элементы и оба закона де Моргана
при стандартном отрицании.
Алгебра нечётких множеств¶
Все современные бинарные операции требуют точного равенства универсальных множеств. Они не выводят автоматически сетку пересэмплирования, преобразование координат или согласование областей.
Для множеств \(A\) и \(B\) на одном универсальном множестве:
Разность направленна. Для произвольных степеней принадлежности \(A\setminus A\) не обязана быть пустой. Симметрическая разность пока не входит в публичный контракт: для неё дополнительно нужны явная s-норма и принятая политика композиции. См. явные операции над нечёткими множествами.
Математическое равенство и включение также являются явными операциями:
Дискретные универсальные множества проверяются полностью. Произвольные непрерывные
вызываемые объекты требуют объявленного конечного ComparisonDomain, поэтому положительный
результат свидетельствует только об этих координатах и не доказывает глобальное равенство функций.
Точная политика и политика с допуском никогда не подразумеваются неявно.
См. равенство и включение.
Альфа-срезы, высота, нормализация и выпуклость¶
FuzzyRoutines использует нестрогие альфа-срезы:
Поэтому \(A_0=X\), \(A_1\) — ядро, а \(A_\beta\subseteq A_\alpha\)
при \(0\le\alpha\le\beta\le1\).
AlphaCut точен для объявленного конечного DiscreteUniverse.
SampleAlphaCut записывает конечную непрерывную сетку и всегда сообщает
isExact == False; его результат не является непрерывной геометрией.
При точной положительной высоте \(h(A)\) нормализация определяется как
Нулевая высота отклоняется. Точная высота доступна для полного перебора дискретных множеств и поддерживаемых аналитических непрерывных семейств. Для произвольных непрерывных вызываемых объектов операция завершается явной ошибкой, не выдавая выборочный максимум за доказательство. См. контракт альфа-срезов и контракт нормализации.
Принятое определение одномерной выпуклости — квазивогнутость:
Эквивалентно, каждый положительный нестрогий альфа-срез выпуклый. Определение принято в ADR-0009, но публичный запрос выпуклости и API результатов со свидетельствами не реализованы. Конечная непрерывная сетка может выявить контрпример; отсутствие нарушения на выборке не доказывает глобальную выпуклость. См. проектный контракт выпуклости.
Лингвистические термы и шкалы¶
Современное представление связывает точное непустое имя с одним ScalarFuzzySet:
LinguisticScale хранит непустой упорядоченный кортеж LinguisticTerm, имена которых
уникальны при регистронезависимом сравнении Unicode. Точный поиск учитывает регистр;
необязательный регистронезависимый поиск сравнивает полные имена после свёртки регистра.
Fuzzify() возвращает все упорядоченные степени принадлежности и их максимум как уверенность.
Явная FuzzificationPolicy задаёт минимальную уверенность, абсолютный допуск равенства
и выбор среди равных в порядке first, last или all.
Определяющий контракт — ADR-0013.
Diagnose() вычисляет явную конечную сетку с сохранением крайних точек и записывает
для каждой точки максимальную принадлежность, активные термы, пробелы, перекрытия
и ошибку разбиения единицы. Область, число точек, порог активности и допуск разбиения
заданы явно. Результат — воспроизводимое выборочное свидетельство, не доказательство
непрерывных свойств между точками. Определения диагностики и граница отсутствия изменений
зафиксированы в ADR-0014.
Исторический изменяемый список FuzzyScale.levels остаётся интерфейсом совместимости,
а GetLevelByName() сохраняет прежнюю форму вызова. Поведение Fuzzy() с победой более
позднего уровня поддерживается; в типизированной модели это явная политика last.
См. представление лингвистических термов.
Центроидная дефаззификация¶
Для непрерывного нечёткого множества и явной конечной области интегрирования \(D=[l,r]\) реализованный центроид равен
Полиномиальные семейства используют аналитические моменты. Гауссова функция использует
устойчивые замкнутые формулы, когда конечная площадь численно разрешима.
Другие семейства MFunction и произвольные вызываемые объекты используют детерминированное
адаптивное интегрирование Симпсона с явной CentroidPolicy. Нулевая или неконечная площадь
вызывает ValueError; исчерпание адаптивного объёма работы — CentroidConvergenceError.
Наилучшая промежуточная оценка или оценка на фиксированной сетке не выдаётся за сошедшийся результат.
Метод совместимости FuzzySet.Defuz() и свойство defuzValue делегируют этой стратегии
каждый доступ. Они учитывают текущие параметры и текущие границы интегрирования supportSet
без сохранённого кэша центроида.
См. контракт центроида
и ADR-0005.
Граница реализации¶
| Возможность | Статус | Контракт или свидетельства |
|---|---|---|
| Явные непрерывные и дискретные универсальные множества | Реализовано | Универсальное множество и поддержка |
| Исторический реестр аналитических функций принадлежности | Реализовано и защищено | Функции принадлежности |
| Явные политики отрицания, t-нормы и s-нормы | Реализовано | ADR-0004 |
| Дополнение, пересечение, объединение и разность | Реализовано | Операции над множествами |
| Равенство и включение | Реализовано | Отношения |
| Точные дискретные и выборочные непрерывные срезы | Реализовано | Альфа-срезы |
| Высота и нормализация | Реализовано | Нормализация |
| Типизированное лингвистическое представление | Реализовано | Лингвистические термы |
| Выборочная диагностика шкалы | Реализовано | Лингвистические термы |
| Аналитический и адаптивный центроид | Реализовано | Центроидная дефаззификация |
| Исполняемый API результата выпуклости | Планируется | Принятый проект |
| Типизированные лингвистический поиск и фаззификация | Реализовано | Лингвистические термы |
| Симметрическая разность | Не поддерживается | ADR-0008 |
| Многомерные нечёткие множества или множества типа 2 | Вне области проекта | Требуется отдельное архитектурное решение |
Указатель подробных контрактов¶
| Тема | Каноническое описание |
|---|---|
| Конечные скалярные значения | Политика конечных чисел |
| Численные допуски | Политика численных граничных случаев |
| Области и вычисляемая геометрия | Универсальное множество и поддержка |
| Семейства функций принадлежности | Контракты формул и параметров |
| Устойчивые численные ветви | Инварианты исходных формул и алгоритмов |
| Отрицания | Вывод параболического отрицания |
| Операции над множествами | Дополнение, пересечение, объединение и разность |
| Отношения | Равенство и включение |
| Альфа-срезы | Точные и выборочные альфа-срезы |
| Высота и нормализация | Нормализация нечётких множеств |
| Выпуклость | Выпуклость нечётких множеств |
| Лингвистическая модель | Типизированное представление лингвистических термов |
| Дефаззификация | Центроидная дефаззификация |
| Совместимость | Миграция с исторического API на современный |
Лицензия¶
Документация распространяется по лицензии Apache 2.0. При распространении необходимо сохранять лицензию, сведения об авторских правах и указания авторства, описанные в NOTICE.