You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改隶属函数以获取最近清晰值(crisp value)对应的模糊值

解决方案

原函数仅支持输入值与清晰值精确匹配,要实现“根据输入值获取对应最近清晰值的模糊值”,核心是计算输入值与每个清晰值的距离,选出距离最小的项即可。

修改后的代码如下:

def membership(inputValue, fuzzySet):
    # 初始化最小距离为无穷大,对应模糊值为None
    min_distance = float('inf')
    closest_fuzzy = None
    
    for fuzzyValue, crisp in fuzzySet:
        # 计算输入值与当前清晰值的绝对距离
        distance = abs(inputValue - crisp)
        # 如果当前距离更小,更新最小距离和对应模糊值
        if distance < min_distance:
            min_distance = distance
            closest_fuzzy = fuzzyValue
        # 可选:若存在距离相等的情况,可取消注释调整逻辑(比如保留最后一个匹配项)
        # elif distance == min_distance:
        #     closest_fuzzy = fuzzyValue
    
    return closest_fuzzy

bottle = {(0.0,0.2), (0.5,0.5), (1.0,1.0), (0.5,1.5), (0.0,2.0)}

测试验证

运行示例输入可得到预期结果:

>>> membership(2.0,bottle) 
0.0 
>>> membership(0.712321345,bottle) 
0.5 

补充说明

  • 这里用绝对差值衡量距离,适用于数值型清晰值;若清晰值为其他类型,需对应调整距离计算方式。
  • 若存在多个清晰值与输入值距离相同的场景,可根据需求修改代码逻辑(比如取模糊值的平均值、保留特定顺序的项)。

内容的提问来源于stack exchange,提问作者ShadowHunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:55:23