ES2989208T3 - Método para representar objetos de una red en una GUI - Google Patents

Método para representar objetos de una red en una GUI Download PDF

Info

Publication number
ES2989208T3
ES2989208T3 ES22158683T ES22158683T ES2989208T3 ES 2989208 T3 ES2989208 T3 ES 2989208T3 ES 22158683 T ES22158683 T ES 22158683T ES 22158683 T ES22158683 T ES 22158683T ES 2989208 T3 ES2989208 T3 ES 2989208T3
Authority
ES
Spain
Prior art keywords
square
level
squares
nodes
forces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES22158683T
Other languages
English (en)
Inventor
Francescantonio Paolo Di
Corti Alessandro Cavallaro
Moreno Carullo
Andrea Carcano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nozomi Networks SAGL
Original Assignee
Nozomi Networks SAGL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nozomi Networks SAGL filed Critical Nozomi Networks SAGL
Application granted granted Critical
Publication of ES2989208T3 publication Critical patent/ES2989208T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Complex Calculations (AREA)

Abstract

La presente invención se refiere a un método para representar objetos de una red en una GUI que comprende asignar todos los objetos de la red como nodos respectivos en un espacio bidimensional, evaluar las fuerzas gravitacionales de los nodos y posicionar los objetos como un gráfico en la GUI en función de las fuerzas gravitacionales de los nodos, en donde la asignación comprende encerrar todos los nodos en un único cuadrado base, dividir el único cuadrado base en una pluralidad de cuadrados de 1.er nivel , cada uno de los cuadrados de 1.er nivel en una pluralidad de cuadrados de 2.º nivel , iterar la subdivisión de cada uno de los (n) ésimos cuadrados de nivel en una pluralidad de (n+1) ésimos cuadrados de nivel, en donde la subdivisión se realiza para los (n) ésimos cuadrados de nivel provistos de dos o más de los nodos, en donde la evaluación comprende seleccionar como cuadrado fuente uno de los cuadrados comenzando desde el nivel más alto, seleccionar y como cuadrado receptor uno de los cuadrados comenzando desde el nivel más alto, evaluar si el cuadrado fuente y los cuadrados receptores están distantes, computar las fuerzas que actúan sobre el cuadrado receptor a partir del cuadrado fuente, si el cuadrado fuente y el cuadrado receptor se evalúan como distantes o si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes y no tienen cuadrados de nivel inferior anidados respectivamente, subseleccionar como cuadrado fuente o como cuadrado receptor uno de los cuadrados de un nivel inferior si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes, en donde la subselección se itera para todos los cuadrados del mismo nivel, en donde la evaluación se itera para todas las combinaciones posibles de cuadrados fuente y receptor en el primer nivel, y en donde la evaluación comprende además distribuir, por la unidad de procesamiento de datos computarizada, las fuerzas que actúan sobre cada uno de los cuadrados receptores a todos los nodos en el cuadrado receptor correspondiente que define las fuerzas gravitacionales de todos los nodos. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método para representar objetos de una red en una GUI
Campo de la invención
La presente invención se refiere al campo de la interfaz gráfica de usuario (GUI). En particular, la presente invención se refiere a un método para representar objetos de una red en una GUI.
Técnica antecedente
Una interfaz gráfica de usuario (GUI) es una forma de interfaz de usuario que permite a los usuarios interactuar con dispositivos electrónicos a través de íconos gráficos e indicadores en lugar de interfaces de usuario basadas en texto. El diseño de la composición visual y el comportamiento temporal de una GUI es una parte importante de la programación de aplicaciones de software en el área de interacción humano-ordenador. Su objetivo es mejorar la eficiencia y la facilidad de uso del diseño lógico subyacente de un programa almacenado, mientras que las acciones en una<g>U<i>generalmente se realizan a través de la manipulación directa de los elementos gráficos.
En particular, el término GUI generalmente se refiere a las características visibles de la interfaz gráfica de una aplicación. Los usuarios pueden interactuar con la información manipulando subaplicaciones visuales que permiten interacciones apropiadas al tipo de datos que contienen. Las subaplicaciones de una interfaz bien diseñada se seleccionan para admitir las acciones necesarias para lograr los objetivos de los usuarios.
En el campo de la gestión de infraestructuras de redes informáticas, es de gran importancia el uso de GUI para simplificar la representación, a nivel de usuario, de la multitud de conexiones e intercambios de datos implicados. En particular, para monitorear y proteger grandes redes informáticas OT/IOT/IT modernas, un requisito fundamental es la necesidad de garantizar una buena visibilidad de la red, es decir, es necesario tener una visibilidad clara de todos los ordenadores/dispositivos presentes en la red y de todas las comunicaciones que ocurren entre ellos.
Un tipo de GUI empleado para garantizar una visibilidad adecuada de la red es el gráfico de red, en donde cada ordenador o dispositivo de la red se representa como un nodo y las comunicaciones entre ellos se representan como enlaces que conectan los nodos. En un gráfico de red, para tener una visualización clara de todos los componentes, existe la necesidad de disponer los nodos de tal manera que estén bien espaciados entre sí, en donde los nodos que están conectados directamente por un enlace deben colocarse cerca unos de otros y si aparece un nuevo nodo o enlace en una nueva iteración, la posición de los otros nodos no debe cambiar de manera sustancial.
Un enfoque bien conocido para calcular las posiciones de los nodos de manera que se ajusten a las propiedades anteriores es utilizar una simulación pseudofísica. Cada nodo se trata como una partícula puntual con una masa dada (m) y genera una fuerza repulsiva pseudogravitacional que actúa sobre todos los demás nodos. Cada enlace se trata como un resorte con una constante elástica determinada que atrae a los nodos conectados. Se asigna una posición inicial arbitraria a los nodos en el momento inicial fcy luego la posición de los nodos en ese momento t-Ftc+dt se calcula teniendo en cuenta las leyes de dinámica de Newton aplicando a cada nodo las fuerzas gravitacionales y de resorte. Una vez obtenidas las nuevas posiciones se repite la operación calculando las posiciones en el momento t2=t1+dt, y así sucesivamente para cada nueva iteración que sigue. Si dt es suficientemente pequeño y si la simulación física se lleva a cabo utilizando un esquema numérico estable, la posición de los nodos convergerá a una condición relativamente estable después de una cantidad de iteraciones que generalmente depende de la cantidad de nodos. La solicitud de patente europea núm. EP3333735A1 describe un método y un programa informático para determinar la colocación de al menos un circuito para un dispositivo lógico reconfigurable. El método comprende calcular un gráfico de circuito en base a la información relacionada con el al menos un circuito. El gráfico de circuito comprende una pluralidad de nodos y una pluralidad de bordes. La pluralidad de nodos representa al menos un subconjunto de la pluralidad de bloques del al menos un circuito y en donde la pluralidad de bordes representa al menos un subconjunto de la pluralidad de conexiones entre la pluralidad de bloques del al menos un circuito. El método comprende además determinar un diseño dirigido por fuerzas del gráfico de circuito. El diseño dirigido por fuerzas se basa en fuerzas de atracción basadas en la pluralidad de conexiones entre la pluralidad de bloques y en fuerzas de repulsión entre la pluralidad de bloques. El método comprende además determinar una colocación de la pluralidad de bloques lógicos sobre una pluralidad de celdas lógicas disponibles del dispositivo lógico reconfigurable en base al diseño dirigido por fuerzas del gráfico de circuito.
Un enfoque ingenuo para evaluar las fuerzas gravitacionales consiste en iterar, para cada nodo (i), en todos los demás nodos (j) y calcular la fuerza que ejerce cada uno de los otros nodos (j) se genera en el nodo (i). En otras palabras, el nodo (i) para el cual se desea calcular la fuerza se considera como el receptor que recibe las fuerzas producidas sobre este por todos los demás nodos que actúan como fuentes. Este enfoque tiene una complejidad de orden O(N2) (siendo N el número de nodos) y no se puede aplicar en casos realistas, ya que tan pronto como N aumenta, requiere demasiados recursos en cada iteración. Además de que cada cálculo de fuerza requiere la evaluación de funciones de potencia, raíz cuadrada y trigonométricas, y por lo tanto es computacionalmente costoso, es importante tratar de reducir tanto como sea posible el número de evaluaciones de fuerza requeridas.
Un enfoque adicional, que avanza hacia la necesidad antes mencionada, es el método Barnes-Hut que permite reducir la complejidad a O(N*Log(N)). La idea central de este método sigue siendo iterar sobre cada receptor, pero juntando varias fuentes considerándolas como una única fuente. De esta manera, para cada grupo de fuentes reunidas, se requiere una única evaluación de la fuerza gravitacional, en lugar de tener una única evaluación para cada nodo del grupo.
El método Barnes-Hut reduce la complejidad al eliminar la iteración en cada una de las fuentes y reemplazarla con una iteración en un grupo de fuentes. De esta manera, varias masas fuente que estén lo suficientemente cerca pueden considerarse como una sola masa, reduciendo por lo tanto el número de evaluaciones de fuerza necesarias. De todas formas, cada fuente, o masa, puede interpretarse tanto como fuente y como receptor, por lo que el cálculo global requiere realizar una doble iteración anidada, con una gran cantidad de recursos computacionales requeridos.
Por lo tanto, sería conveniente representar objetos y conexiones de una red de manera que sean comprensibles para el usuario. En particular, sería conveniente proporcionar una representación de una GUI de gráfico de red que involucre una pequeña cantidad de recursos computacionales.
Breve descripción de la invención
El objeto de la presente invención es proporcionar un método para representar objetos y su conexión en red capaz de minimizar los inconvenientes antes mencionados. En particular, sería conveniente tener un método capaz de representar una red global en cada iteración utilizando pocos recursos computacionales.
Según la presente invención se describe, por lo tanto, un método para representar objetos de una red en una GUI según las reivindicaciones adjuntas.
Descripción de las figuras
Estas y otras características y ventajas de la presente invención se harán evidentes a partir de la descripción de las modalidades preferidas, ilustradas a modo de ejemplo no limitativo en las figuras adjuntas, en donde:
- La Figura 1 muestra un árbol cuaternario de un primer ejemplo definido según la presente invención;
- La Figura 2 muestra un árbol cuaternario de un segundo ejemplo definido según la presente invención.
Descripción detallada de la invención.
La presente invención se refiere a un método para representar objetos de una red en una GUI.
El método según la presente invención encuentra una aplicación útil en cualquier tipo de infraestructuras físicas o sistemas de automatización conectados en red, en particular en sistemas de automatización industrial, tales como procesos industriales para la producción manufacturera, procesos industriales para la generación de energía, infraestructuras de distribución de fluidos (agua, petróleo y gas), infraestructuras para la generación y/o transmisión de energía eléctrica, infraestructuras para la gestión del transporte. Además, encuentra aplicaciones útiles en todos los entornos tecnológicos, incluidas las tecnologías de la información (TI), la tecnología de operaciones (OT) y la Internet de las cosas (IoT).
Observando el cálculo global de las fuerzas gravitacionales que actúan sobre un conjunto de n masas, cada masa puede interpretarse tanto como fuente y como receptor. Con el enfoque ingenuo estándar, la masa misma puede considerarse como un receptor y todas las demás masas son las fuentes que generan una fuerza sobre el receptor. Por lo tanto, el cálculo global requiere realizar una iteración doble anidada.
El método según la presente invención reduce la complejidad al eliminar la iteración en cada nodo quejunta las fuentes y los receptores al evaluar las fuerzas. De esta manera, varias masas fuente que estén lo suficientemente cerca pueden considerarse como una sola masa, reduciendo por lo tanto el número de evaluaciones de fuerza necesarias. Al mismo tiempo, varias masas, receptoras que estén lo suficientemente cerca pueden considerarse como una sola masa, lo que reduce aún más el número de evaluaciones de fuerza necesarias.
El método se describirá a continuación teniendo en cuenta dos ejemplos sencillos, pero, por supuesto, es escalable a cualquier tipo de complejidad.
La Figura 1 ilustra un primer ejemplo, a procesar según el método de la presente invención, que comprende cinco nodos numerados del 1 al 5. Estos nodos representan objetos correspondientes en una red.
Teniendo en cuenta el enfoque ingenuo, al considerar los cinco nodos para cada uno de ellos se deben considerar los otros cuatro nodos, lo que resulta en una complejidad de evaluación de veinte fuerzas.
Teniendo en cuenta el enfoque de Barnes-Hut, analizando cada uno de los cinco nodos y agrupando las masas fuente, el nodo numerado como 1 requiere tres evaluaciones de fuerzas (nodo numerado como 2, grupo de nodos numerados como 3 y nodo numerado como 4, nodo numerado como 5), el nodo numerado como 2 requiere tres evaluaciones de fuerzas (nodo numerado como 1, grupo de nodos numerados como 3 y nodo numerado como 4, nodo numerado como 5), el nodo numerado como 3 requiere tres evaluaciones de fuerzas (grupo de nodos numerados como 1 y nodo numerado como 2, nodo numerado como 4, nodo numerado como 5), el nodo numerado como 4 requiere tres evaluaciones de fuerzas (grupo de nodos numerados como 1 y nodo numerado como 2, nodo numerado como 3, nodo numerado como 5) y el nodo numerado como 5 requiere dos evaluaciones de fuerzas (grupo de nodos numerados como 1 y nodo numerado como 2, grupo de nodos numerados como 1 y nodos numerados como 2). Dando como resultado una complejidad de evaluación de dieciséis fuerzas.
El método para representar objetos de una red en una GUI según la presente invención permite reducir aún más la complejidad a sólo diez fuerzas de evaluación.
El método comprende primero asignar todos los objetos de la red como nodos respectivos en un espacio bidimensional. La Figura 1 ilustra tal asignación que se describirá con mayor detalle a continuación.
La asignación comprende definir, por una unidad informatizada de procesamiento de datos, la posición inicial aleatoria de todos los nodos asignando a cada uno de los nodos las respectivas coordenadas a lo largo de los ejes x y y en el espacio bidimensional. Posteriormente, encerrar, por la unidad informatizada de procesamiento de datos, todos los nodos en un cuadrado base único, tal y como se representa en los bordes de la Figura 1.
El cuadrado base único se aproxima dividiéndolo en una pluralidad de cuadrados de 1 ernivel, nuevamente por una unidad informatizada de procesamiento de datos. Tal pluralidad de cuadrados de 1er nivel consta de cuatro cuadrados que tienen las mismas dimensiones. En particular, los cuadrados de 1er nivel están anidados en el cuadrado base para que representen hijos del mismo.
A continuación, la asignación comprende la subdivisión, por la unidad informatizada de procesamiento de datos, de cada uno de los cuadrados de 1er nivel en una pluralidad de cuadrados de 2do nivel, en donde la subdivisión se realiza para los cuadrados de 1er nivel provistos de dos o más de los nodos. Tal pluralidad de cuadrados de 2do nivel consta de cuatro cuadrados que tienen las mismas dimensiones.
Para simplificar la presentación e identificación se adoptará la siguiente notación. Cada cuadrado hijo se define por un número en base a la posición con respecto al cuadrado padre, en donde la notación 1 define el cuadrado en la posición superior izquierda, la notación 2 define el cuadrado en la posición superior derecha, la notación 3 define el cuadrado en la posición inferior derecha y la notación 4 define el cuadrado en la posición inferior izquierda. Además, la notación de los cuadrados padres se mantendrá en cada nivel. Por lo tanto, los cuadrados de 1er nivel se identifican con la notación 1, 2, 3 y 4 comenzando con los cuadrados de 1er nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior.
Considerando la notación antes mencionada, el cuadrado 2 y el cuadrado 4 ya no se subdividirán, ya que el primero contiene un solo nodo, es decir, el nodo numerado como 5, mientras que el segundo no contiene ningún nodo. Por el contrario, cada uno de los cuadrados 1 y 3 se subdividirán, como se ha descrito, en cuatro cuadrados más de 2do nivel que tienen las mismas dimensiones. En particular, los cuadrados de 2do nivel están anidados en los respectivos cuadrados de 1er nivel para que representen hijos del mismo. Por lo tanto, los cuadrados de 2do nivel se identifican con la notación 1-1, 1-2, 1-3 y 1-4, para el cuadrado de 1er nivel con la notación 1, y con la notación 3-1, 3-2, 3-3, 3-4, para el cuadrado de 1er nivel con la notación 3, comenzando nuevamente con los cuadrados de 2do nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior. Los nodos se encierran en el cuadrado de 2do nivel con la notación 1-1, es decir, nodos numerados como 1 y 2, y en el cuadrado de 2do nivel con la notación 3-4, es decir, nodos numerados como 3 y 4.
Al iterar la subdivisión, cada uno de los cuadrados de (n)ésimo nivel se subdividen en una pluralidad de cuadrados de (n+1)ésimo nivel, y la iteración se realiza hasta que los cuadrados de (n)ésimo nivel estén provistos de dos o más nodos.
Preferentemente, también la pluralidad de cuadrados de (n+1)ésimo nivel constan de cuatro cuadrados de nivel que tienen las mismas dimensiones. En particular, los cuadrados de (n+1)ésimo nivel están anidados en los respectivos cuadrados de (n)ésimo nivel de manera que representen hijos del mismo, consistiendo estos últimos a su vez en cuatro cuadrados de nivel que tienen las mismas dimensiones anidados en los respectivos cuadrados de (n-1)ésimo nivel para que representen hijos del mismo, y así sucesivamente.
En la modalidad ilustrada en la Figura 1, la iteración implica únicamente la subdivisión adicional del cuadrado de 2do nivel con la notación 1-1 y el cuadrado de 2do nivel con la notación 3-4, siendo los únicos cuadrados de 2do nivel provistos de dos nodos. Por lo tanto, el cuadrado 1-1 y el cuadrado 3-4 se subdividirán, como se describe, cada uno en cuatro cuadrados más de 3er nivel que tienen las mismas dimensiones. En particular, los cuadrados de 3er nivel están anidados en los respectivos cuadrados de 2do nivel para que representen hijos del mismo. Por lo tanto, los cuadrados de 3er nivel se identifican con la notación 1-1-1, 1-1-2, 1-1-3 y 1-1-4, para el cuadrado de 2do nivel con la notación 1-1, y con la notación 3-4-1,3-4-2, 3-4-3, 3-4-4, para el cuadrado de 2do nivel con la notación 3-4, comenzando nuevamente con los cuadrados de 3er nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior. Los nodos se encierran en el cuadrado de 3er nivel con la notación 1-1-2, es decir, nodo numerado como 2, en el cuadrado de 3er nivel con la notación 1-1-4, es decir nodo numerado como 1, en el cuadrado de 3er nivel con la notación 3-4-3, es decir nodo numerado como 4, y en el cuadrado de 3er nivel con la notación 3-4 4, es decir, nodo numerado como 3.
De esta manera, la asignación define un árbol cuaternario, como se ilustra en la Figura 1, de todos los nodos del 1 al 5 que representan los objetos de la red. En particular, el árbol cuaternario tal como se define no es un árbol cuaternario completo, ya que no todos los cuadrados padres tienen exactamente cuatro cuadrados hijos anidados, la anidación que depende de los nodos contenidos, como se explicó.
Después de la asignación, el método comprende evaluar las fuerzas gravitacionales de los nodos.
La valoración comprende seleccionar, por la unidad informatizada de tratamiento de datos, como cuadrado fuente uno de dichos cuadrados empezando por el de nivel más alto. Posteriormente, la valoración comprende seleccionar, por la unidad informática de procesamiento de datos, como cuadrado receptor uno de dichos cuadrados empezando por el de nivel más alto. En particular, la valoración se itera para todos los cuadrados del mismo nivel.
Para simplificar la descripción a continuación, los cuadrados fuente se indicarán con S seguido de la notación que los identifica en el árbol cuaternario antes mencionado, mientras que los cuadrados receptores se indicarán con R seguido de la notación que los identifica en el árbol cuaternario antes mencionado.
Por lo tanto, sin tener en cuenta el cuadrado base único, la fuente y el receptor se seleccionan de los cuadrados de 1er nivel, seleccionando todas las combinaciones posibles de cuadrados fuente y receptor en 1er nivel como se describió anteriormente. En el presente ejemplo, la selección comienza con S1 y R1, luego con S2-R1, S3-R1, S4-R1, y S1-R2, S2-R2, S3-R3 y así sucesivamente hasta S4-R4.
Después de seleccionar, se realiza una evaluación, por la unidad informatizada de procesamiento de datos, si el cuadrado fuente y el cuadrado receptor están distantes, según uno o más criterios predefinidos.
La evaluación de la distancia se realiza según uno o más criterios predefinidos. Considerando el árbol cuaternario generado, es necesario definir un criterio, o más criterios, que permitan entender cuando un cuadrado que contiene fuentes está lo suficientemente distante de un cuadrado que contiene receptores de tal manera que el colapso de fuente y receptor pueda hacerse con una buena aproximación en los resultados.
Los criterios predefinidos comprenden la evaluación de la superposición, en donde los cuadrados no están distantes si se superponen entre sí. Además, los criterios predefinidos comprenden la evaluación de los bordes, en donde los cuadrados no están distantes si tienen al menos una borde en común. Además, los criterios predefinidos comprenden la evaluación de los vértices, en donde los cuadrados no están distantes si tienen al menos un vértice en común. Dependiendo de la precisión deseada, tales criterios pueden tomarse en consideración conjuntamente, es decir, considerando todos los criterios, o por separado, es decir, considerando uno o más criterios. Además, se pueden considerar otros criterios no descritos aquí.
En el presente ejemplo se considerarán conjuntamente los criterios antes mencionados.
Los resultados de la evaluación de la distancia entre la fuente y el receptor activarán el cálculo o subselección posterior. En particular, si el cuadrado fuente y el cuadrado receptor se evalúan como distantes o si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes, pero no tienen cuadrados de nivel inferior anidados respectivamente, se realiza un cálculo posterior, por la unidad informatizada de procesamiento de datos, de las fuerzas que actúan sobre el cuadrado receptor desde el cuadrado fuente. Por el contrario, si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes, se realiza una subselección, por la unidad informatizada de procesamiento de datos, como cuadrado fuente o como cuadrado receptor de uno de los cuadrados de un nivel inferior, en donde se itera de nuevo la subselección para todos los cuadrados del mismo nivel.
La subselección, al igual que la selección, puede realizarse de forma aleatoria o según uno o más criterios de selección. Un criterio de selección puede comprender seleccionar como cuadrado de nivel inferior el que está entre el cuadrado fuente y el cuadrado receptor de nivel superior, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y no están al mismo nivel. Un criterio adicional puede comprender seleccionar como cuadrado de nivel inferior aquel entre el cuadrado fuente y el cuadrado receptor que tiene cuadrados de nivel inferior anidados si el otro no tiene cuadrados de nivel inferior anidados. Además, un criterio puede comprender seleccionar como cuadrado de nivel inferior el que está entre el cuadrado fuente y el cuadrado receptor que contiene un número menor de nodos, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y están en el mismo nivel. Finalmente, un criterio puede comprender seleccionar como cuadrado de nivel inferior el cuadrado receptor, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y contienen el mismo número de nodos. Tales criterios de selección pueden tomarse en consideración conjuntamente, es decir, considerando todos los criterios de selección, o por separado, es decir, considerando uno o más criterios de selección. Además, se pueden considerar criterios adicionales de selección no descritos aquí.
En el presente ejemplo se considerarán conjuntamente los criterios de selección antes mencionados.
A continuación, se realiza un resumen de todas las iteraciones para el ejemplo en la Figura 1.
1.S=1, R=1 -> no distante: subseleccionar el receptor
a. S=1, R=1-1 -> no distante: subseleccionar la fuente
i. S=1-1, R=1-1 -> no distante: subseleccionar el receptor
1. S=1-1, R=1 -1-1 -> vacío: saltar
2. S=1-1, R=1-1-2 -> no distante: subseleccionar la fuente
a. S=1 -1-1, R=1-1-2-> vacío: saltar
b. S=1-1-2, R=1-1-2 -> lo mismo, sin hijo: saltar
c. S=1-1-3, R=1-1-2 -> vacío: saltar
d. S=1-1-4, R=1-1-2->sin hijo: calcular fuerzas
3. S=1-1, R=1-1-3 -> vacío: saltar
4. S=1-1, R=1-1-4 -> no distante: subseleccionar la fuente
a. S=1 -1-1, R=1-1-4 -> vacío: saltar
b. S=1-1-2, R=1-1-4->sin hijo: calcular fuerzas
c. S=1-1-3, R=1-1-4 -> vacío: saltar
d. S=1-1-4, R=1-1-4 -> lo mismo, sin hijo: saltar
ii. S=1-2, R=1-1 -> vacío: saltar
iii. S=1-3, R=1-1 -> vacío: saltar
iv. S=1-4, R=1-1 -> vacío: saltar
b. S=1, R=1-2-> vacío: saltar
c. S=1, R=1-3 -> vacío: saltar
d. S=1, R=1-4-> vacío: saltar
2.S=2, R=1 -> no distante: subseleccionar el receptor
a. S=2, R=1-1 -> distante: calcular fuerzas
b. S=2, R=1-2 -> vacío: saltar
c. S=2, R=1-3 -> vacío: saltar
d. S=2, R=1-4-> vacío: saltar
3.S=3, R=1 -> no distante: subseleccionar el receptor
a. S=3, R=1-1 -> distante: calcular fuerzas
b. S=3, R=1-2 -> vacío: saltar
c. S=3, R=1-3 -> vacío: saltar
d. S=3, R=1-4-> vacío: saltar
4.S=4, R=1 -> vacío: saltar
5.S=1, R=2 -> no distante: subseleccionar la fuente
a. S=1-1, R=2 -> distante: calcular fuerzas
b. S=1-2, R=2 -> vacío: saltar
c. S=1-3, R=2 -> vacío: saltar
d. S=1-4, R=2 -> vacío: saltar
6.S=2, R=2 -> igual, sin hijo: saltar
7.S=3, R=2 -> no distante: subseleccionar la fuente
a. S=3-1, R=2 -> vacío: saltar
b. S=3-2, R=2 -> vacío: saltar
c. S=3-3, R=2 -> vacío: saltar
d. S=3-4, R=2 -> distante: calcular fuerzas
8.S=4, R=2 -> vacío: saltar
9.S=1, R=3 -> no distante: subseleccionar el receptor
a. S=1, R=3-1 -> vacío: saltar
b. S=1, R=3-2-> vacío: saltar
c. S=1, R=3-3 -> vacío: saltar
d. S=1, R=3-4-> distante: calcular fuerzas
10. S=2, R=3 -> no distante; subseleccionar el receptor
a. S=2, R=3-1 -> vacío: saltar
b. S=2, R=3-2 -> vacío: saltar
c. S=2, R=3-3 -> vacío: saltar
d. S=2, R=3-4 -> distante: calcular fuerzas
11. S=3, R=3 -> no distante: subseleccionar el receptor
a. S=3, R=3-1 -> vacío: saltar
b. S=3, R=3-2 -> vacío: saltar
c. S=3, R=3-3 -> vacío: saltar
d. S=3, R=3,4 -> no distante: subseleccionar la fuente
i. S=3-1, R=3,4-> vacío: saltar
ii. S=3-2, R=3,4 -> vacío: saltar
iii. S=3-3, R=3,4 -> vacío: saltar
iv. S=3-4, R=3,4 -> no distante: subseleccionar el receptor
1. S=3-4, R=3,4-1 -> vacío: saltar
2. S=3-4, R=3,4-2 -> vacío: saltar
3. S=3-4, R=3,4-3 -> no distante: subseleccionar la fuente
a. S=3-4-1, R=3,4-3 -> vacío: saltar
b. S=3-4-2, R=3,4-3 -> vacío: saltar
c. S=3-4-3, R=3,4-3 -> lo mismo, sin hijo: saltar
d. S=3-4-4, R=3,4-3 -> sin hijo: calcular fuerzas
4. S=3-4, R=3,4-4 -> no distante: subseleccionar la fuente
a. S=3-4-1, R=3,4-4-> vacío: saltar
b. S=3-4-2, R=3,4-4 -> vacío: saltar
c. S=3-4-3, R=3,4-4 -> sin hijo: calcular fuerzas
d. S=3-4-4, R=3,4-4 -> lo mismo, sin hijo: saltar
12. S=4, R=3 -> vacío: saltar
13. S=1, R=4 -> vacío: saltar
14. S=2, R=4 -> vacío: saltar
15. S=3, R=4 -> vacío: saltar
16. S=4, R=4 -> vacío: saltar
Como se esperaba, el número de evaluación de fuerza es diez, [S=1-1-4, R=1-1-2], [S=1-1-2, R=1-1-4], [S=2, R=1-1], [S=3, R=1-1], [S=1-1, R=2], [S=3-4, R=2], [S=1, R=3-4], [S=2, R=3-4], [S=3-4-4, R=3,4-3], [S=3-4-3, R=3,4-4].
Al final de todas las iteraciones y cálculos, cada cuadrado hijo contiene las fuerzas generadas sobre él. Por lo tanto, la evaluación comprende además distribuir, por la unidad informatizada de procesamiento de datos, las fuerzas que actúan sobre cada uno de los cuadrados receptores a todos los nodos del cuadrado receptor correspondiente definiendo las fuerzas gravitacionales de todos los nodos.
Para extraer las fuerzas en cada nodo es suficiente empezar desde el cuadrado hijo de nivel más bajo que contiene el nodo y proceder hacia arriba añadiendo en cada paso la fuerza al nodo. Así, la distribución comprende para cada uno de los nodos definir las fuerzas gravitacionales como las fuerzas que actúan sobre el cuadrado receptor correspondiente multiplicado por la masa del nodo. En particular, las fuerzas gravitacionales para cada uno de los nodos se definen comenzando desde el cuadrado receptor en el nivel más bajo y subiendo hasta el cuadrado receptor padre en el nivel más alto, en donde las fuerzas gravitacionales del nodo se calculan como la suma de las fuerzas que actúan sobre cada uno de los cuadrados receptores correspondientes desde el nivel más bajo hasta el nivel más alto multiplicadas por la masa del nodo.
Preferiblemente, las fuerzas que actúan sobre cada uno de los cuadrados receptores son los dos componentes de la fuerza generada a lo largo de los ejes x y y en el espacio bidimensional, calculados como:
Fgx = G Ms * (xs -xr) / dA3
Fgy = G Ms * (ys -yr) / dA3
en donde:
- Ms es la masa de la fuente,
- xs, ys son las coordenadas del centro de masa de la fuente,
- xr, yr son las coordenadas del centro de masa del receptor,
- d es la distancia entre el centro de masa de la fuente y el centro de masa del receptor,
- G es una constante gravitacional predefinida.
Después de posicionar los objetos como gráfico en la GUI en base a las fuerzas gravitacionales de los nodos, tal y como se calculó previamente. El procedimiento de posicionamiento consiste sustancialmente en definir una posición inicial para todos los nodos y evaluar cómo evolucionan las posiciones iniciales cuando los nodos están sujetos a algunas fuerzas, como las fuerzas gravitacionales calculadas. Partiendo de la posición inicial, los nodos se moverán y el gráfico alcanzará progresivamente un estado convergente donde los nodos permanecerán sustancialmente en la misma posición.
Las fuerzas gravitacionales (repulsivas) hacen que los nodos estén bien separados entre sí, pero se pueden considerar otras fuerzas, como las fuerzas de enlace, la fuerza central y la fuerza de amortiguación, en donde las fuerzas de enlace colocan los nodos conectados cerca unos de otros, la fuerza central asegura que el gráfico permanezca centrado en la ventana de la GUI y no se mueva y las fuerzas de amortiguación evitan las oscilaciones.
Con respecto a esto, según otra modalidad, el posicionamiento de los objetos en la GUI se basa en las fuerzas gravitacionales de los nodos y en las fuerzas de enlace entre parejas de los nodos. En ese caso, las fuerzas de enlace se pueden calcular para cada una de las parejas como:
Flx = K (xb -xa)
Fly = K (yb-ya)
y
Flx = K (xa -xb)
Fly = K (ya-yb)
respectivamente para un nodo "a" de la pareja y para un nodo "b" de la pareja, en donde:
- K es una constante elástica predefinida;
- xa, xb son las coordenadas respectivas a lo largo del eje x de los nodos "a" y "b";
- ya, yb son las coordenadas respectivas a lo largo del eje y de los nodos "a" y "b".
En una modalidad adicional, el posicionamiento de los objetos en la GUI puede basarse en las fuerzas gravitacionales de los nodos y en las fuerzas centrales que atraen los nodos hacia el origen del gráfico. En ese caso, las fuerzas centrales se calculan para cada uno de los nodos como:
Fcx = C * x
Fcy = C * y
en donde:
- C es una constante predefinida;
- x es la coordenada a lo largo del eje x de un nodo;
- y es la coordenada a lo largo del eje y de un nodo.
Además, en una modalidad adicional, el posicionamiento de los objetos en la GUI puede basarse en las fuerzas gravitacionales de los nodos y en las fuerzas de amortiguación de los nodos. En ese caso, las fuerzas de amortiguación se calculan para cada uno de los nodos como:
Fdx = D * Vx
Fdy = D * Vy
en donde:
- Vx es la velocidad del nodo a lo largo de dicho eje x,
- Vy es la velocidad del nodo a lo largo de dicho eje y,
- D es una constante de amortiguación predefinida.
Finalmente, en una modalidad adicional, el posicionamiento de los objetos en la GUI puede basarse en las fuerzas totales de cada uno de los nodos como suma de las fuerzas gravitacionales, de las fuerzas de enlace, de las fuerzas centrales, de las fuerzas de amortiguación, como se describió anteriormente, calculadas para cada uno de los nodos como:
Ftx = Fgx Flx Fcx Fdx
Fty = Fgy Fly Fcy Fdy
En ese caso, una posición arbitraria para los nodos en el tiempo t0, así como una velocidad inicial igual a cero. Las fuerzas gravitacionales se calculan, como ya se ha descrito en el método según la presente invención, para cada nodo, que se define Fgx y Fgy. Posteriormente se calculan las fuerzas de enlace considerando las posiciones de los dos nodos involucrados en cada enlace, que se define Flx y Fly. Posteriormente, para cada nodo se calcula una fuerza que atrae hacia el origen del gráfico, que se define Fcx y Fcy. Las fuerzas de amortiguación se calculan adoptando un modelo de amortiguación viscoso para el cual las fuerzas de amortiguación son proporcionales a las velocidades y en donde típicamente D tiene un valor menor que 1, que se define Fdx y Fdy. Finalmente, se suman todas las fuerzas que actúan sobre un nodo obteniendo para cada nodo las fuerzas totales Ftx y Fty.
En una modalidad adicional, el posicionamiento de los objetos en la GUI se puede calcular en un intervalo de tiempo predeterminado en cada instante predeterminado, y en donde se determina una nueva posición de todos los nodos en el instante utilizando el algoritmo de velocidad de Verlet en base a las fuerzas totales. Esto permite repetir el cálculo de las fuerzas, una o más como se describió anteriormente, utilizando las nuevas posiciones calculadas.
La Figura 2 ilustra un primer ejemplo, a procesar según el método de la presente invención, que comprende doce nodos numerados del 1 al 12. Estos nodos representan objetos correspondientes en una red.
Este ejemplo difiere del ilustrado en la Figura 1 en que se consideran un gran número de nodos, por lo que solo se describirán con mayor detalle las diferencias con respecto al método según la presente invención, considerando nuevamente que tanto el enfoque ingenuo como el enfoque Barnes-Hut también resultan en una evaluación de fuerzas más compleja.
El método para representar objetos de una red en una GUI según la presente invención permite reducir más la complejidad a sólo setenta y una fuerzas de evaluación.
El método comprende primero asignar todos los objetos de la red como nodos respectivos en un espacio bidimensional. La Figura 2 ilustra tal asignación que se describirá con mayor detalle a continuación.
La asignación comprende definir, por una unidad informatizada de procesamiento de datos, la posición inicial aleatoria de todos los nodos asignando a cada uno de los nodos las respectivas coordenadas a lo largo de los ejes x y y en el espacio bidimensional. Posteriormente, encerrar, por la unidad informatizada de procesamiento de datos, todos los nodos en un cuadrado base único, tal y como se representa en los bordes de la Figura 2.
El cuadrado base único se aproxima dividiéndolo en una pluralidad de cuadrados de 1er nivel, nuevamente por una unidad informatizada de procesamiento de datos. Tal pluralidad de cuadrados de 1er nivel consta de cuatro cuadrados que tienen las mismas dimensiones. En particular, los cuadrados de 1er nivel están anidados en el cuadrado base para que representen hijos del mismo.
A continuación, la asignación comprende la subdivisión, por la unidad informatizada de procesamiento de datos, de cada uno de los cuadrados de 1er nivel en una pluralidad de cuadrados de 2do nivel, en donde la subdivisión se realiza para los cuadrados de 1er nivel provistos de dos o más de los nodos. Tal pluralidad de cuadrados de 2do nivel consta de cuatro cuadrados que tienen las mismas dimensiones.
Para simplificar la presentación e identificación se adoptará la misma notación del ejemplo anterior. Cada cuadrado hijo se define por un número en base a la posición con respecto al cuadrado padre, en donde la notación 1 define el cuadrado en la posición superior izquierda, la notación 2 define el cuadrado en la posición superior derecha, la notación 3 define el cuadrado en la posición inferior derecha y la notación 4 define el cuadrado en la posición inferior izquierda. Además, la notación de los cuadrados padres se mantendrá en cada nivel. Por lo tanto, los cuadrados de 1er nivel se identifican con la notación 1, 2, 3 y 4 comenzando con los cuadrados de 1er nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior.
Teniendo en cuenta la notación antes mencionada, sólo el cuadrado 2 ya no se subdividirá, ya que contiene un solo nodo, es decir, el nodo numerado como 5, mientras que todos los demás se subdividirán, como se describe, en cuatro más cuadrados de 2do nivel que tienen las mismas dimensiones. En particular, los cuadrados de 2do nivel están anidados en los respectivos cuadrados de 1er nivel para que representen hijos del mismo. Por lo tanto, los cuadrados de 2do nivel se identifican con la notación 1-1, 1-2, 1-3 y 1-4, para el cuadrado de 1er nivel con la notación 1, con la notación 3-1, 3-2, 3-3, 3-4, para el cuadrado de 1er nivel con la notación 3, y con la notación 4-1, 4-2, 4-3, 4-4, para el cuadrado de 1er nivel con la notación 4 comenzando nuevamente con los cuadrados de 2do nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior. Los nodos se encierran en el cuadrado de 2do nivel con la notación 1-1, es decir, nodo numerado como 9, en el cuadrado de 2do nivel con la notación 1-2, es decir, nodos numerados como 7 y 8, en el cuadrado de 2do nivel con la notación 1-3, es decir, nodo numerado como 6, en el cuadrado de 2do nivel con la notación 3-1, es decir, nodo numerado como 4, en el cuadrado de 2do nivel con la notación 3-4, es decir, nodos numerados como 2 y 3, en el cuadrado de 2do nivel con la notación 4-2, es decir nodo numerado como 10, y en el cuadrado de 2do nivel con la notación 4-4, es decir, nodos numerados como 1, 11 y 12.
Al iterar la subdivisión, cada uno de los cuadrados de (n)ésimo nivel se subdividen en una pluralidad de cuadrados de (n+1)ésimo nivel, y la iteración se realiza hasta que los cuadrados de (n)ésimo nivel estén provistos de dos o más nodos.
Preferentemente, también la pluralidad de cuadrados de (n+1)ésimo nivel constan de cuatro cuadrados de nivel que tienen las mismas dimensiones. En particular, los cuadrados de (n+1)ésimo nivel están anidados en los respectivos cuadrados de (n)ésimo nivel de manera que representen hijos del mismo, consistiendo estos últimos a su vez en cuatro cuadrados de nivel que tienen las mismas dimensiones anidados en los respectivos cuadrados de (n-1)ésimo nivel para que representen hijos del mismo, y así sucesivamente.
En la modalidad ilustrada en la Figura 2, la iteración implica únicamente la subdivisión adicional de los cuadrados de 2do nivel con la notación 1-2, el cuadrado de 2do nivel con la notación 3-4 y el cuadrado de 2do nivel con la notación 4 4, estando los únicos cuadrados de 2do nivel provistos de dos o más nodos. Por lo tanto, el cuadrado 1-2, el cuadrado 3-4 y el cuadrado 4-4 se subdividirán, como se describe, cada uno en cuatro más cuadrados de 3er nivel que tienen las mismas dimensiones. En particular, los cuadrados de 3er nivel están anidados en los respectivos cuadrados de 2do nivel para que representen hijos del mismo. Por lo tanto, los cuadrados de 3er nivel se identifican con la notación 1-2 1, 1-2-2, 1-2-3 y 1-2-4, para el cuadrado de 2do nivel con la notación 1-2, con la notación 3-4-1, 3-4-2, 3-4-3 y 3-4-4, para el cuadrado de 2do nivel con la notación 2-4 y con la notación 4-4-1, 4-4-2, 4-4-3, 4-4-4, para el cuadrado de 2do nivel con la notación 4-4, comenzando nuevamente con los cuadrados de 3er nivel en la izquierda superior que van en el sentido de las manecillas del reloj hacia la izquierda inferior. Los nodos se encierran en el cuadrado de 3er nivel con la notación 1-2-2, es decir, nodo numerado como 7, en el cuadrado de 3er nivel con la notación 1-2-4, es decir nodo numerado como 8, en el cuadrado de 3er nivel con la notación 3-4-2, es decir, nodo numerado como 3, en el cuadrado de 3er nivel con la notación 3-4-4, es decir nodo numerado como 2, en el cuadrado de 3er nivel con la notación 4-4-1, es decir nodo numerado como 1, en el cuadrado de 3er nivel con la notación 4-4-3, es decir nodo numerado como 12 y en el cuadrado de 3er nivel con la notación 4-4-4, es decir, nodo numerado como 11.
De esta manera, la asignación define un árbol cuaternario, como se ilustra en la Figura 2, de todos los nodos del 1 al 12 que representan los objetos de la red. En particular, el árbol cuaternario tal como se define no es un árbol cuaternario completo, ya que no todos los cuadrados padres tienen exactamente cuatro cuadrados hijos anidados, la anidación que depende de los nodos contenidos, como se explicó.
Después de la asignación, el método comprende evaluar las fuerzas gravitacionales de los nodos.
La valoración comprende seleccionar, por la unidad informatizada de tratamiento de datos, como cuadrado fuente uno de dichos cuadrados empezando por el de nivel más alto. Posteriormente, la valoración comprende seleccionar, por la unidad informática de procesamiento de datos, como cuadrado receptor uno de dichos cuadrados empezando por el de nivel más alto. En particular, la valoración se itera para todos los cuadrados del mismo nivel.
Para simplificar la descripción a continuación, los cuadrados fuente se indicarán con S seguido de la notación que los identifica en el árbol cuaternario antes mencionado, mientras que los cuadrados receptores se indicarán con R seguido de la notación que los identifica en el árbol cuaternario antes mencionado.
Por lo tanto, sin tener en cuenta el cuadrado base único, la fuente y el receptor se seleccionan de entre los cuadrados de 1er nivel, considerando todas las combinaciones posibles de cuadrados fuente y receptor en el 1 ernivel como se describió anteriormente. En el presente ejemplo, la selección comienza con S1 y R1, luego con S2-R1, S3-R1, S4-R1, y S1-R2, S2-R2, S3-R3 y así sucesivamente hasta S4-R4.
Después de seleccionar, se realiza una evaluación, por la unidad informatizada de procesamiento de datos, si el cuadrado fuente y el cuadrado receptor están distantes, según uno o más criterios predefinidos.
La evaluación de la distancia se realiza según uno o más criterios predefinidos. Considerando el árbol cuaternario generado, es necesario definir un criterio, o más criterios, que permitan entender cuando un cuadrado que contiene fuentes está lo suficientemente distante de un cuadrado que contiene receptores de tal manera que el colapso de fuente y receptor pueda hacerse con una buena aproximación en los resultados.
Los criterios predefinidos comprenden la evaluación de la superposición, en donde los cuadrados no están distantes si se superponen entre sí. Además, los criterios predefinidos comprenden la evaluación de los bordes, en donde los cuadrados no están distantes si tienen al menos una borde en común. Además, los criterios predefinidos comprenden la evaluación de los vértices, en donde los cuadrados no están distantes si tienen al menos un vértice en común. Dependiendo de la precisión deseada, tales criterios pueden tomarse en consideración conjuntamente, es decir, considerando todos los criterios, o por separado, es decir, considerando uno o más criterios. Además, se pueden considerar otros criterios no descritos aquí.
En el presente ejemplo se considerarán conjuntamente los criterios antes mencionados.
Los resultados de la evaluación de la distancia entre la fuente y el receptor activarán el cálculo o subselección posterior. En particular, si el cuadrado fuente y el cuadrado receptor se evalúan como distantes o si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes, pero no tienen cuadrados de nivel inferior anidados respectivamente, se realiza un cálculo posterior, por la unidad informatizada de procesamiento de datos, de las fuerzas que actúan sobre el cuadrado receptor desde el cuadrado fuente. Por el contrario, si el cuadrado fuente y el cuadrado receptor se evalúan como no distantes, se realiza una subselección, por la unidad informatizada de procesamiento de datos, como cuadrado fuente o como cuadrado receptor de uno de los cuadrados de un nivel inferior, en donde se itera de nuevo la subselección para todos los cuadrados del mismo nivel.
La subselección, al igual que la selección, puede realizarse de forma aleatoria o según uno o más criterios de selección. Un criterio de selección puede comprender seleccionar como cuadrado de nivel inferior el que está entre el cuadrado fuente y el cuadrado receptor de nivel superior, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y no están al mismo nivel. Un criterio adicional puede comprender seleccionar como cuadrado de nivel inferior aquel entre el cuadrado fuente y el cuadrado receptor que tiene cuadrados de nivel inferior anidados si el otro no tiene cuadrados de nivel inferior anidados. Además, un criterio puede comprender seleccionar como cuadrado de nivel inferior el que está entre el cuadrado fuente y el cuadrado receptor que contiene un número menor de nodos, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y están en el mismo nivel. Finalmente, un criterio puede comprender seleccionar como cuadrado de nivel inferior el cuadrado receptor, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y contienen el mismo número de nodos. Tales criterios de selección pueden tomarse en consideración conjuntamente, es decir, considerando todos los criterios de selección, o por separado, es decir, considerando uno o más criterios de selección. Además, se pueden considerar criterios adicionales de selección no descritos aquí.
En el presente ejemplo se considerarán conjuntamente los criterios de selección antes mencionados.
A continuación, se realiza un resumen de todas las iteraciones para el ejemplo en la Figura 2.
1.S=1, R=1-> no distante: subseleccionar el receptor
a. S=1, R=1-1 -> no distante: subseleccionar la fuente
i. S=1-1, R=1-1 -> lo mismo sin hijo: saltar
ii. S=1-2, R=1-1 -> no distante: subseleccionar la fuente
1. S=1-2-1, R=1-1 -> vacío: saltar
2. S=1-2-2, R=1-1 -> distante: calcular fuerzas
3. S=1-2-3, R=1-1 -> vacío: saltar
4. S=1-2-4, R=1-1 -> sin hijo: calcular fuerzas
iii. S=1-3, R=1-1 -> sin hijo: calcular fuerzas
iv. S = 1 -4, R=1-1 -> vacío: saltar
b. S=1, R=1-2 -> no distante: subseleccionar la fuente
i. S=1-1, R=1-2 -> no distante: subseleccionar el receptor
1. S=1-1, R=1-2-1 -> vacío: saltar
2. S=1-1, R=1-2-2 -> distante: calcular fuerzas
3. S=1-1, R= 1-2-3-> vacío: saltar
4. S=1-1, R=1-2-4 -> sin hijo: calcular fuerzas
ii. S=1-2, R=1-2 -> no distante: subseleccionar el receptor
1. S=1-2, R=1-2-1 -> vacío: saltar
2. S=1-2, R=1-2-2 -> no distante; subseleccionar la fuente
a. S=1-2-1, R=1-2-2-> vacío: saltar
b. S=1-2-2, R=1-2-2 -> lo mismo, sin hijo: saltar
c. S=1-2-3, R=1-2-2 -> vacío: saltar
d. S=1-2-4, R=1-2-2->sin hijo: calcular fuerzas 3. S=1-2, R=1-2-3-> vacío: saltar 4. S=1-2, R=1-2-4 -> no distante: subseleccionar la fuente
a. S=1-2-1, R=1-2-4-> vacío: saltar
b. S=1-2-2, R=1-2-4 -> sin hijo: calcular fuerzas
c. S=1-2-3, R=1-2-4 -> vacío: saltar
d. S=1-2-4, R=1-2-4 -> lo mismo, sin hijo: saltar
iii. S=1-3, R=1-2 -> no distante: subseleccionar el receptor
1.S=1-3, R=1-2-1 -> vacío: saltar
2.S=1-3, R=1-2-2 -> distante: calcular fuerzas
3. S=1-3, R= 1-2-3-> vacío: saltar
4.S=1-3, R=1-2-4 -> sin hijo: calcular fuerzas
iv. S=1-4, R=1-2 -> vacío: saltar
c. S=1, R=1-3 -> no distante: subseleccionar la fuente
i. S=1-1, R=1-3 -> sin hijo: calcular fuerza
ii. S=1-2, R=1-3 -> no distante: subseleccionar la fuente
1.S=1-2-1, R=1-3 -> vacío: saltar
2.S=1-2-2, R=1-3 -> distante: calcular fuerzas
3. S=1-2-3, R=1-3 -> vacío: saltar
4.S=1-2-4, R=1-3 -> sin hijo: calcular fuerzas
iii. S=1-3, R=1-3 -> lo mismo, sin hijo: saltar
iv. S=1-4, R=1-3 -> vacío: saltar
d. S=1, R=1-4-> vacío: saltar
2. S=2, R=1-> no distante: subseleccionar el receptor
a. S=2, R = 1-1-> distante: calcular fuerzas
b. S=2, R=1-2-> no distante: subseleccionar el receptor
i. S=2, R=1-2-1-> vacío: saltar
ii. S=2, R=1-2-2-> sin hijo: calcular fuerzas
iii. S=2, R=1-2-3-> vacío: saltar
iv. S=2, R=1-2-4-> distante: calcular fuerzas
c. S=2, R=1-3-> sin hijo: calcular fuerzas
d. S=2, R=1-4-> vacío: saltar
3. S=3, R=1-> no distante: subseleccionar la fuente (tiene menos nodos)
a. S=3-1, R=1-> no distante: subseleccionar el receptor
i. S=3-1, R=1-1-> distante: calcular fuerzas
ii. S=3-1, R=1-2-> distante: calcular fuerzas
iii. S=3-1, R=1-3-> sin hijo: calcular fuerzas
iv. S=3-1, R=1-4-> vacío: saltar
b. S=3-2, R=1-> vacío: saltar
c. S=3-3, R=1-> vacío: saltar
d. S=3-4, R=1-> distante: calcular fuerzas
4. S=4, R=1-> no distante: subseleccionar el receptor (mismo nivel, mismos nodos) a. S=4, R=1-1-> distante: calcular fuerzas
b. S=4, R=1-2-> distante: calcular fuerzas
c. S=4, R=1-3-> no distante: subseleccionar la fuente
i. S=4-1, R=1-3-> vacío: saltar
ii. S=4-2, R=1-3-> sin hijo: calcular fuerzas
iii. S=4-3, R=1-3-> vacío: saltar
iv. S=4-4, R=1-3-> distante: calcular fuerzas
d. S=4, R=1-4-> vacío: saltar
5. S=1, R=2 -> no distante: subseleccionar la fuente
a. S=1-1, R=2 -> distante: calcular fuerzas
b. S=1-2, R=2 -> no distante: subseleccionar la fuente
i. S=1-2-1, R=2 -> vacío: saltar
ii. S=1-2-2, R=2-> sin hijo: calcular fuerzas
iii. S=1-2-3, R=2 -> vacío: saltar
iv. S=1-2-4, R=2 -> distante: calcular fuerzas
c. S=1-3, R=2 -> sin hijo: calcular fuerzas
d. S=1-4, R=2 -> vacío: saltar
6. S=2, R=2 -> igual, sin hijo: saltar
7. S=3, R=2 -> no distante: subseleccionar la fuente
a. S=3-1, R=2 -> sin hijo: calcular fuerzas
b. S=3-2, R=2 -> vacío: saltar
c. S=3-3, R=2 -> vacío: saltar
d. S=3-4, R=2 -> distante: calcular fuerzas
8. S=4, R=2 -> no distante: subseleccionar la fuente
a. S=4-1, R=2 -> vacío: saltar
b. S=4-2, R=2 -> sin hijo: calcular fuerzas
c. S=4-3, R=2 -> vacío: saltar
d. S=4-4, R=2 -> distante: calcular fuerzas
9. S=1, R=3 -> no distante: subseleccionar el receptor
a. S=1, R=3-1 -> no distante: subseleccionar la fuente
i. S=1-1, R=3-1 -> distante: calcular fuerzas
ii. S=1-2, R=3-1 -> distante: calcular fuerzas
iii. S=1-3, R=3-1 -> sin hijo: calcular fuerzas
iv. S=1-4, R=3-1 -> vacío: saltar
b. S=1, R=3-2-> vacío: saltar
c. S=1, R=3-3 -> vacío: saltar
d. S=1, R=3-4-> distante: calcular fuerzas
10. S=2, R=3 -> no distante: bajar en receptor
a. S=2, R=3-1 -> sin hijo: calcular fuerzas
b. S=2, R=3-2 -> vacío: saltar
c. S=2, R=3-3 -> vacío: saltar
d. S=2, R=3-4-> distante: calcular fuerzas
11. S=3, R=3 -> no distante: subseleccionar el receptor
a. S=3, R=3-1 -> no distante: subseleccionar la fuente
i. S=3-1, R=3-1 -> lo mismo, sin hijo: saltar
ii. S=3-2, R=3-1 -> vacío: saltar
iii. S=3-3, R=3-1 -> vacío: saltar
iv. S=3-4, R=3-1 -> no distante: subseleccionar la fuente
1. S=3-4-1, R=3-1 -> vacío: saltar
2.S=3-4-2, R=3-1 -> sin hijo: calcular fuerzas
3.S=3-4-3, R=3-1 -> vacío: saltar
4. S=3-4-4, R=3-1 -> sin hijo: calcular fuerzas
b. S=3, R=3-2 -> vacío: saltar
c. S=3, R=3-3 -> vacío: saltar
d. S=3, R=3-4 -> no distante: subseleccionar la fuente
i. S=3-1, R=3-4 -> no distante: subseleccionar el receptor
1.S=3-1, R=3-4-1 -> vacío: saltar
2.S=3-1, R=3-4-2 -> sin hijo: calcular fuerzas
3. S=3-1, R=3-4-3 -> vacío: saltar
4.S=3-1, R=3-4-4 -> distante: calcular fuerzas
ii. S=3-2, R=3-4 -> vacío: saltar
iii. S=3-3, R=3-4 -> vacío: saltar
iv. S=3-4, R=3-4 -> no distante: subseleccionar la fuente
1. S=3-4-1, R=3-4 -> vacío: saltar
2. S=3-4-2, R=3-4-> no distante: subseleccionar el receptor
a. S=3-4-2, R=3-4-1 -> vacío: saltar
b. S=3-4-2, R=3-4-2 -> lo mismo, sin hijo: saltar
c. S=3-4-2, R=3-4-3 -> vacío: saltar
d. S=3-4-2, R=3-4-4 -> sin hijo: calcular fuerzas
3. S=3-4-3, R=3-4 -> vacío: saltar
4. S=3-4-4, R=3-4 -> no distante: subseleccionar el receptor
a. S=3-4-4, R=3-4-1 -> vacío: saltar
b. S=3-4-4, R=3-4-2 -> sin hijo: calcular fuerzas
c. S=3-4-4, R=3-4-3 -> vacío: saltar
d. S=3-4-4, R=3-4-4 -> lo mismo, sin hijo: saltar
12. S=4, R=3 -> no distante: subseleccionar el receptor
a. S=4, R=3-1 -> no distante: subseleccionar la fuente
i. S=4-1, R=3-1 -> vacío: saltar
ii. S=4-2, R=3-1 -> sin hijo: calcular fuerzas
iii. S=4-3, R=3-1 -> vacío: saltar
iv. S=4-4, R=3-1 -> distante: calcular fuerzas
b. S=4, R=3-2 -> vacío: saltar
c. S=4, R=3-3 -> vacío: saltar
d. S=4, R=3-4 -> no distante: subseleccionar la fuente
i. S=4-1, R=3-4 -> vacío: saltar
ii. S=4-2, R=3-4 -> no distante: subseleccionar el receptor
1.S=4-2, R=3-4-1 -> vacío: saltar
2. S=4-2, R=3-4-2 -> distante: calcular fuerzas
3. S=4-2, R=3-4-3 -> vacío: saltar
4. S=4-2, R=3-4-4 -> distante: calcular fuerzas
iii. S=4-3, R=3-4 -> vacío: saltar
iv. S=4-4, R=3-4 -> distante: calcular fuerzas
13. S=1, R=4 -> no distante: subseleccionar el receptor
a. S=1, R=4-1 -> vacío: saltar
b. S=1, R=4-2 -> no distante: subseleccionar la fuente
i. S=1-1, R=4-2 -> distante: calcular fuerzas
ii. S=1-2, R=4-2 -> distante: calcular fuerzas
iii. S=1-3, R=4-2 -> sin hijo: calcular fuerzas
iv. S=1-4, R=4-2 -> vacío: saltar
c. S=1, R=4-3 -> vacío: saltar
d. S=1, R=4-4-> distante: calcular fuerzas
14. S=2, R=4 -> no distante: subseleccionar el receptor
a. S=2, R=4-1 -> vacío: saltar
b. S=2, R=4-2 -> sin hijo: calcular fuerzas
c. S=2, R=4-3 -> vacío: saltar
d. S=2, R=4-4 -> distante: calcular fuerzas
15. S=3, R=4 -> no distante: subseleccionar la fuente
a. S=3, R=4-1 -> vacío: saltar
b. S=3, R=4-2 -> no distante: subseleccionar la fuente
i. S=3-1, R=4-2 -> sin hijo: calcular fuerzas
ii. S=3-2, R=4-2 -> vacío: saltar
iii. S=3-3, R=4-2 -> vacío: saltar
iv. S=3-4, R=4-2 -> no distante: subseleccionar la fuente
1. S=3-4-1, R=4-2 -> vacío: saltar
2. S=3-4-2, R=4-2 -> distante: calcular fuerzas
3. S=3-4-3, R=4-2 -> vacío: saltar
4. S=3-4-4, R=4-2 -> distante: calcular fuerzas
c. S=3, R=4-3 -> vacío: saltar
d. S=3, R=4-4 -> distante: calcular fuerzas
16. S=4, R=4 -> no distante: subseleccionar el receptor
a. S=4, R=4-1 -> vacío: saltar
b. S=4, R=4-2 -> no distante: subseleccionar la fuente
i. S=4-1, R=4-2 -> vacío: saltar
ii. S=4-2, R=4-2 -> lo mismo, sin hijo: saltar
iii. S=4-3, R=4-2 -> vacío: saltar
iv. S=4-4, R=4-2 -> no distante: subseleccionar la fuente
1. S=4-4-1, R=4-2 -> distante: calcular fuerzas
2. S=4-4-2, R=4-2 -> vacío: saltar
3. S=4-4-3, R=4-2 -> distante: calcular fuerzas
4. S=4-4-4, R=4-2 -> distante: calcular fuerzas
c. S=4, R=4-3 -> vacío: saltar
d. S=4, R=4-4 -> no distante: subseleccionar la fuente
i. S=4-1, R=4-4 -> vacío: saltar
ii. S=4-2, R=4-4 -> no distante: subseleccionar el receptor
1. S=4-2, R=4-4-1 -> distante: calcular fuerzas
2. S=4-2, R=4-4-2 -> vacío: saltar
3. S=4-2, R=4-4-3 -> distante: calcular fuerzas
4. S=4-2, R=4-4-4 -> distante: calcular fuerzas
iii. S=4-3, R=4-4 -> vacío: saltar
iv. S=4-4, R=4-4 -> no distante: subseleccionar el receptor
1. S=4-4, R=4-4-1 -> no distante; subseleccionar la fuente
a. S=4-4-1, R=4-4-1 -> lo mismo, sin hijo: saltar
b. S=4-4-2, R=4-4-1 -> vacío: saltar
c. S=4-4-3, R=4-4-1 -> sin hijo: calcular fuerzas
d. S=4-4-4, R=4-4-1 -> sin hijo: calcular fuerzas
2. S=4-4, R=4-4-2 -> vacío: saltar
3. S=4-4, R=4-4-3 -> no distante: subseleccionar la fuente
a. S=4-4-1, R=4-4-3 -> sin hijo: calcular fuerzas
b. S=4-4-2, R=4-4-3 -> vacío: saltar
c. S=4-4-3, R=4-4-3 -> lo mismo, sin hijo: saltar
d. S=4-4-4, R=4-4-3 -> sin hijo: calcular fuerzas
4. S=4-4, R=4-4-4 -> no distante: subseleccionar la fuente
a. S=4-4-1, R=4-4-4 -> sin hijo: calcular fuerzas
b. S=4-4-2, R=4-4-4 -> vacío: saltar
c. S=4-4-3, R=4-4-4 -> sin hijo: calcular fuerzas
d. S=4-4-4, R=4-4-4 -> lo mismo, sin hijo: saltar
Como era de esperar, el número de evaluación de la fuerza es de setenta y uno, [S=1-2-2, R=1-1], [S=1-2-4, R=1-1], [S=1-3, R=1-1], [S=1-1, R=1-2-2], [S=1-1, R=1-2-4], [S=1-2-4, R=1-2-2], [S=1-2-2, R=1-2-4], [S=1-3, R=1-2-2], [S=1-3, R=1-2-4], [S=1-1, R=1-3], [S=1-2-2, R=1-3], [S=1-2-4, R=1-3], [S=2, R=1-1], [S=2, R=1-2-2], [S=2, R=1-2-4], [S=2, R=1-3], [S=3-1, R=1-1], [S=3-1, R=1-2], [S=3-1, R=1-3], [S=3-4, R=1], [S=4, R=1-1], [S=4, R=1-2], [S=4-2, R=1-3], [S=4-4, R=1-3], [S=1-1, R=2], [S=1-2-2, R=2], [S=1-2-4, R=2], [S=1-3, R=2], [S=3-1, R=2], [S=3-4, R=2], [S=4-2, R=2], [S=4-4, R=2], [S=1 -1, R=3-1], [S=1-2, R=3-1], [S=1-3, R=3-1], [S=1, R=3-4], [S=2, R=3-1], [S=2, R=3-4], [S=3-4-2, R=3-1], [S=3-4-4, R=3-1, [S=3-1, R=3-4-2], [S=3-1, R=3-4-4], [S=3-4-2, R=3-4-4 ], [S=3-4-4, R=3-4-2], [S=4-2, R=3-1], [S=4-4, R=3-1], [S=4-2, R=3-4-2], [S=4-2, R=3-4-4], [S=4-4, R=3-4], [S=1-1, R=4-2], [S=1-2, R=4-2], [S=1-3, R=4-2], [S=1, R=4-4], [S=2, R=4-2], [S=2, R=4-4], [S=3-1, R=4-2], [S=3-4-2, R=4-2], [S=3-4-4, R=4-2], [S=3, R=4-4], [S=4-4-1, R=4-2], [S=4-4-3, R=4-2], [S=4-4-4, R=4-2], [S=4-2, R=4-4-1], [S=4-2, R=4-4-3], [S=4-2, R=4-4-4], [S=4-4-3, R=4-4-1], [S=4-4-4, R=4-4-1], [S=4-4-1, R=4-4-3], [S=4-4-4, R=4-4-3], [S=4-4-1, R=4-4-4], [S=4-4-3, R=4-4-4].
Al final de todas las iteraciones y cálculos, cada cuadrado hijo contiene las fuerzas generadas sobre él. Por lo tanto, la evaluación comprende además distribuir, por la unidad informatizada de procesamiento de datos, las fuerzas que actúan sobre cada uno de los cuadrados receptores a todos los nodos del cuadrado receptor correspondiente definiendo las fuerzas gravitacionales de todos los nodos.
Para extraer las fuerzas en cada nodo es suficiente empezar desde el cuadrado hijo de nivel más bajo que contiene el nodo y proceder hacia arriba añadiendo en cada paso la fuerza al nodo. Así, la distribución comprende para cada uno de los nodos definir las fuerzas gravitacionales como las fuerzas que actúan sobre el cuadrado receptor correspondiente multiplicado por la masa del nodo. En particular, las fuerzas gravitacionales para cada uno de los nodos se definen comenzando desde el cuadrado receptor en el nivel más bajo y subiendo hasta el cuadrado receptor padre en el nivel más alto, en donde las fuerzas gravitacionales del nodo se calculan como la suma de las fuerzas que actúan sobre cada uno de los cuadrados receptores correspondientes desde el nivel más bajo hasta el nivel más alto multiplicadas por la masa del nodo.
Preferiblemente, las fuerzas que actúan sobre cada uno de los cuadrados receptores son los dos componentes de la fuerza generada a lo largo de los ejes x y y en el espacio bidimensional, calculados como:
en donde:
- Ms es la masa de la fuente,
- xs, ys son las coordenadas del centro de masa de la fuente,
- xr, yr son las coordenadas del centro de masa del receptor,
- d es la distancia entre el centro de masa de la fuente y el centro de masa del receptor,
- G es una constante gravitacional predefinida.
Después de posicionar los objetos como gráfico en la GUI en base a las fuerzas gravitacionales de los nodos, tal y como se calculó previamente. El procedimiento de posicionamiento consiste sustancialmente en definir una posición inicial para todos los nodos y evaluar cómo evolucionan las posiciones iniciales cuando los nodos están sujetos a algunas fuerzas, como las fuerzas gravitacionales calculadas. Partiendo de la posición inicial, los nodos se moverán y el gráfico alcanzará progresivamente un estado convergente donde los nodos permanecerán sustancialmente en la misma posición.
Las fuerzas gravitacionales (repulsivas) hacen que los nodos estén bien separados entre sí, pero se pueden considerar otras fuerzas, como las fuerzas de enlace, la fuerza central y la fuerza de amortiguación, en donde las fuerzas de enlace colocan los nodos conectados cerca unos de otros, la fuerza central asegura que el gráfico permanezca centrado en la ventana de la GUI y no se mueva y las fuerzas de amortiguación evitan las oscilaciones. Estas fuerzas pueden calcularse de acuerdo con otras modalidades, como se describió en el ejemplo anterior de la Figura 1.
La presente invención describe, por tanto, un método capaz de representar una red global en cada iteración utilizando una pequeña parte de los recursos computacionales.
En particular, el método según la presente invención asegura que cada iteración sea lo más rápida posible de tal manera que se tenga un gráfico responsivo en la GUI.

Claims (18)

  1. REIVINDICACIONES
    Un método para representar objetos de una red en una interfaz gráfica de usuario, GUI, que comprende:
    - asignar todos dichos objetos de dicha red como nodos respectivos en un espacio bidimensional;
    - evaluar las fuerzas gravitacionales de dichos nodos; y
    - posicionar dichos objetos como un gráfico en dicha GUI en base a dichas fuerzas gravitacionales de dichos nodos;
    en donde dicha asignación comprende:
    - definir, por una unidad informatizada de procesamiento de datos, una posición inicial aleatoria de todos dichos nodos asignando a cada uno de dichos nodos las respectivas coordenadas a lo largo de los ejes x y y en dicho espacio bidimensional;
    - encerrar, por dicha unidad informatizada de procesamiento de datos, todos dichos nodos en un cuadrado base único en dicho espacio bidimensional;
    - dividir, por dicha unidad informatizada de procesamiento de datos, dicho cuadrado base único en una pluralidad de cuadrados de 1er nivel en dicho espacio bidimensional, en donde dicha pluralidad de cuadrados de 1er nivel consiste en cuatro cuadrados de nivel que tienen las mismas dimensiones en dicho espacio bidimensional;
    - subdividir, por dicha unidad informatizada de procesamiento de datos, cada uno de dichos cuadrados de 1er nivel en una pluralidad de cuadrados de 2do nivel en dicho espacio bidimensional, en donde dicha subdivisión se realiza para dichos cuadrados de 1er nivel provistos de dos o más de dichos nodos y en donde cada uno de dicha pluralidad de cuadrados de 2do nivel constan de cuatro cuadrados de nivel que tienen las mismas dimensiones;
    - iterar, por dicha unidad informatizada de procesamiento de datos, dicha subdivisión de cada uno de dichos cuadrados de (n)ésimo nivel en una pluralidad de cuadrados de (n+1)ésimo nivel en dicho espacio bidimensional, en donde dicha subdivisión se realiza para dicho cuadrado de (n)ésimo nivel provistos de dos o más de dichos nodos y en donde cada uno de dicha pluralidad de cuadrados de (n+1)ésimo nivel se componen de cuatro cuadrados de nivel que tienen las mismas dimensiones;
    en donde dicha evaluación comprende:
    - seleccionar, por dicha unidad informatizada de procesamiento de datos, como cuadrado fuente de dichas fuerzas gravitacionales uno de dichos cuadrados a partir del nivel más alto correspondiente a dicho 1er- nivel;
    - seleccionar, por dicha unidad informatizada de procesamiento de datos, como cuadrado receptor de dichas fuerzas gravitacionales uno de dichos cuadrados a partir de dicho nivel más alto;
    - evaluar, por dicha unidad informatizada de procesamiento de datos, si dicho cuadrado fuente y dicho cuadrado receptor están distantes entre sí, según uno o más criterios predefinidos;
    - calcular, por dicha unidad informatizada de procesamiento de datos, las fuerzas que actúan sobre dicho cuadrado receptor desde dicho cuadrado fuente, si dicho cuadrado fuente y dicho cuadrado receptor se evalúan como distantes o si dicho cuadrado fuente y dicho cuadrado receptor se evalúan como no distantes y no tienen respectivamente cuadrados de nivel inferior anidados;
    - subseleccionar, por dicha unidad informatizada de procesamiento de datos, como cuadrado fuente o como cuadrado receptor uno de dichos cuadrados de un nivel inferior si dicho cuadrado fuente y dicho cuadrado receptor se evalúan como no distantes, en donde dicha subselección se itera para todas las combinaciones de dichos cuadrados al mismo nivel como fuente y como receptor para todos dichos niveles;
    en donde dichas fuerzas que actúan sobre cada uno de dichos cuadrados receptores son los dos componentes de la fuerza generada a lo largo de los ejes x y y en dicho espacio bidimensional, calculadas como:
    Fgx = G Ms * (xs -xr) / dA3
    Fgy = G Ms * (ys -yr) / dA3
    en donde:
    - Ms es la masa de la fuente,
    - xs, ys son las coordenadas del centro de masa de la fuente,
    - xr, yr son las coordenadas del centro de masa del receptor,
    - d es la distancia entre dicho centro de masa de la fuente y dicho centro de masa del receptor, - G es una constante gravitacional predefinida,
    en donde dicha evaluación se itera para todas las combinaciones de dichos cuadrados en el 1ernivel como fuente y como receptor; y
    en donde dicha evaluación comprende además distribuir, por dicha unidad informatizada de procesamiento de datos, dichas fuerzas que actúan sobre cada uno de dichos cuadrados receptores a todos dichos nodos en dicho cuadrado receptor correspondiente que define dichas fuerzas gravitacionales de todos dichos nodos.
  2. 2. El método para representar objetos de una red en una GUI según la reivindicación 1, en donde dichos criterios predefinidos comprenden la evaluación de la superposición, en donde dichos cuadrados se consideran no distantes si se superponen entre sí.
  3. 3. El método para representar objetos de una red en una GUI según la reivindicación 1 o 2, en donde dichos criterios predefinidos comprenden la evaluación de los bordes, en donde dichos cuadrados se consideran no distantes si tienen al menos un borde en común.
  4. 4. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-3, en donde dichos criterios predefinidos comprenden la evaluación de los vértices, en donde dichos cuadrados se consideran no distantes si tienen al menos un vértice en común.
  5. 5. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-4, en donde dicha distribución comprende para cada uno de dichos nodos definir dichas fuerzas gravitacionales como las fuerzas que actúan sobre dicho cuadrado receptor correspondiente multiplicado por la masa de dicho nodo.
  6. 6. El método para representar objetos de una red en una GUI según la reivindicación 5, en donde dichas fuerzas gravitacionales para cada uno de dichos nodos se definen comenzando desde dicho cuadrado receptor en el nivel más bajo y subiendo hasta el cuadrado receptor padre en el nivel más alto,
    en donde dichas fuerzas gravitacionales de dicho nodo se calculan como la suma de las fuerzas que actúan sobre cada uno de dichos cuadrados receptores correspondientes desde dicho nivel más bajo hasta dicho nivel más alto multiplicada por la masa de dicho nodo.
  7. 7. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-6, en donde dicha subselección comprende seleccionar como cuadrado de nivel inferior el que está entre el cuadrado fuente y el cuadrado receptor de nivel superior, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y no están en el mismo nivel.
  8. 8. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-7, en donde dicha subselección comprende seleccionar como cuadrado de nivel inferior aquel entre el cuadrado fuente y el cuadrado receptor que tiene cuadrados de nivel inferior anidados si el otro no tiene cuadrados de nivel inferior anidados.
  9. 9. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-8, en donde dicha subselección comprende seleccionar como cuadrado de nivel inferior aquel entre el cuadrado fuente y el cuadrado receptor que contiene menos número de dichos nodos, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y están al mismo nivel.
  10. 10. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-9, en donde dicha subselección comprende seleccionar como cuadrado de nivel inferior dicho cuadrado receptor, si tanto el cuadrado fuente como el cuadrado receptor tienen cuadrados de nivel inferior anidados y contienen el mismo número de dichos nodos.
  11. 11. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-10, en donde dicho posicionamiento de dichos objetos en dicha GUI se basa en dichas fuerzas gravitacionales de dichos nodos y en las fuerzas de enlace entre parejas de dichos nodos.
  12. 12. El método para representar objetos de una red en una GUI según la reivindicación 11, en donde dichas fuerzas de enlace se calculan para cada una de dichas parejas como:
    Flx = K (xb -xa)
    Fly = K (yb-ya)
    y
    Flx = K (xa -xb)
    Fly = K (ya-yb)
    respectivamente para un nodo "a" de dicha pareja y para un nodo "b" de dicha pareja, en donde:
    - K es una constante elástica predefinida;
    - xa, xb son las coordenadas respectivas a lo largo del eje x de los nodos "a" y "b";
    - ya, yb son las coordenadas respectivas a lo largo del eje y de los nodos "a" y "b".
  13. 13. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-12, en donde dicho posicionamiento de dichos objetos en dicha GUI se basa en dichas fuerzas gravitacionales de dichos nodos y en las fuerzas centrales que atraen dichos nodos hacia el origen de dicho gráfico.
  14. 14. El método para representar objetos de una red en una GUI según la reivindicación 13, en donde dichas fuerzas centrales se calculan para cada uno de dichos nodos como:
    Fcx = C * x
    Fcy = C * y
    en donde:
    - C es una constante predefinida;
    - x es la coordenada a lo largo del eje x de un nodo;
    - y es la coordenada a lo largo del eje y de un nodo.
  15. 15. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-14, en donde dicho posicionamiento de dichos objetos en dicha GUI se basa en dichas fuerzas gravitacionales de dichos nodos y en las fuerzas de amortiguación de dichos nodos.
  16. 16. El método para representar objetos de una red en una GUI según la reivindicación 15, en donde dichas fuerzas de amortiguación se calculan para cada uno de dichos nodos como:
    Fdx = D * Vx
    Fdy = D * Vy
    en donde:
    - Vx es la velocidad de dicho nodo a lo largo de dicho eje x,
    - Vy es la velocidad de dicho nodo a lo largo de dicho eje y,
    - D es una constante de amortiguación predefinida.
  17. 17. El método para representar objetos de una red en una GUI según una de las reivindicaciones 1-11 y 11-16, en donde dicho posicionamiento de dichos objetos en dicha GUI se basa en las fuerzas totales de cada uno de dichos nodos como suma de dichas fuerzas gravitacionales, de dichas fuerzas de enlace, de dichas fuerzas centrales, de dichas fuerzas de amortiguación calculadas para cada uno de dichos nodos como:
    Ftx = Fgx Flx Fcx Fdx
    Fty = Fgy Fly Fcy Fdy
  18. 18. El método para representar objetos de una red en una GUI según la reivindicación 17, en donde dicho posicionamiento de dichos objetos en dicha GUI se calcula en un intervalo de tiempo predeterminado en cada instante predeterminado, y
    en donde se determina una nueva posición de todos dichos nodos en dicho instante utilizando el algoritmo de velocidad de Verlet en base a dichas fuerzas totales.
ES22158683T 2021-02-28 2022-02-24 Método para representar objetos de una red en una GUI Active ES2989208T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US17/187,821 US11388065B1 (en) 2021-02-28 2021-02-28 Method for representing objects of a network in a GUIs

Publications (1)

Publication Number Publication Date
ES2989208T3 true ES2989208T3 (es) 2024-11-25

Family

ID=80785149

Family Applications (1)

Application Number Title Priority Date Filing Date
ES22158683T Active ES2989208T3 (es) 2021-02-28 2022-02-24 Método para representar objetos de una red en una GUI

Country Status (16)

Country Link
US (1) US11388065B1 (es)
EP (1) EP4050864B1 (es)
JP (1) JP7858339B2 (es)
KR (1) KR20220123178A (es)
CN (1) CN114968190A (es)
AU (1) AU2022201088A1 (es)
BR (1) BR102022003727A2 (es)
CA (1) CA3149031A1 (es)
ES (1) ES2989208T3 (es)
HR (1) HRP20241441T1 (es)
HU (1) HUE068123T2 (es)
MX (1) MX2022002535A (es)
PL (1) PL4050864T3 (es)
RS (1) RS66082B1 (es)
SA (1) SA122430724B1 (es)
TW (1) TWI910320B (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983803B2 (en) * 2022-02-02 2024-05-14 Nozomi Networks Sagl Method for representing objects of a network in a GUI with a graph clustering

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2444835A1 (en) 2003-10-10 2005-04-10 Ibm Canada Limited - Ibm Canada Limitee System and method for grid computing
EP1907957A4 (en) * 2005-06-29 2013-03-20 Otrsotech Ltd Liability Company INVESTMENT METHODS AND SYSTEMS
US8983808B2 (en) * 2008-10-15 2015-03-17 The United States Of America, As Represented By The Secretary Of The Navy Automated mesh generation and editing tools
CN103518387A (zh) 2011-04-12 2014-01-15 汤姆逊许可公司 编码网格模型的方法、已编码网格模型和解码网格模型的方法
TW201405321A (zh) * 2012-07-16 2014-02-01 Estinet Technologies Inc 雲端模擬運算方法與系統
CN103997747B (zh) * 2014-05-14 2018-04-17 浪潮电子信息产业股份有限公司 一种基于虚拟力的空间网络节点均匀部署方法
US10269152B2 (en) * 2015-06-05 2019-04-23 International Business Machines Corporation Force-directed graphs
EP3333735B1 (en) * 2016-12-12 2021-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device
CN111597664B (zh) 2020-04-03 2021-12-31 厦门道唯思信息技术有限公司 一种社交网络布局方法、系统及其存储介质

Also Published As

Publication number Publication date
RS66082B1 (sr) 2024-11-29
TWI910320B (zh) 2026-01-01
PL4050864T3 (pl) 2024-11-18
AU2022201088A1 (en) 2022-09-15
TW202236078A (zh) 2022-09-16
EP4050864B1 (en) 2024-07-24
EP4050864C0 (en) 2024-07-24
CA3149031A1 (en) 2022-08-28
US11388065B1 (en) 2022-07-12
BR102022003727A2 (pt) 2022-09-06
JP2022132277A (ja) 2022-09-08
HUE068123T2 (hu) 2024-12-28
MX2022002535A (es) 2022-09-01
HRP20241441T1 (hr) 2024-12-20
KR20220123178A (ko) 2022-09-06
CN114968190A (zh) 2022-08-30
JP7858339B2 (ja) 2026-05-14
EP4050864A1 (en) 2022-08-31
SA122430724B1 (ar) 2024-11-07

Similar Documents

Publication Publication Date Title
CN109255828B (zh) 执行相交测试以绘制3d场景图像的方法、光线跟踪单元
Itami Simulating spatial dynamics: cellular automata theory
Hillier The city as a socio-technical system: A spatial reformulation in the light of the levels problem and the parallel problem
JP6903014B2 (ja) 幾何学モデルを単純化する方法
US20230145348A1 (en) Force-directed graph layout
JP2018073427A5 (es)
CN115605872A (zh) 使用模拟交叉开关架构的矩阵素描
EP4050864B1 (en) Method for representing objects of a network in a gui
TW201517555A (zh) 網路視覺化系統及方法
Serpa et al. Flexible use of temporal and spatial reasoning for fast and scalable CPU broad‐phase collision detection using KD‐Trees
GB2593700A (en) Force-directed graph layout
Obenschain et al. Using CT-Analyst to optimize sensor placement
CN113313805B (zh) 一种三维场景数据存储方法、装置、设备及存储介质
Galatolo et al. Probability, statistics and computation in dynamical systems
HK40072531A (en) Method for representing objects of a network in a gui
Debenham et al. Efficient field of vision algorithms for large 2D grids
US10282810B2 (en) Rendering illustrations using a two-dimensional rendering engine
US11983803B2 (en) Method for representing objects of a network in a GUI with a graph clustering
Stephen et al. Model-based cellular automata on spread of rumours
Zhao et al. INTERACTIVE VISUALIZATION OF LARGE-SCALE 3D SCATTERED DATA FROM A TSUNAMI SIMULATION.
Tauritz Evolutionary Computing COMP 5660-001/6660-001/6666-V01–Auburn University Fall 2020–Assignment Series 2 GPac: A Genetic Programming & Coevolution Approach to the Game of Pac-Man
HK40097396A (zh) 以图形集群在图形用户界面中表示网络中的物件的方法
Berggren et al. Geometrical and Evolutionary effects in a Predator-Prey System
Bramstång et al. Geometrical and Evolutionary effects in a Predator-Prey System
Kozłowska Operation of ant algorithm on different hardware platforms