Matemáticas borrosas. Relaciones y colas de lobo

Los parámetros y principios de funcionamiento de varios sistemas se pueden conectar mediante un atributo seleccionado entre ellos con varios tipos de relaciones. Si, digamos, estamos interesados ​​en el efecto del precio de un servicio en su demanda, entonces esta relación puede describirse por una relación del tipo "influencias", "influencias fuertes", "influencias débiles", etc. En este caso, los objetos bastante "discretos" para la descripción pueden no ser suficientes. Para muchos problemas aplicados de la teoría de autómatas, reconocimiento de patrones, toma de decisiones, etc. Tiene sentido generalizar el concepto de la relación entre los objetos a un caso difuso. Además, el modelo, muy posiblemente, describirá de manera más adecuada el sistema, permitiendo un análisis cualitativo de los sistemas sin pérdida de información umbral, en relación con la aparición de nuevos tipos de relaciones: similitud, similitud, disimilitud, ...


El concepto de relaciones difusas (conexiones, asociaciones, relaciones, relaciones son sinónimos), junto con el concepto de conjuntos difusos, se refiere a los fundamentos fundamentales de toda la teoría de los conjuntos difusos. Además del hecho de que ellos mismos han aplicado valor, sobre la base de una serie de conceptos adicionales se determinan que se utilizan para construir modelos difusos de sistemas más complejos.


Relación borrosa



(lo siento)

Definición


Como en el caso de los conjuntos difusos (HM), las relaciones difusas generalizan el concepto de la relación habitual a la que estamos acostumbrados en la teoría de conjuntos (ingenua). Y muchos conceptos presentados a continuación para las relaciones serán similares a los conceptos correspondientes para NM.


Introducimos los conceptos de relación difusa y consideramos sus propiedades.


Relación difusa de 2 arios (binario) RU=U1×U2U1×U2, μR(X,y):U1×U2[0 0,1],XU1,yU2. :


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


n- Rn- .


, [0 0,1]- ( , ..). [0 0,1]. μR(X,y)(X,y)XRy(X,y)R. , n- .


.


  • ;
  • (Xyo,yj)μR(Xyo,yj);
  • El |El |μR(Xyo,yj)El |El |;
  • sol~=(U~,V~), U~={tunorte},nortenorte— , V~={μR~(tuyo,tuj)/ /(tuyo,tuj),μR~(tuyo,tuj)>0 0}— . ( , . , , , xD)

.



Deja en el set U=1,3,5 5,7 7,9 9relación difusa definida R« » ( x>>y ). :







R,SU1×U2,XU1,yU2


RUU1×U2:

stupagspags(R)={(X,y):μR(X,y)>0 0,(X,y)U1×U2}


RS,

(X,y)μR(X,y)μS(X,y)


( ) :

μR(1)(X,y)=metrounaXy(μR(X,y))


:

μR(2)(X,y)=metrounaXX(μR(X,y))


h(R):

h(R)=metrounaXX(metrounaXy(μR(X,y)))=metrounaXy(metrounaXX(μR(X,y)))


, h(R)=1, — .


RR¯, :

μR¯(X,y)=1-μR(X,y)


, Rllamar a una relación tan clara RhEl |μRh(X,y)={0 0,μR(X,y)<0,51,μR(X,y)>0,50 0yly1,μR(X,y)=0,5.En general, se acepta que cuando la función característica de la relación difusa es 0.5, la función para el cierre será 0.


Inversa a Rllamar a tal actitud R-1, qué μR-1(X,y)=μR(y,X).Matriz de relaciones R-1en este caso será la matriz transpuesta R.


Operaciones


Unión e intersección :

μRS(X,y)=metrounaX(μR(X,y),μS(X,y));μRS(X,y)=metroyonorte(μR(X,y),μS(X,y))

. El conjunto de todas las relaciones difusas forma una red distributiva en relación con las operaciones de unión e intersección; y del cumplimiento de las identidades de idempotencia, conmutatividad, asociatividad, absorción y distributividad para la red.L=[0 0;1] El cumplimiento de estas identidades para todas las relaciones sigue.

, , « 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=metrounaXα(α×Rα).




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


  1. max-min ( ): RS:μRS(X,z)=metrounaXyU(metroyonorte(μR(X,y),μS(y,z))). .
  2. min-max ( ): RS:μRS(X,z)=metroyonorteyU(metrounaX(μR(X,y),μS(y,z))).
  3. max-• ( ): RS:stupagsyU(μR(X,y)μS(y,z)).

UNA,siU, . : μUNA(X,y)=[0.2 0.20.60,50.8],μsi(X,y)=[0,50.70,31]


:


  1. μUNAsi(X,y)=[0,30.60,50.8];
  2. μUNAsi(X,y)=[0,50.70,50.7];
  3. μUNAsi(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 0,(X,X)U;


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


: μR(X,y)μR(y,X)(yly)μR(X,y)=μR(y,X)=0 0;


: Xy,μR(X,y)>0 0μR(y,X)=0 0;


: μR(X,z)metrounaXy(metroyonorte(μR(X,y),μR(y,z))).


… . .




2 NPC-, K1K2. , . NPC :


K1:, , .


K2:, , — .


, , :


« » =UNA=(0.8/ /3;0.4 0.4/ /quince;0,3/ /treinta).


« » =si=(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 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(UNA,si)=H+(UNA)-H+(si),solremi H+(X)=0 01METRO(X0 0)reX,METRO(X0 0)=(yonorteFXX0 0(X)+stupagsXX0 0(X))2.


UNAsi— . . :


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=UNA×si  UNA¯×si¯:


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

Un pequeño valor negativo indica que K2acepta más objetos con lealtad y es más probable que cuente la búsqueda del jugador que K1.


Y eso es todo por hoy.


All Articles