模糊数学。人际关系和狼尾巴

各种系统的参数和操作原理可以通过彼此之间具有各种关系的选定属性来连接。假设,如果我们对服务价格对其需求的影响感兴趣,那么可以通过“影响”,“强烈影响”,“弱影响”等类型的关系来描述这种关系。在这种情况下,仅用于描述的“离散”对象可能是不够的。对于自动机理论的许多应用问题,模式识别,决策等。将对象之间的关系的概念概括为模糊情况是有意义的。在这种情况下,模型很可能会更充分地描述系统,并结合新类型的关系的出现,对系统进行定性分析而不会丢失阈值信息:相似性,相似性,不相似性,...


概念模糊关系(连接,关联,关系,关系是同义词),用模糊集的概念一起,是指模糊集的整个理论的根本基础。除了它们本身具有应用价值这一事实之外,还确定了许多其他概念,这些概念用于构建更复杂系统的模糊模型。


模糊关系



(抱歉)

定义


模糊集(HM)一样,模糊关系概括了我们在(原始)集理论中惯用的通常关系的概念。下面介绍的有关关系的许多概念将类似于NM的相应概念。


我们介绍模糊关系的概念并考虑其性质。


模糊二元(二进制)比率 RU=U1×U2U1×U2, μR(x,y):U1×U2[0,1],xU1,yU2. :


R=(x,y)U1×U2μR(x,y)/(x,y)


n- Rn- .


, [0,1]- ( , ..). [0,1]. μR(x,y)(x,y)xRy(x,y)R. , n- .


.


  • ;
  • (xi,yj)μR(xi,yj);
  • ||μR(xi,yj)||;
  • G~=(U~,V~), U~={un},nN— , V~={μR~(ui,uj)/(ui,uj),μR~(ui,uj)>0}— . ( , . , , , xD)

.



U=1,3,5,7,9R« » ( x>>y ). :







R,SU1×U2,xU1,yU2


RUU1×U2:

supp(R)={(x,y):μR(x,y)>0,(x,y)U1×U2}


RS,

(x,y)μR(x,y)μS(x,y)


( ) :

μR(1)(x,y)=maxy(μR(x,y))


:

μR(2)(x,y)=maxx(μR(x,y))


h(R):

h(R)=maxx(maxy(μR(x,y)))=maxy(maxx(μR(x,y)))


, h(R)=1, — .


RR¯, :

μR¯(x,y)=1μR(x,y)


, RR|μR(x,y)={0,μR(x,y)<0.51,μR(x,y)>0.501,μR(x,y)=0.5., 0.5 0.


RR1, μR1(x,y)=μR(y,x).R1R.



联合交叉点

μRS(x,y)=max(μR(x,y),μS(x,y));μRS(x,y)=min(μR(x,y),μS(x,y))

所有模糊关系的集合形成与并集和相交运算有关的分布格;并通过满足晶格的幂等性,可交换性,缔合性,吸收性和分布性L=[0;1] 这些身份对于所有关系的实现如下。

, , « x y / » « x y ». ; , «» , x y , . , .


: μRS(x,y)=μR(x,y)μS(x,y); : μR+S(x,y)=μR(x,y)+μS(x,y)μR(x,y)μS(x,y).


, . α- . , . - Rα={(x,y):μR(x,y)α}. , α1α2Rα1Rα2.


( ) . RR=maxα(α×Rα).




. , . (Max-*)-. , 3 .


  1. max-min ( ): RS:μRS(x,z)=maxyU(min(μR(x,y),μS(y,z))). .
  2. min-max ( ): RS:μRS(x,z)=minyU(max(μR(x,y),μS(y,z))).
  3. max-• ( ): RS:supyU(μR(x,y)μS(y,z)).

A,BU, . : μA(x,y)=[0.20.60.50.8],μB(x,y)=[0.50.70.31]


:


  1. μAB(x,y)=[0.30.60.50.8];
  2. μAB(x,y)=[0.50.70.50.7];
  3. μAB(x,y)=[0.180.60.250.8].




. :


:μR(x,x)=1,(x,x)U;


: μR(x,y)μR(x,x);


: μR(x,x)=1,μR(x,y)<1;


flexx: μR(x,x)=0,(x,x)U;


: μR(x,y)=μR(y,x);


: μR(x,y)μR(y,x)()μR(x,y)=μR(y,x)=0;


: xy,μR(x,y)>0μR(y,x)=0;


: μR(x,z)maxy(min(μR(x,y),μR(y,z))).


… . .




2 NPC-, K1K2. , . NPC :


K1:, , .


K2:, , — .


, , :


« » =A=(0.8/3;0.4/15;0.3/30).


« » =B=(0.1/0.9;0.5/0.5;0.8/0.1).


« » =C=(0.8/0.9;0.5/0.5;0.3/0.2).


. : NPC ?



, :


def very(arr: List[set]):
    return [(elem[0]**2, elem[1]) for elem in arr]


def no(arr: List[set]):
    return [(1 - elem[0], elem[1]) for elem in arr]


def attitude(a: List[set], b: List[set], func = lambda x, y: min(x, y)):
    return [[func(i[0], j[0]) for j in b] for i in a]


def attitude_unite(a: List[List], b: List[List]):
    return [[max(a[i][j], b[i][j]) for j in range(len(a[i]))] for i in range(len(a))]


def composition(a: List[List], b: List[List]):
    result = [[0 for j in range(len(b[0]))] for i in range(len(a))]

    for x in range(len(a)):
        for z in range(len(b[0])):
            maximum = min(a[x][0], b[0][z])

            for y in range(0, len(a[0])):
                if maximum < min(a[x][y], b[y][z]):
                    maximum = min(a[x][y], b[y][z])
            
            result[x][z] = maximum

    return result


def index_plus(a: List[List]):
    maximum = max([elem[1] for elem in a])
    result = 0
    for i in range(len(a)):
        result += a[i][0] * (a[i][1] + maximum) / 2

    return result


def ranking_index(a: List[List], b: List[List]):
    return index_plus(a) - index_plus(b)

, — -. , , , index_plus ranking_index. . ( ; , ) :

H(A,B)=H+(A)H+(B), H+(X)=01M(X0)dX,M(X0)=(infxX0(x)+supxX0(x))2.


AB— . . :


A = [(0.8, 3), (0.4, 15), (0.3, 30)]
B = [(0.1, 0.9), (0.5, 0.5), (0.8, 0.1)]
C = [(0.8, 0.9), (0.5, 0.5), (0.3, 0.2)]

x— « ».


x = no(very(A))
x = [[elem[0] for elem in x]]

NPC K1R1. R1=A×B  A¯×B¯:


AonB = attitude(A, B)
notAonnotB = attitude(no(A), no(B))
R1 = attitude_unite(AonB, notAonnotB)

y1, ( ) R1.


y1 = composition(x, R1)
print('y1 = ', y1)
# >> y1 =  [[0.63, 0.3599999999999999, 0.3599999999999999]]

:


notAonC = attitude(no(A), C)
AonnotC = attitude(A, no(C))
R2 = attitude_unite(notAonC, AonnotC)
y2 = composition(x, R2)
print('y2 = ', y2)
# >> y2 =  [[0.5599999999999999, 0.3599999999999999, 0.3599999999999999]]

y1y2:


y1 = [(y1[0][i], B[i][1]) for i in range(len(y1[0]))]
y2 = [(y2[0][i], C[i][1]) for i in range(len(y2[0]))]

NPC:


print('index = ', ranking_index(y1, y2))
# >> index =  -0.020000000000000018

, K2比其他人更忠诚地接受物品,并且更可能为玩家计算任务 K1


今天就这些。


All Articles