Производные свойства¶
Практические примеры¶
Рецепты свойств различают точную геометрию и наблюдения на сетке. Записи результатов объясняют каждое возвращаемое поле и показывают явное восстановление.
fuzzyroutines.properties ¶
Контракты вычисления множества поддержки, ядра, границы и высоты скалярных нечётких множеств.
Непрерывные аналитические результаты получаются из объявленной геометрии семейства функций принадлежности, а не сканированием значений с плавающей точкой. Дискретные универсальные множества вычисляются точно во всех объявленных координатах. Для непрерывной выборки возвращается отдельный тип результата, фиксирующий численный способ получения и не допускающий смешения с точным математическим множеством поддержки.
ContinuousInterval
dataclass
¶
ContinuousInterval(left: MembershipScalar | None = None, right: MembershipScalar | None = None, leftClosed: bool = False, rightClosed: bool = False)
Один непустой интервал в составе вычисленной непрерывной области.
Attributes:
| Name | Type | Description |
|---|---|---|
left |
MembershipScalar | None
|
Конечная левая граница или |
right |
MembershipScalar | None
|
Конечная правая граница или |
leftClosed |
bool
|
Включена ли конечная левая граница. |
rightClosed |
bool
|
Включена ли конечная правая граница. |
isSingleton
property
¶
isSingleton: bool
Проверяет, представляет ли компонента ровно одну координату.
__post_init__ ¶
__post_init__() -> None
Validate finite or unbounded endpoints and singleton semantics.
Source code in fuzzyroutines/properties.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | |
Contains ¶
Contains(coordinate: MembershipScalar) -> bool
Проверяет, принадлежит ли конечная координата этому интервалу.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinate
|
MembershipScalar
|
Проверяемая конечная вещественная координата. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Raises:
| Type | Description |
|---|---|
TypeError
|
Координата не является вещественным скаляром. |
ValueError
|
Координата неконечна. |
Source code in fuzzyroutines/properties.py
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | |
ContinuousRegion
dataclass
¶
ContinuousRegion(intervals: tuple[ContinuousInterval, ...] = ())
Упорядоченное объединение непересекающихся интервалов в непрерывном скалярном универсальном множестве.
Attributes:
| Name | Type | Description |
|---|---|---|
intervals |
tuple[ContinuousInterval, ...]
|
Упорядоченный кортеж неперекрывающихся интервальных компонент. |
__post_init__ ¶
__post_init__() -> None
Require an explicit ordered tuple of non-overlapping components.
Source code in fuzzyroutines/properties.py
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | |
Contains ¶
Contains(coordinate: MembershipScalar) -> bool
Проверяет, принадлежит ли конечная координата хотя бы одной компоненте.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinate
|
MembershipScalar
|
Проверяемая конечная вещественная координата. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Raises:
| Type | Description |
|---|---|
TypeError
|
Область непустая, а координата не является вещественным скаляром. |
ValueError
|
Область непустая, а координата неконечна. |
Source code in fuzzyroutines/properties.py
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | |
DiscreteRegion
dataclass
¶
DiscreteRegion(points: tuple[MembershipScalar, ...] = ())
Упорядоченное подмножество объявленного дискретного универсального множества.
Attributes:
| Name | Type | Description |
|---|---|---|
points |
tuple[MembershipScalar, ...]
|
Строго возрастающий кортеж конечных координат. |
__post_init__ ¶
__post_init__() -> None
Require finite, strictly increasing, distinct coordinates.
Source code in fuzzyroutines/properties.py
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | |
Contains ¶
Contains(coordinate: MembershipScalar) -> bool
Проверяет, принадлежит ли конечная координата этой дискретной области.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coordinate
|
MembershipScalar
|
Проверяемая конечная вещественная координата. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Raises:
| Type | Description |
|---|---|
TypeError
|
Координата не является вещественным скаляром. |
ValueError
|
Координата неконечна. |
Source code in fuzzyroutines/properties.py
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 | |
ContinuousFuzzyProperties
dataclass
¶
ContinuousFuzzyProperties(universe: ContinuousUniverse, positiveSupport: ContinuousRegion, supportClosure: ContinuousRegion, core: ContinuousRegion, boundary: ContinuousRegion, height: MembershipScalar)
Точные аналитические вычисляемые свойства на непрерывном универсальном множестве.
Attributes:
| Name | Type | Description |
|---|---|---|
universe |
ContinuousUniverse
|
Непрерывное универсальное множество, которым ограничены все области. |
positiveSupport |
ContinuousRegion
|
Координаты со строго положительной принадлежностью. |
supportClosure |
ContinuousRegion
|
Замыкание |
core |
ContinuousRegion
|
Координаты с принадлежностью один. |
boundary |
ContinuousRegion
|
Координаты с принадлежностью строго между нулём и единицей согласно контракту аналитического семейства. |
height |
MembershipScalar
|
Точная верхняя грань степеней на универсальном множестве. |
isExact
property
¶
isExact: bool
Указывает, что геометрия интервалов получена из контракта аналитического семейства.
__post_init__ ¶
__post_init__() -> None
Require internally consistent regions and a valid membership height.
Source code in fuzzyroutines/properties.py
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | |
DiscreteFuzzyProperties
dataclass
¶
DiscreteFuzzyProperties(universe: DiscreteUniverse, positiveSupport: DiscreteRegion, supportClosure: DiscreteRegion, core: DiscreteRegion, boundary: DiscreteRegion, height: MembershipScalar)
Точные вычисляемые свойства на явно дискретном универсальном множестве.
Attributes:
| Name | Type | Description |
|---|---|---|
universe |
DiscreteUniverse
|
Полностью перебранное дискретное универсальное множество. |
positiveSupport |
DiscreteRegion
|
Объявленные точки с положительной принадлежностью. |
supportClosure |
DiscreteRegion
|
Совпадает с |
core |
DiscreteRegion
|
Объявленные точки с принадлежностью один. |
boundary |
DiscreteRegion
|
Объявленные точки с принадлежностью строго между нулём и единицей. |
height |
MembershipScalar
|
Максимальная принадлежность среди всех объявленных точек. |
isExact
property
¶
isExact: bool
Указывает, что вычислена каждая координата объявленного универсального множества.
__post_init__ ¶
__post_init__() -> None
Require derived point sets to be subsets of the declared universe.
Source code in fuzzyroutines/properties.py
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | |
SampledFuzzyProperties
dataclass
¶
SampledFuzzyProperties(analysisDomain: IntegrationDomain, sampleCount: int, coordinates: tuple[MembershipScalar, ...], grades: tuple[MembershipScalar, ...], positiveSupportSamples: DiscreteRegion, coreSamples: DiscreteRegion, boundarySamples: DiscreteRegion, heightEstimate: MembershipScalar, method: str = 'uniform-grid')
Приближённые наблюдения конечных координат на непрерывной области.
SampleProperties создаёт равномерную сетку и по степеням принадлежности определяет точки каждой записанной области. При прямом создании объекта проверяются структура таблицы, охват границ, принадлежность точек записанных областей исходной сетке и высота. Равномерность шага не проверяется, а три записанные области не вычисляются заново.
Attributes:
| Name | Type | Description |
|---|---|---|
analysisDomain |
IntegrationDomain
|
Замкнутый интервал, покрываемый сеткой. |
sampleCount |
int
|
Число координат, включая обе границы. |
coordinates |
tuple[MembershipScalar, ...]
|
Строго возрастающие координаты, охватывающие |
grades |
tuple[MembershipScalar, ...]
|
Проверенные степени для |
positiveSupportSamples |
DiscreteRegion
|
Записанное подмножество координат выборки; |
coreSamples |
DiscreteRegion
|
Записанное подмножество координат выборки; |
boundarySamples |
DiscreteRegion
|
Записанное подмножество координат выборки; |
heightEstimate |
MembershipScalar
|
Наибольшая наблюдаемая степень, а не доказательство точной верхней грани. |
method |
str
|
Непустая метка происхождения выборки. |
isExact
property
¶
isExact: bool
Не позволяет представлять выборочные наблюдения как точную геометрию.
__post_init__ ¶
__post_init__() -> None
Validate the complete provenance and observation table.
Source code in fuzzyroutines/properties.py
362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 | |
DeriveProperties ¶
DeriveProperties(membershipFunction: MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter, universe: ContinuousUniverse) -> ContinuousFuzzyProperties
DeriveProperties(membershipFunction: MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter, universe: DiscreteUniverse) -> DiscreteFuzzyProperties
DeriveProperties(membershipFunction: MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter, universe: ContinuousUniverse | DiscreteUniverse) -> ContinuousFuzzyProperties | DiscreteFuzzyProperties
Выводит точные свойства нечёткого множества для поддерживаемого скалярного универсального множества.
Непрерывным результатам нужна современная MembershipFunction или исторический адаптер MFunction. Точные аналитические сведения копируются из проверенного источника формулы; произвольная функция не доказывает непрерывные поддержку или высоту. На дискретном универсальном множестве результат точен благодаря вычислению каждой объявленной координаты. Для явно приближённого непрерывного запроса используйте SampleProperties.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
membershipFunction
|
MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter
|
Современное аналитическое семейство или поддерживаемый исторический аналитический адаптер. |
required |
universe
|
ContinuousUniverse | DiscreteUniverse
|
Анализируемое непрерывное или дискретное скалярное универсальное множество. |
required |
Returns:
| Type | Description |
|---|---|
ContinuousFuzzyProperties | DiscreteFuzzyProperties
|
Точные непрерывные аналитические свойства или полные дискретные свойства согласно типу универсального множества. |
Raises:
| Type | Description |
|---|---|
TypeError
|
Один из аргументов имеет неподдерживаемый тип контракта. |
ValueError
|
Аналитическое семейство не поддерживается или вычисление даёт недопустимую степень принадлежности. |
Source code in fuzzyroutines/properties.py
693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 | |
SampleProperties ¶
SampleProperties(membershipFunction: MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter, analysisDomain: IntegrationDomain, sampleCount: int = 101) -> SampledFuzzyProperties
Возвращает явно приближённые наблюдения на равномерной конечной сетке.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
membershipFunction
|
MembershipFunction | _AnalyticalSource | _LegacyAnalyticalAdapter
|
Современное аналитическое семейство или исторический аналитический адаптер, значения которого вычисляются в узлах сетки. |
required |
analysisDomain
|
IntegrationDomain
|
Конечный замкнутый интервал, покрываемый сеткой. |
required |
sampleCount
|
int
|
Число координат равномерной сетки, включая границы. |
101
|
Returns:
| Type | Description |
|---|---|
SampledFuzzyProperties
|
Выборочные наблюдения нечётких свойств с подробным описанием происхождения. |
Raises:
| Type | Description |
|---|---|
TypeError
|
Аргумент имеет неверный тип контракта. |
ValueError
|
|
Source code in fuzzyroutines/properties.py
787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 | |