Information processing apparatus, information processing method, and information processing program

The information processing device addresses the issue of excessive edge deletion in conventional graph processing by determining and deleting shortcut edges based on defined criteria, enhancing search performance and graph structure integrity.

JP2026032587APending Publication Date: 2026-02-27LY CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024135211
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-14
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

Conventional techniques for deleting shortcut edges in graphs often delete too many edges, failing to adequately consider processing procedures and judgment conditions, leading to inappropriate generation of graphs without edges.

Method used

An information processing device that acquires first graph information and condition information to determine and delete shortcut edges based on specific determination criteria, generating second graph information that reflects these deletions.

Benefits of technology

The device effectively generates a second graph with appropriate edge deletions, improving search performance by optimizing edge reduction and maintaining graph structure integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026032587000001_ABST
    Figure 2026032587000001_ABST
Patent Text Reader

Abstract

To appropriately generate information indicating another graph in which an edge in a graph is deleted.SOLUTION: An information processing apparatus includes an acquisition unit and a generation unit. An acquisition unit which acquires first graph information indicating a first graph in which a plurality of nodes corresponding to a plurality of objects to be searched are connected by edges and condition information indicating a determination condition for a shortcut edge to be deleted in the graph; and a generation unit which sets, as a target edge, a directed edge having a first node as a start point and a second node as an end point, among the edges included in the first graph, and, and generating second information indicating a second graph in which the target edge is deleted when a relationship among each of detour nodes, the first node, and the second node satisfies a determination condition of a shortcut edge, the detour nodes including a third node to which a directed edge starting from the first node is connected and a fourth node that is a starting point of a directed edge ending at the second node and is reachable from the third node.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device, an information processing method, and an information processing program. [Background technology]

[0002] Conventionally, various technologies for searching (retrieving) information have been provided. For example, in order to perform a search for a predetermined target, a technology has been provided for generating graph data in which nodes corresponding to the search target are connected by edges. For example, Patent Document 1 determines whether a directed edge connecting one node to another node corresponds to a shortcut edge, and deletes the directed edge determined to be a shortcut edge, thereby generating graph data in which an increase in the number of edges is suppressed. Furthermore, such a technology is used, for example, in image search. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6293335 [Patent Document 2] Patent No. 7080803 [Patent Document 3] Patent No. 7130019 [Non-patent literature]

[0004] [Non-Patent Document 1] Masajiro Iwasaki, "Neighborhood Search Using Approximate k-Nearest Neighbor Graphs with Tree-Structured Indexes," Transactions of Information Processing Society of Japan, February 2011, Vol. 52, No. 2, pp. 817-828. Summary of the Invention [Problem to be solved by the invention]

[0005] However, there is room for improvement in the above-mentioned conventional techniques. For example, although the above-mentioned conventional techniques can suppress an increase in the number of edges by deleting shortcut edges, there may be cases where too many edges are deleted. For example, it is difficult to say that the above-mentioned conventional techniques sufficiently consider the processing procedures and judgment conditions when performing the shortcut edge deletion process. Therefore, there is room for improvement in terms of appropriately generating information indicating another graph from which an edge in a graph has been deleted.

[0006] The present application has been made in consideration of the above, and aims to provide an information processing device, an information processing method, and an information processing program that appropriately generate information indicating another graph in which an edge in a graph has been deleted. [Means for solving the problem]

[0007] The information processing device according to the present application is characterized by comprising: an acquisition unit that acquires first graph information indicating a first graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges; and condition information indicating a determination condition for a shortcut edge to be deleted in the graph; and a generation unit that generates second information indicating a second graph in which the target edge is determined to be the shortcut edge and deleted from the graph if the relationship between the first node and the second node satisfies the determination condition for the shortcut edge. [Effects of the Invention]

[0008] According to one aspect of the embodiment, it is possible to appropriately generate information indicating another graph from which an edge has been deleted from a graph. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of information processing according to the embodiment. [Figure 2] FIG. 2 is a conceptual diagram showing an example of shortcut determination according to the embodiment. [Figure 3] FIG. 3 is a conceptual diagram showing an example of shortcut determination according to the embodiment. [Figure 4] FIG. 4 is a conceptual diagram showing an example of shortcut determination according to the embodiment. [Figure 5] FIG. 5 is a conceptual diagram showing an example of shortcut determination according to the embodiment. [Figure 6] FIG. 6 is a conceptual diagram showing an example of shortcut determination according to the embodiment. [Figure 7] FIG. 7 is a diagram illustrating an example of the configuration of an information processing system according to the embodiment. [Figure 8] FIG. 8 is a diagram illustrating an example of the configuration of an information processing device according to the embodiment. [Figure 9] FIG. 9 is a diagram illustrating an example of an object information storage unit according to the embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a condition information storage unit according to the embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of a reference information storage unit according to the embodiment. [Figure 12] FIG. 12 is a diagram illustrating an example of a graph information storage unit according to the embodiment. [Figure 13] FIG. 13 is a flowchart illustrating an example of information processing according to the embodiment. [Figure 14] FIG. 14 is a flowchart illustrating an example of information processing according to the embodiment. [Figure 15] FIG. 15 is a diagram illustrating an example of starting point information used in information processing according to the embodiment. [Figure 16] FIG. 16 is a flowchart showing an example of a search process using graph data. [Figure 17]FIG. 17 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the information processing device. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, a detailed description will be given of an information processing device, an information processing method, and an information processing program (hereinafter referred to as an "embodiment") according to the present application, with reference to the drawings. Note that the information processing device, the information processing method, and the information processing program according to the present application are not limited to the embodiment. Furthermore, the same components in the following embodiments are denoted by the same reference numerals, and redundant description will be omitted.

[0011] (Embodiment) [1. Information Processing] An example of information processing according to the embodiment will be described with reference to Fig. 1. Fig. 1 is a diagram showing an example of information processing according to the embodiment. In Fig. 1, an information processing device 100 (see Fig. 8) determines whether edges included in a first graph, which is certain graph data (also simply referred to as a "graph"), satisfy a shortcut edge determination condition, and generates second information indicating a graph (also referred to as a "second graph") in which edges determined to be shortcut edges have been deleted.

[0012] The second information will be described in detail later, but any information indicating the second graph can be used as the second information. For example, the second information may be information for identifying edges that correspond to shortcut edges, such as a flag associated with each edge included in the first graph and indicating whether or not the edge is a shortcut edge. The second information may also be graph data (graph information) generated separately from the first graph and indicating a graph (second graph) after shortcut edges included in the first graph have been deleted. In this way, the second information may be any information capable of identifying the structure of the graph (second graph) after shortcut edges included in the first graph have been deleted. In the following description, generating second information indicating the second graph may sometimes be referred to as generating the second graph.

[0013] 1 also shows a case where target information (objects) are vectorized and a graph (graph index) is generated using the vectorized objects as targets. That is, FIG. 1 shows a case where information processing device 100 processes vectors as object values ​​corresponding to objects.

[0014] Note that the information used by the information processing device 100 is not limited to vectors, and may be in any format as long as it is information that can express the similarity of each object. For example, the information processing device 100 may use predetermined data or values ​​corresponding to each object. For example, the information processing device 100 may use predetermined numerical values ​​(for example, binary values ​​or hexadecimal values) generated from each object. For example, the information processing device 100 is not limited to vectors, and may use data in any format as long as the distance (similarity) between data is defined. Furthermore, although the following description will be given as an example in which image information is used as an object, the object may also be various objects such as video information or audio information.

[0015] 1, the information processing device 100 performs information processing on a graph including nodes and directed edges. Note that a directed edge here refers to an edge that allows data to be traced in only one direction. In the following, the source of the trace by the edge, i.e., the starting node, is referred to as the reference source, and the destination of the trace by the edge, i.e., the ending node, is referred to as the reference destination. For example, a directed edge connecting a specific node "A" to a specific node "B" refers to an edge with the reference source being node "A" and the reference destination being node "B."

[0016] Hereinafter, an edge having node "A" as the reference source will be referred to as an output edge of node "A." Also, hereinafter, an edge having node "B" as the reference destination will be referred to as an input edge of node "B." That is, the output edge and input edge here refer to the difference between which of the two nodes connected by a directed edge is considered as the center, and a directed edge becomes an output edge and an input edge. That is, output edges and input edges are relative concepts, and a directed edge becomes an output edge when the reference source node is considered as the center, and becomes an input edge when the reference destination node is considered as the center. Note that in this embodiment, edges refer to directed edges such as output edges and input edges, and therefore, hereinafter, directed edges may be simply referred to as "edges."

[0017] Here, each node corresponds to an object. For example, each of a plurality of local features extracted from an image may be an object. Also, for example, various data in which the distance between objects is defined may be an object.

[0018] The information processing device 100 performs graph generation processing on nodes corresponding to a huge amount of image information (for example, millions to hundreds of millions) within the range that the information processing device 100 can process, but only a portion of these is shown in the drawings. For ease of explanation, FIG. 1 illustrates five nodes to explain the outline of the processing. Specifically, FIG. 1 illustrates only nodes N1 to N5, and only some edges, such as edge E1.

[0019] In this way, when you write "node N* (* is any number)", it means that the node is identified by the node ID "N*". For example, when you write "node N1", the node is identified by the node ID "N1".

[0020] Furthermore, when an edge is written as "edge E* (* is an arbitrary numerical value)," it indicates that the edge is identified by the edge ID "E*." For example, when an edge is written as "edge E1," the edge is identified by the edge ID "E1." For example, it is possible to trace from node N1 to node N2 via edge E1, which connects node N1 as the reference source and node N2 as the reference destination. In this case, edge E1, which is a directed edge, is an output edge when identified with node N1 as the center, and is an input edge when identified with node N2 as the center. In other words, when viewed from the perspective of node N1, edge E1, which is a directed edge, is an edge with an arrow pointing from itself to another edge, i.e., an outgoing edge, and when viewed from the perspective of node N2, it is an edge with an arrow pointing toward itself, i.e., an ingoing edge. In other words, the output edge here can be interpreted as an outgoing edge, and the input edge can be interpreted as an ingoing edge.

[0021] 1 are diagrams that schematically show the respective graphs, and the spaces shown in the spatial information VS1-0 to VS1-6 may be the same space. In the following, when the spatial information VS1-0 to VS1-6 is described without any particular distinction, it will be referred to as spatial information VS1.

[0022] For example, each circle (◯) in the spatial information VS1 in Figure 1 represents a node. Each node corresponds to an object. Also, arrows connecting the circles (◯) in the spatial information VS1 represent directed edges.

[0023] Furthermore, the spatial information VS1 in Fig. 1 may be a Euclidean space. Furthermore, the spatial information VS1 shown in Fig. 1 is a conceptual diagram for explaining the distance between vectors, etc., and the spatial information VS1 is a multidimensional space. For example, the spatial information VS1 shown in Fig. 1 is illustrated in a two-dimensional form in order to be illustrated on a plane, but it is assumed to be a multidimensional space with, for example, 100 or 1000 dimensions.

[0024] Graphs GR11-1 to GR11-6 shown in FIG. 1 are diagrams that schematically illustrate the process of generating a second graph, and graphs GR11-1 to GR11-6 are the same second graph generated by information processing. In the following description, graphs GR11-1 to GR11-6 will be referred to as graph GR11 when there is no need to distinguish between them. For example, in FIG. 1, when the second information is a flag or the like, the information processing device 100 generates information (flag information or the like) for identifying edges included in the second graph (graph GR11). When generating graph data of the second graph itself, the information processing device 100 generates graph data of the second graph (graph GR11).

[0025] In this embodiment, the distance between each node in the spatial information VS1 is taken as the similarity between corresponding objects. For example, the similarity between objects (image information) corresponding to each node is assumed to be mapped as the distance between nodes in the spatial information VS1. For example, the similarity between concepts corresponding to each node is assumed to be mapped to the distance between each node. Here, in the example shown in FIG. 1, the similarity between objects whose distance between each node in the spatial information VS1 is short is high, and the similarity between objects whose distance between each node in the spatial information VS1 is long is low. For example, in the spatial information VS1 in FIG. 1, the node identified by node ID "N2" (node ​​N2) and the node identified by node ID "N3" (node ​​N3) are close to each other, i.e., the distance between them is short. Therefore, the object corresponding to the node identified by node ID "N2" and the object corresponding to the node identified by node ID "N3" have a high similarity.

[0026] Also, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID "N1" and the node identified by the node ID "N5" are far apart, i.e., the distance between them is long. Therefore, the object corresponding to the node identified by the node ID "N1" and the object corresponding to the node identified by the node ID "N5" have a low similarity. Note that the distance as an index of similarity may be any distance that can be applied as the distance between vectors (N-dimensional vectors), and various distances such as Euclidean distance, Mahalanobis distance, and cosine distance may be used.

[0027] [1-1. Information processing example] Next, an example of information processing executed by the information processing device 100 will be described with reference to Fig. 1. Specifically, Fig. 1 shows an example of generation of second information indicating a second graph by shortcut edge deletion processing by the information processing device 100. Note that each step shown in Fig. 1 is a convenient step for explaining the graph generation process, and the actual processing may involve earlier processing or more detailed processing. Note that the information processing performed by the information processing device 100 may have any processing flow as long as a graph GR11 (second graph) such as that shown in graph GR11-6 in Fig. 1 is generated.

[0028] 1, the information processing device 100 acquires a first graph GR1 (step S1). Note that the first graph GR1 shown in FIG. 1 is merely an example, and any graph can be used as the first graph. Furthermore, the following description will be given as an example in which the information processing device 100 acquires the first graph GR1 from the storage unit 120 (see FIG. 8), but the information processing device 100 may generate the first graph GR1 or may acquire the first graph GR1 from an external device such as the information providing device 50.

[0029] 1 illustrates an example in which a criterion (criterion CR11) identified by a criterion ID "CR11" is used among the criteria stored in the criterion information storage unit 123 (see FIG. 11). For example, the criterion CR11 is a selection order (processing order) criterion that indicates that edges to be processed (also referred to as "target edges") are selected in order from shortest edge to longest edge.

[0030] First, the information processing device 100 selects one directed edge that has not been selected as a processing target (target edge) from among the directed edges having each of the multiple nodes included in the first graph GR1 as a starting point (originating point) as a target edge (step S2). In Fig. 1, since no edge has been processed as a target edge in the first graph GR1 in the spatial information VS1-0, the information processing device 100 selects the edge with the shortest length for each of the nodes N1 to N5 as the target edge.

[0031] For example, the information processing device 100 selects edge E7, which has the shortest length, as the target edge for node N1 among the directed edges (edges E1, E3, and E7 in FIG. 1) that start at node N1 in the first graph GR1. Also, the information processing device 100 selects edge E5, which has the shortest length, as the target edge for node N2 among the directed edges (edges E2, E5, and E8 in FIG. 1) that start at node N2 in the first graph GR1.

[0032] For example, the information processing device 100 selects the shortest edge E4 among the directed edges (edges E4, E10, and E11 in FIG. 1) starting from node N3 in the first graph GR1 as the target edge for node N3. Similarly, the information processing device 100 selects the shortest edges E6 and E14 among the directed edges starting from nodes N4 and N5 in the first graph GR1 as the target edges for nodes N4 and N5, respectively.

[0033] 1 indicates a state in which edges E4, E5, E6, E7, and E14 have been selected as target edges by the information processing device 100 by indicating the edges E4, E5, E6, E7, and E14 with dotted lines. That is, graph GR11-1 indicates a state in which it has not been determined whether any edge in the first graph should be deleted as a shortcut edge, and no edge is included in the second graph.

[0034] The information processing device 100 generates second information based on the processing for each of the selected target edges (step S3). In Fig. 1, the information processing device 100 generates second information indicating the graph GR11-2 in the spatial information VS1-2 based on the processing for each of the selected edges E4, E5, E6, E7, and E14.

[0035] Here, since the shortest (shortest) edge cannot be a shortcut, the information processing device 100 determines that edges E4, E5, E6, E7, and E14 do not correspond to shortcut edges. Then, the information processing device 100 generates graph GR11-2, which is a second graph, to which edges E4, E5, E6, E7, and E14 are added (remaining), without deleting edges E4, E5, E6, E7, and E14 as shortcut edges. Details of the conditions for determining whether an edge is a shortcut edge will be described later.

[0036] Next, the information processing device 100 selects one directed edge that has not yet been selected as a processing target (target edge) from among the directed edges having each of the multiple nodes included in the first graph GR1 as a starting point (originating point) as a target edge (step S4). In Fig. 1, the information processing device 100 selects the second shortest edge for each of the nodes N1 to N5 as the target edge because the shortest edge for each node in the first graph GR1 in the spatial information VS1-0 has already been processed as the target edge.

[0037] For example, the information processing device 100 selects the second shortest edge E1 among the directed edges (edges E1, E3, and E7 in FIG. 1) starting from node N1 in the first graph GR1 as the target edge for node N1. Also, the information processing device 100 selects the second shortest edge E8 among the directed edges (edges E2, E5, and E8 in FIG. 1) starting from node N2 in the first graph GR1 as the target edge for node N2.

[0038] For example, the information processing device 100 selects the second shortest edge E10 among the directed edges (edges E4, E10, and E11 in FIG. 1) starting from node N3 in the first graph GR1 as the target edge for node N3. Similarly, the information processing device 100 selects the second shortest edges E13 and E12 among the directed edges starting from nodes N4 and N5 in the first graph GR1 as the target edges for nodes N4 and N5, respectively.

[0039] 1 indicates a state in which edges E1, E8, E10, E13, and E12 have been selected as target edges by the information processing device 100 by indicating the edges E1, E8, E10, E13, and E12 with dotted lines. That is, graph GR11-3 indicates a state in which edges E4, E5, E6, E7, and E14 in the first graph have been added to the second graph by the processing in step S3, and edges E4, E5, E6, E7, and E14 are included in the second graph.

[0040] The information processing device 100 generates second information based on the processing for each of the selected target edges (step S5). In Fig. 1, the information processing device 100 generates second information indicating graphs GR11-4 in spatial information VS1-4 based on the processing for each of the selected edges E1, E8, E10, E13, and E12.

[0041] Here, in graph GR11-2, which is the second graph before execution of step S5, there is no path yet that bypasses any of edges E1, E8, E10, E13, and E12 (the target edges do not become shortcut edges), so the information processing device 100 determines that edges E1, E8, E10, E13, and E12 do not correspond to shortcut edges. Then, the information processing device 100 generates graph GR11-4, which is the second graph, by adding (leaving) edges E1, E8, E10, E13, and E12 without deleting them as shortcut edges.

[0042] Next, the information processing device 100 selects one directed edge that has not yet been selected as a processing target (target edge) from among the directed edges having each of the multiple nodes included in the first graph GR1 as a starting point (originating point) as a target edge (step S6). In Fig. 1, since the shortest edge and the second shortest edge for each node in the first graph GR1 in the spatial information VS1-0 have already been processed as target edges, the information processing device 100 selects the third shortest edge for each of the nodes N1 to N5 as the target edge.

[0043] For example, the information processing device 100 selects the edge E3, which has the third shortest length, from among the directed edges (edges E1, E3, and E7 in FIG. 1) that start at node N1 in the first graph GR1, as the target edge for node N1. Also, the information processing device 100 selects the edge E2, which has the third shortest length, from among the directed edges (edges E2, E5, and E8 in FIG. 1) that start at node N2 in the first graph GR1, as the target edge for node N2.

[0044] For example, the information processing device 100 selects the edge E11, which has the third shortest length, among the directed edges (edges E4, E10, and E11 in FIG. 1) that start at node N3 in the first graph GR1, as the target edge for node N3. Similarly, the information processing device 100 selects the edges E9 and E15, which have the third shortest length, among the directed edges that start at nodes N4 and N5 in the first graph GR1, as the target edges for nodes N4 and N5, respectively.

[0045] 1 indicates a state in which edges E2, E3, E9, E11, and E15 have been selected as target edges by the information processing device 100 by indicating the edges E2, E3, E9, E11, and E15 with dotted lines. That is, graph GR11-5 indicates a state in which edges E1, E8, E10, E13, and E12 in the first graph have been added to the second graph by the processing in step S5, and edges E1, E4, E5, E6, E7, E8, E10, E13, E14, and E12 are included in the second graph.

[0046] The information processing device 100 generates second information based on the processing for each of the selected target edges (step S7). In Fig. 1, the information processing device 100 generates second information indicating graphs GR11-6 in spatial information VS1-6 based on the processing for each of the selected edges E2, E3, E9, E11, and E15.

[0047] Here, in graph GR11-4, which is the second graph before step S7 is executed, there is a path that bypasses edge E3. In FIG. 1, to get from node N1, which is the starting point of edge E3, to node N3, there is a path (route) from node N1 to node N3 other than edge E3, by tracing edge E1 from node N1 to node N2 and then tracing edge E5 from node N2 to node N3. In this way, by passing through one node N2, it is possible to get from node N1 to node N3 without using edge E3. Also, in graph GR11-4, which is the second graph before step S7 is executed, it is possible to get from node N5 to node N2 by tracing edges E12 and E4 in that order, i.e., by passing through one node N3, it is possible to get from node N5 to node N2 without using edge E15, and there is a path that bypasses edge E15.

[0048] When a path that bypasses the target edge exists, such as the above-described edges E3 and E15, the information processing device 100 determines whether or not to delete the target edge as a shortcut edge. The information processing device 100 may determine whether or not a path that bypasses the target edge exists by any processing.

[0049] 1, for example, the information processing device 100 extracts a node (also referred to as a "detouring node") having an edge with node N3 as its output destination (end point) from among nodes to which other edges starting from node N1, which is the starting point of edge E3, are input. Since the information processing device 100 extracted node N2 as the detouring node for edge E3, it determines that a path that detouring edge E3 exists, and determines whether or not to delete edge E3 as a shortcut edge.

[0050] 1 illustrates an example in which a condition (condition CD1) identified by a condition ID "CD1" is used among the criteria stored in the condition information storage unit 122 (see FIG. 10). For example, the condition CD1 is a condition as shown in the condition information CND1 in FIG. 2. FIG. 2 is a conceptual diagram showing an example of shortcut determination according to the embodiment. Note that the conditions are not limited to those shown in FIG. 2, and any conditions may be used, which will be described later.

[0051] First, an overview of the condition CD1 shown in the condition information CND1 in Fig. 2 will be described using the schematic diagram shown on the left side of Fig. 2. In Fig. 2, the node (also referred to as the "first node") that is the start point of the target edge is referred to as node Nsrc, the node (also referred to as the "second node") that is the end point of the target edge is referred to as node Ndst, and the detour node (also referred to as the "third node") on the path that detours around the target edge is referred to as node Npass. Also, in Fig. 2, the target edge (also referred to as the "first directed edge") is referred to as edge E1st, the edge (also referred to as the "second directed edge") that starts from the first node and ends at the third node is referred to as edge E2nd, and the edge (also referred to as the "third directed edge") that starts at the third node and ends at the second node is referred to as edge E3rd.

[0052] 2 indicates a range having a radius that is the distance (also referred to as the "first distance") to the second node Ndst, centered on the first node Nsrc. The distance (first distance) between the nodes Nsrc and Ndst corresponds to the length of the first directed edge E1st.

[0053] In the condition information CND1 in FIG. 2, the condition indicated by "distance (Nsrc, Npass)<distance (Nsrc, Ndst)" (also referred to as the "first condition") corresponds to the range AR11. In the first condition in the condition information CND1 in FIG. 2, "distance (Nsrc, Npass)" corresponds to the distance (also referred to as the "second distance") between the node Nsrc (first node) and the node Npass, which is the third node. The distance (second distance) between the node Nsrc and the node Npass corresponds to the length of the edge E2nd, which is the second directed edge.

[0054] 2, "distance (Nsrc, Ndst)" corresponds to the distance (first distance) between node Nsrc (first node) and node Ndst (second node). That is, when node Npass (third node) is in range AR11, the target edge (edge ​​E1st in FIG. 2) satisfies the first condition in the condition information CND1.

[0055] Moreover, the range AR21 shown in FIG. 2 indicates a range having a center at the node Ndst (second node) and a radius equal to the distance (first distance) to the node Nsrc (first node).

[0056] In the condition information CND1 in FIG. 2, the condition indicated by "distance (Npass, Ndst)<distance (Nsrc, Ndst)" (also referred to as the "second condition") corresponds to the range AR21. In the second condition in the condition information CND1 in FIG. 2, "distance (Npass, Ndst)" corresponds to the distance (also referred to as the "third distance") between the node Npass (third node) and the node Ndst (second node). The distance (third distance) between the node Npass and the node Ndst corresponds to the length of the edge E3rd, which is the third directed edge.

[0057] 2, "distance (Nsrc, Ndst)" corresponds to the distance (first distance) between node Nsrc (first node) and node Ndst (second node). That is, when node Npass (third node) is within range AR21, the target edge (edge ​​E1st in FIG. 2) satisfies the second condition in the condition information CND1.

[0058] Moreover, the range AR31 shown in FIG. 2 indicates a range obtained by multiplying the range having a diameter between the node Nsrc (first node) and the node Ndst (second node) by a predetermined coefficient α. For example, the range AR31 shown in FIG. 2 indicates a range obtained by expanding the range passing through the node Nsrc and the node Ndst by α. Note that any value can be set to the predetermined coefficient α. For example, α may be 1, or may be set to a value greater than 1 such as 1.1, or may be set to a value less than 1 such as 0.9.

[0059] In the condition information CND1 of FIG. 2, the condition indicated by "distance (Nsrc, Npass) + distance (Npass, Ndst) < α * distance (Nsrc, Ndst)" (also referred to as the "third condition") corresponds to the range AR21. In the third condition in the condition information CND1 of FIG. 2, "distance (Nsrc, Npass)" corresponds to the distance (second distance) between the node Nsrc (first node) and the node Npass, which is the third node. In the third condition in the condition information CND1 of FIG. 2, "distance (Npass, Ndst)" corresponds to the distance (third distance) between the node Npass (third node) and the node Ndst (second node).

[0060] 2, "α*distance(Nsrc, Ndst)" is the distance (first distance) between node Nsrc (first node) and node Ndst (second node) multiplied by a predetermined coefficient α. That is, when node Npass (third node) is in range AR21, the target edge (edge ​​E1st in FIG. 2) satisfies the third condition in the condition information CND1.

[0061] The relevant range CA1 shown by hatching in Figure 2 is the range where ranges AR11, AR21, and AR31 overlap, and corresponds to the range that satisfies the condition CD1 indicated in the condition information CND1. In other words, when node Npass, which is the third node, is in the relevant range CA1, it indicates that the target edge (edge ​​E1st in Figure 2) satisfies the condition CD1 indicated in the condition information CND1. In this way, the condition CD1 indicated in the condition information CND1 in Figure 2 is a condition for determining that the target edge corresponds to a shortcut edge when all of the above-mentioned first condition, second condition, and third condition are satisfied.

[0062] In FIG. 1, the information processing device 100 determines whether a target edge for which it has determined that a detour path exists satisfies the above-described condition CD1. For example, if the information processing device 100 determines that a certain target edge satisfies the above-described condition CD1, it determines that the target edge is a shortcut edge. For example, if the information processing device 100 determines that a certain target edge does not satisfy the above-described condition CD1, it determines that the target edge is not a shortcut edge. The information processing device 100 generates a second graph by deleting the target edge determined to be a shortcut edge as a shortcut edge.

[0063] In FIG. 1, if node N1 is the first node, node N3 is the second node, and node N2 is the third node, edge E3 is the first directed edge, edge E1 is the second directed edge, and edge E5 is the third directed edge. The information processing device 100 determines whether to delete edge E3 as a shortcut edge using the length of edge E3, which is the first distance, the length of edge E1, which is the second distance, the length of edge E5, which is the third distance, and the determination formula indicated in the condition information CND1. In FIG. 1, the information processing device 100 determines to delete edge E3 as a shortcut edge because edge E3 satisfies the determination formula indicated in the condition information CND1. Similarly, the information processing device 100 determines to delete edge E15 as a shortcut edge because edge E15 satisfies the determination formula indicated in the condition information CND1.

[0064] Furthermore, the information processing device 100 determines that the other target edges, edges E2, E9, and E11, do not qualify as shortcut edges. For example, edge E11 tracing from node N3 to node N5 is an edge (shortcut) for which there exists a path (detour path) tracing from node N3 to edges E10 and E13 to reach node N5, but the information processing device 100 determines that it should not be deleted as a shortcut edge. For example, when the information processing device 100 processes edge E11 as a target edge, edge E11 does not satisfy the determination formula indicated in the condition information CND1, and therefore determines that edge E11 should not be deleted as a shortcut edge.

[0065] Then, the information processing device 100 deletes edges E3 and E15 as shortcut edges, and adds (retains) edges E2, E9, and E11 without deleting them as shortcut edges, thereby generating graph GR11-6, which is a second graph. As a result, in Fig. 1, the information processing device 100 generates graph GR11, which is a second graph, by deleting edge E1 as a shortcut edge from graph GR1, which is the first graph.

[0066] [1-2. Effects, etc.] In this way, the information processing device 100 can appropriately generate information indicating another graph in which an edge in a graph has been deleted by generating second information indicating a second graph in which a target edge determined to be a shortcut edge has been deleted from a first graph.

[0067] For example, when processing the graph GR1 shown in FIG. 1 in node order, edge E1 may not be deleted as a shortcut edge. For example, when nodes N1 to N5 are selected in order, all edges originating from the selected node are processed as target edges, and the next node is selected, edge E1 may not be deleted as a shortcut edge. Specifically, if node N1 is selected first and all edges E1, E3, and E7 originating from the selected node N1 are processed as target edges, when edge E3 is selected as the target edge, there is no detour path for the target edge E3, so edge E3 is not deleted as a shortcut edge. Then, edges of nodes selected later are more likely to have a detour path, and the edges of nodes selected later are deleted as shortcut edges, which can cause a bias in the graph structure.

[0068] On the other hand, as described above, the information processing device 100 selects one edge from each node and processes that edge as a target edge, thereby reducing the possibility that an edge of a specific node will be deleted as a shortcut edge and enabling the information processing device 100 to delete edges uniformly from each node, thereby enabling the information processing device 100 to generate an appropriate graph.

[0069] As described above, the graph generated differs depending on the order in which shortcut edges are reduced. When reduction processing is performed starting with the longest edges at each node, longer edges are deleted compared to when reduction processing is performed starting with the shortest edges. Furthermore, when reduction processing is performed for all edges of each node, the earlier the nodes are in the reduction processing, the more edges are deleted. Therefore, in the example described above, the information processing device 100 performs reduction processing on the shortest edges of all nodes, then performs reduction processing on the second shortest edges of all nodes, and repeats this process sequentially. In this way, the information processing device 100 can equalize the number of edges to be reduced for each node.

[0070] Furthermore, in a vector approximate neighborhood search using a graph, it is possible to reduce edges by deleting edges that serve as shortcuts, and performance can be improved by reducing the number of edges referenced during a search. The information processing device 100 can improve search performance using the generated graph by optimizing the range of shortcut edge reduction based on the conditions described above. Furthermore, by generating flags as second information, the information processing device 100 has a flag indicating the presence or absence of each edge, and by determining (controlling) the presence or absence of an edge using the flag, it becomes possible to perform deletion processing in a single graph.

[0071] [1-3. Conditions, standards, etc.] In the above example, the conditions shown in Fig. 2 are used, but the conditions shown in Fig. 2 are merely one example of conditions for determining a shortcut edge, and various conditions may be used. An example of this point will be described below. Note that explanations of points similar to those described above will be omitted as appropriate.

[0072] First, the conditions shown in Fig. 3 will be described. Fig. 3 is a conceptual diagram showing an example of shortcut determination according to an embodiment. Note that explanations of the same points as in Fig. 2 will be omitted as appropriate. For example, the node Nsrc, node Ndst, node Npass, edge E1st, edge E2nd, edge E3rd, range AR11, range AR21, etc. in Fig. 3 are the same as those in Fig. 2, and therefore explanations will be omitted.

[0073] 3 shows a case where a condition (condition CD2) identified by a condition ID "CD2" is used among the criteria stored in the condition information storage unit 122 (see FIG. 10). The outline of the condition CD2 shown in the condition information CND2 in FIG. 3 will be explained using the schematic diagram shown on the left side of FIG.

[0074] Condition CD2 (also referred to as the "fourth condition") shown in condition information CND2 in FIG. 3 is a condition using a judgment formula based on a comparison between a value calculated using the law of cosines TR1 (also referred to as the "calculated value") and a threshold value. FIG. 3 shows a case where the condition is satisfied when the calculated value calculated using the law of cosines TR1 is greater than the threshold value. Note that any value can be set as the threshold value. For example, any value can be set as the threshold value within the range of values ​​that the calculated value calculated using the law of cosines TR1 can take.

[0075] 3, "distance (Nsrc, Ndst)" corresponds to the distance (first distance) between node Nsrc (first node) and node Ndst (second node). The distance (first distance) between node Nsrc and node Ndst corresponds to the length of edge E1st, which is the first directed edge.

[0076] 3, "distance (Nsrc, Npass)" corresponds to the distance (second distance) between node Nsrc (first node) and node Npass (third node). The distance (second distance) between node Nsrc and node Npass corresponds to the length of edge E2nd, which is the second directed edge.

[0077] 3, "distance (Npass, Ndst)" corresponds to the distance (third distance) between node Npass (third node) and node Ndst (second node). The distance (third distance) between node Npass and node Ndst corresponds to the length of edge E3rd, which is the third directed edge.

[0078] For example, the information processing device 100 uses the law of cosines TR1 to calculate the cosine value of the angle between the second directed edge (edge ​​E2nd) corresponding to the second distance and the third directed edge (edge ​​E3rd) corresponding to the third distance as the calculated value. In Fig. 3, the information processing device 100 calculates the cosine value of the target angle TC in Fig. 3 using the first distance between the node Nsrc and the node Ndst, the second distance between the node Nsrc and the node Npass, and the third distance between the node Npass and the node Ndst.

[0079] 3 corresponds to the range that satisfies the condition CD2 indicated in the condition information CND2. That is, when the node Npass, which is the third node, is in the range AR41, it indicates that the target edge (edge ​​E1st in FIG. 3) satisfies the condition CD2 indicated in the condition information CND2.

[0080] 3 illustrates a case where range AR41 is included in range AR11, but range AR41 may partially overlap with range AR11, and the remaining range may not overlap with range AR11. Also, while FIG. 3 illustrates a case where range AR41 is included in range AR21, range AR41 may partially overlap with range AR21, and the remaining range may not overlap with range AR21.

[0081] In FIG. 1, the information processing device 100 determines whether a target edge for which it has determined that a detour path exists satisfies the above-described condition CD2. For example, if the information processing device 100 determines that a certain target edge satisfies the above-described condition CD2, it determines that the target edge is a shortcut edge. For example, if the information processing device 100 determines that a certain target edge does not satisfy the above-described condition CD2, it determines that the target edge is not a shortcut edge. The information processing device 100 generates a second graph by deleting the target edge determined to be a shortcut edge as a shortcut edge.

[0082] 2 and 3 are merely examples, and the information processing device 100 may use any condition. For example, the information processing device 100 may use a condition that the overlapping ranges AR11, AR21, and AR41 (fourth condition) are satisfied. That is, in the example of FIG. 1, the information processing device 100 may use the third condition (range AR31) of the condition CD1 shown in the condition information CND1 in FIG. 2 as the fourth condition (range AR41 shown in FIG. 3).

[0083] In this way, the information processing device 100 may determine that the target edge is a shortcut edge when all three of the first condition, the second condition, and the fourth condition are satisfied. Note that, except for the different conditions, the process is the same as that described in FIG. 1, and therefore a detailed description thereof will be omitted.

[0084] As described above, the information processing device 100 can appropriately determine whether a target edge is a shortcut edge by determining whether the target edge is a shortcut edge based on the relationship between the three edges, i.e., the first directed edge, the second directed edge, and the third directed edge, which are the target edge. Furthermore, the information processing device 100 can flexibly determine whether the target edge is a shortcut edge by combining multiple conditions, and can appropriately determine whether the target edge is a shortcut edge. Then, the information processing device 100 generates a graph from which the shortcut edge has been deleted based on the determination of the shortcut edge. This allows the information processing device 100 to appropriately generate information indicating another graph from which the edge in the graph has been deleted.

[0085] [1-4. Other condition examples] In the above example, the deletion of a shortcut edge when there is one detour node is taken as an example, but the information processing device 100 may perform the shortcut edge deletion process not only when there is one detour node, but also when there are two or more detour nodes. That is, the information processing device 100 may determine whether or not a target edge corresponds to a shortcut edge using the shortcut edge determination conditions, not limited to the above-mentioned conditions, even when there are two or more detour nodes. An example of this point will be described below. Note that explanations of points similar to those described above will be omitted as appropriate.

[0086] First, the conditions shown in FIG. 4 will be described. FIG. 4 is a conceptual diagram showing an example of shortcut determination according to an embodiment. Note that explanations of similar points to FIG. 2, FIG. 3, etc. will be omitted as appropriate. For example, FIG. 4 is similar to FIG. 3 except that the number of detour nodes between the first node Nsrc and the second node Ndst has changed from one node Npass to two, nodes Npass1 and Npass2, and therefore explanations will be omitted. In this way, FIG. 4 will be described as an example in which the target edge is an edge Etg, which is a directed edge from node Nsrc to node Ndst. Hereinafter, when nodes Npass1, Npass2, etc. are described without distinction, they will be collectively referred to as node Npass or detour node.

[0087] 4 shows a case where condition information CND11 is used. For example, the condition information CND11 corresponds to a condition obtained by expanding the condition information CND2 shown in FIG. 3 to a case where there are two or more detour nodes. For example, the condition corresponding to the condition information CND11 is stored in the condition information storage unit 122 (see FIG. 10). Below, an overview of the conditions shown in the condition information CND11 in FIG. 4 will be described using the schematic diagram shown on the left side of FIG. 4.

[0088] The condition shown in the condition information CND11 in FIG. 4 (also referred to as the "fifth condition") is a condition using a judgment formula based on a comparison between a calculated value calculated for each detour node using the law of cosines TR1 shown in FIG. 3 and a threshold value. FIG. 4 shows a case where the condition is satisfied when each of the calculated values ​​calculated for each detour node using the law of cosines TR1 is greater than the threshold value. Note that the condition information CND11 is similar to the condition information CND2 except that a plurality of calculated values ​​are used for the judgment, and therefore a detailed description thereof will be omitted as appropriate. For example, in the example of FIG. 4, "i" in the condition information CND11 is assigned a natural number (1, 2) up to the number "2" of detour nodes, and the information processing device 100 judges that the condition is satisfied when the calculated values ​​for both i=1 and i=2 are greater than the threshold value.

[0089] 4, "distance (Nsrc, Ndst)" corresponds to the distance (first distance) between the node Nsrc (first node) and the node Ndst (second node). The distance between the node Nsrc and the node Ndst corresponds to the length of the edge Etg, which is the target edge.

[0090] In the condition information CND11 in Figure 4, i )" is the node Nsrc (first node) and node Npass i 4. For example, when i=1, the distance between node Nsrc and node Npass1 corresponds to the length of edge Est. For example, when i=2, the distance between node Nsrc and node Npass2 is distance D12 as shown by the dotted line in FIG. 4.

[0091] In the condition information CND11 in Figure 4, "Distance (Npass i ,Ndst)" is the node Npass i This corresponds to the distance between node Npass1 (detouring node) and node Ndst (second node). For example, when i=1, the distance between node Npass1 and node Ndst is distance D11, as shown by the dotted line in Figure 4. For example, when i=2, the distance between node Npass2 and node Ndst corresponds to the length of edge Eed, which is a directed edge from node Npass2 to node Ndst.

[0092] For example, the information processing device 100 uses the law of cosines TR1 to calculate the cosine value of the angle between the side between the first node and the detour node and the side between the second node and the detour node as a calculated value. For example, the information processing device 100 uses the distance between the node Nsrc and the node Ndst, the distance between the node Nsrc and the node Npass1, and the distance between the node Npass1 and the node Ndst to calculate the cosine value of the target angle TC1 in FIG. 4 as a calculated value corresponding to the node Npass1. Furthermore, for example, the information processing device 100 uses the distance between the node Nsrc and the node Ndst, the distance between the node Nsrc and the node Npass2, and the distance between the node Npass2 and the node Ndst to calculate the cosine value of the target angle TC2 in FIG. 4 as a calculated value corresponding to the node Npass2.

[0093] The information processing device 100 determines whether or not both the calculated value corresponding to the node Npass1 and the calculated value corresponding to the node Npass2 are greater than a threshold. For example, if both the calculated value corresponding to the node Npass1 and the calculated value corresponding to the node Npass2 are greater than a threshold, the information processing device 100 determines that the edge Etg satisfies the determination condition for a shortcut edge, and deletes the edge Etg as a shortcut edge.

[0094] 4 is a deletion area. For example, the range CA11 is an area that satisfies the conditions indicated in the condition information CND11. For example, if the nodes Npass1 and Npass2, which are detour nodes, are in the range CA11, this indicates that the target edge (edge ​​Etg in FIG. 4) satisfies the conditions indicated in the condition information CND11.

[0095] For example, the information processing device 100 determines whether or not a target edge for which it has determined that a detour path exists satisfies the above-described conditions. For example, if the information processing device 100 determines that a certain target edge satisfies the above-described conditions, it determines that the target edge is a shortcut edge. For example, if the information processing device 100 determines that a certain target edge does not satisfy the above-described conditions, it determines that the target edge is not a shortcut edge. The information processing device 100 generates a second graph by deleting the target edge determined to be a shortcut edge as a shortcut edge.

[0096] While FIG. 4 illustrates an example in which the number of detour nodes is two, the number of detour nodes is not limited to two and may be three or more. For example, an upper limit (e.g., 2, 3, 10, etc.) may be set for the number of detour nodes. For example, the information processing device 100 determines that a detour path exists from the first node to the second node when it is possible to reach the node (second node) that is the end point of the target edge from the node (first node) that is the start point of the target edge via up to the upper limit of nodes. Note that, here, "being able to reach another node from one node" means, for example, that it is possible to reach the other node by tracing at least one or more edges from the first node. For example, when the upper limit is two, the information processing device 100 determines that a detour path exists from the first node to the second node when it is possible to reach the second node from the first node via two nodes, i.e., via three edges.

[0097] 4, the information processing device 100 determines whether or not there is a detour path for edge Etg, which is a directed edge from node Nsrc to node Ndst. For example, the information processing device 100 determines that there is a detour path because node Ndst can be reached from node Nsrc by passing through two detour nodes, nodes Npass1 and Npass2. For example, the information processing device 100 determines that there is a detour path from node Nsrc to node Ndst through three edges: edge Est, which is a directed edge from node Nsrc to node Npass1; edge Emd, which is a directed edge from node Npass1 to node Npass2; and edge Eed, which is a directed edge from node Npass2 to node Ndst.

[0098] As described above, the information processing device 100 determines whether a target edge is a shortcut edge based on the relationship between the first node, the second node, and each of the multiple detour nodes, and can therefore appropriately determine whether the target edge is a shortcut edge even when there are multiple detour nodes.The information processing device 100 then generates a graph from which the shortcut edge has been deleted based on the determination of the shortcut edge.In this way, the information processing device 100 generates a graph from which the target edge has been deleted as a shortcut edge if all nodes on the detour path (detour nodes) satisfy the formula indicated in the condition information CND11.This allows the information processing device 100 to appropriately generate information indicating another graph from which the edge has been deleted.

[0099] In this way, the information processing device 100 deletes a shortcut edge when all nodes (detour nodes) on the detour path belong to the deletion area. For example, the deletion area is a region (range) that corresponds to a case where the angle formed between a node (detour node) on the detour path and the starting point (e.g., the first node) or the ending point (e.g., the second node) is larger than a specified angle. Note that the number of nodes (detour nodes) on the detour path, i.e., the above-mentioned upper limit value, may be limited to a number such as 2 or 3. This enables the information processing device 100 to suppress an increase in the cost of searching for a detour path as the number of nodes (detour nodes) on the detour path increases.

[0100] Furthermore, when there are two or more detour nodes, the information processing device 100 may use various conditions other than those described above. For example, the information processing device 100 may use various conditions in addition to the condition (fifth condition) shown in the condition information CND11 in FIG. 4. An example of this point will be described below. For example, the information processing device 100 may use a condition that the distance between the starting point (first node) and the passing points (detour nodes) must increase in the order of passing. Furthermore, for example, the information processing device 100 may use a condition that each passing point (detour node) must be within the same area as the deletion area. Note that explanations of points similar to those described above will be omitted as appropriate.

[0101] First, the conditions shown in Fig. 5 will be described. Fig. 5 is a conceptual diagram showing an example of shortcut determination according to the embodiment. Note that explanations of the same points as Fig. 4 and the like will be omitted as appropriate. For example, Fig. 5 is the same as Fig. 4 except that there are three detour nodes, namely, node Npass1, node Npass2, and node Npass3, between node Nsrc, which is the first node, and node Ndst, which is the second node, and therefore explanations thereof will be omitted. Note that Fig. 5 omits illustration of edge Etg, which is a directed edge from node Nsrc to node Ndst, but will explain the case where edge Etg is the target edge as an example.

[0102] 5 shows a case where the condition information CND21 is used. For example, the condition information CND21 includes a condition that a passing point exists within the deletion region (referred to as "partial condition #11"), and a condition that the distance (Nsrc, Npass i ) ≦ distance (Nsrc, Npass i+1 ) (hereinafter referred to as "partial condition #12").

[0103] In Fig. 5, partial condition #11 is a condition that is satisfied when the detour nodes Npass1, Npass2, and Npass3 are all located within range CA21. For example, range CA21 in Fig. 5 indicates a deletion area and corresponds to range CA11 shown in Fig. 4.

[0104] 5, partial condition #12 is a condition that is satisfied when the distance between node Nsrc and node Npass2 is equal to or greater than the distance between node Nsrc and node Npass1 and equal to or less than the distance between node Nsrc and node Npass3. For example, partial condition #12 is a condition that the distance between the first node and each detour node does not become shorter even when passing through a node.

[0105] For example, the conditions corresponding to the condition information CND21 are stored in the condition information storage unit 122 (see FIG. 10). Below, an overview of the conditions shown in the condition information CND21 in FIG. 5 will be described using the schematic diagram shown on the left side of FIG.

[0106] In FIG. 5, the distance between node Nsrc and node Npass1 corresponds to the length of edge Est and is shorter than distance D21, which is the distance between node Nsrc and node Npass2. Also, distance D21 between node Nsrc and node Npass2 is shorter than distance D22, which is the distance between node Nsrc and node Npass3. Therefore, the information processing device 100 determines that partial condition #12 is satisfied. Also, in FIG. 5, the information processing device 100 determines that partial condition #11 is satisfied because detour nodes Npass1, node Npass2, and node Npass3 are all located within range CA21.

[0107] In this case, the information processing apparatus 100 determines that the edge Etg satisfies the conditions corresponding to the condition information CND21 including the partial conditions #11 and #12 and satisfies the determination conditions for a shortcut edge, and deletes the edge Etg as a shortcut edge.

[0108] Next, the conditions shown in Fig. 6 will be described. Fig. 6 is a conceptual diagram showing an example of shortcut determination according to an embodiment. Note that explanations of the same points as Fig. 4, Fig. 5, etc. will be omitted as appropriate. Note that in Fig. 6, in order to assign serial numbers corresponding to the conditions, the nodes Nsrc, Npass1, Npass2, Npass3, and Ndst will be described by assigning the subscript numbers N0 to N4 in order starting from 0. Also, Fig. 6 omits illustration of the edge Etg, which is a directed edge from the node Nsrc to the node Ndst, but will describe the case where the edge Etg is the target edge as an example.

[0109] 6 shows a case where condition information CND31 is used. For example, condition information CND31 is a condition including a condition that a passing point exists within the deletion area (referred to as "partial condition #21"), and a condition that the deletion area of ​​the path is always (Ni, Ni+2)∋Ni+1 (referred to as "partial condition #22").

[0110] In Fig. 6, partial condition #21 is a condition that is satisfied when the detour nodes Npass1, Npass2, and Npass3 are all located within range CA30. For example, range CA30 in Fig. 6 indicates the deletion area and corresponds to range CA21 shown in Fig. 5. In Fig. 6, partial condition #22 is a condition that is satisfied when all three of the following cases #1 to #3 apply.

[0111] Case #1: Node Npass1, a detour node marked "N1", is located within range CA31, which is the path deletion area defined by node Nsrc, the first node marked "N0", and node Npass2, a detour node marked "N2". Case #2: Node Npass2, a detour node marked "N2", is located within range CA32, which is the path deletion area defined by node Npass1, a detour node marked "N1", and node Npass3, a detour node marked "N3". Case #3: Node Npass3, a detour node marked "N3", is located within range CA33, which is the path deletion area defined by node Npass2, a detour node marked "N2", and node Ndst, a second node marked "N4".

[0112] For example, range CA31 in Figure 6 corresponds to the deletion area of ​​the path defined by node Nsrc and node Npass2. Note that range CA31 may be any area as long as it is defined by node Nsrc and node Npass2. For example, range CA32 in Figure 6 corresponds to the deletion area of ​​the path defined by node Npass1 and node Npass3. Note that range CA32 may be any area as long as it is defined by node Npass1 and node Npass3. For example, range CA33 in Figure 6 corresponds to the deletion area of ​​the path defined by node Npass2 and node Ndst. Note that range CA33 may be any area as long as it is defined by node Npass2 and node Ndst.

[0113] For example, the ranges CA31 to CA33 may be areas defined in the same way as the range AR41 in FIG. 3. For example, the removal areas such as the ranges CA31 to CA33 may be determined based on a predetermined value α, such as an angle, in the same way as the range AR41 in FIG. 3. The values ​​α used to determine each removal area may be the same or different. For example, each of the ranges CA31 to CA33 may be determined using the values ​​of the target angles TC31, TC32, and TC33 in FIG. 6. In this way, the values ​​α used to define the removal areas of each path may be the same or different. For example, when different values ​​are used as the values ​​α used to define the removal areas of each path, the values ​​of the target angles TC31, TC32, and TC33 in FIG. 6 may be used. Note that the above is merely an example, and the ranges CA31 to CA33 may be defined based on various information. For example, the ranges CA31 to CA33 may be areas defined in the same way as the corresponding range CA1 in FIG. 2.

[0114] For example, the conditions corresponding to the condition information CND31 are stored in the condition information storage unit 122 (see FIG. 10). Below, an overview of the conditions shown in the condition information CND31 in FIG. 6 will be described using the schematic diagram shown on the left side of FIG.

[0115] 6, the information processing device 100 determines that partial condition #21 and partial condition #22 are satisfied. Then, the information processing device 100 determines that the condition corresponding to condition information CND31 including partial condition #21 and partial condition #22 is satisfied, and that edge Etg satisfies the determination condition for a shortcut edge, and deletes edge Etg as a shortcut edge.

[0116] In the above example, the target edges are selected in ascending order of distance, but this is merely one example of the criteria, and various other criteria may be used. Examples of this point will be described below.

[0117] For example, the information processing device 100 may select target edges in descending order of distance. In this case, the information processing device 100 selects the longest directed edge from among the unselected directed edges as a processing target, starting from each node included in the first graph, and executes the shortcut edge deletion process.

[0118] Furthermore, for example, the information processing device 100 may select a target edge based on a criterion other than distance. In this case, the information processing device 100 may start from each node included in the first graph, randomly select a directed edge from unselected directed edges as a processing target, and execute shortcut edge deletion processing.

[0119] When generating the first graph, the information processing device 100 may generate a k-nearest neighbor graph as the first graph, or may generate an approximate k-nearest neighbor graph as the first graph. For example, a k-nearest neighbor graph is a graph in which edges to k nodes are connected for each node in ascending order of distance from the node. For example, an approximate k-nearest neighbor graph is a concept that includes graphs based on graphs (also called "ANNG") that approximate a k-nearest neighbor graph generated by performing a k-nearest neighbor search using a graph being generated when generating a graph index (graph). The approximate k-nearest neighbor graph generated by the above-described process may also be the k-nearest neighbor graph. In other words, the approximate k-nearest neighbor graph is a concept that includes a k-nearest neighbor graph. For generating an approximate k-nearest neighbor graph, any process such as those disclosed in Patent Document 1, Non-Patent Document 1, etc. can be adopted, and detailed description thereof will be omitted.

[0120] Furthermore, in the search process, the information processing device 100 may use start point information GINF11 relating to a tree structure as shown in FIG. 15 as start point information (start point index). FIG. 15 is a diagram showing an example of start point information used in the information processing according to the embodiment. For example, the start point information GINF11 is an index having a tree structure that can reach nodes in the first graph GR1. Note that start point information such as the start point information GINF11 may be generated by the information processing device 100, or the information processing device 100 may acquire the start point information from another external device such as the information providing device 50.

[0121] When the information processing device 100 acquires start point information from another external device, it provides a graph to the other external device. Then, the information processing device 100 acquires start point information generated by the other external device that received the graph from the other external device. For example, when the information processing device 100 acquires start point information GINF11 from the information providing device 50, it transmits a first graph GR1 to the information providing device 50. Then, the information processing device 100 acquires start point information GINF11 generated by the information providing device 50 that received the first graph GR1, from the information providing device 50.

[0122] Furthermore, the information processing device 100 may determine an origin node using origin information GINF11 such as that shown in FIG. 15. In the example of FIG. 15, the information processing device 100 determines an origin node corresponding to query QE1 based on the origin information GINF11. The query QE1 may be a node corresponding to a newly added object or a target for search using the first graph GR1. That is, the information processing device 100 determines an origin node using the origin information GINF11 when generating a graph or performing a search.

[0123] Specifically, the information processing device 100 determines an origin node using the origin information GINF11 stored in the storage unit 120 (see FIG. 8). For example, the information processing device 100 determines (specifies) an origin node that is a candidate for a neighborhood of the origin information GINF11 by tracing the origin information GINF11 from top to bottom (route RT) based on the query QE1. This allows the information processing device 100 to efficiently determine an origin node corresponding to the search query (query QE1). For example, the information processing device 100 can quickly determine an appropriate origin node corresponding to the query QE1, which is the target node.

[0124] Note that the information processing device 100 is not limited to the above and may use various starting point indexes. That is, the starting point information (starting point index) shown in the example of FIG. 15 is an example, and the information processing device 100 may search graph information using various starting point information. The information processing device 100 may generate a starting point index used to determine a starting point node during a search. For example, the information processing device 100 generates a search index (starting point information) for quickly searching a high-dimensional vector. The high-dimensional vector here may be, for example, a vector of several hundred to several thousand dimensions, or a vector of even more dimensions. Note that the starting point index as described above is an example, and the information processing device 100 may generate a starting point index of any data structure as long as it is possible to quickly identify a query in a graph.

[0125] [2. Information Processing System Configuration] As shown in Fig. 7, the information processing system 1 includes a terminal device 10, an information providing device 50, and an information processing device 100. The terminal device 10, the information providing device 50, and the information processing device 100 are connected to each other via a predetermined network N so as to be able to communicate with each other via wired or wireless communication. Fig. 7 is a diagram showing an example of the configuration of the information processing system according to the embodiment. Note that the information processing system 1 shown in Fig. 7 may include a plurality of terminal devices 10, a plurality of information providing devices 50, and a plurality of information processing devices 100.

[0126] The terminal device 10 is an information processing device used by a user. The terminal device 10 accepts various operations by the user. In the following, the terminal device 10 may be referred to as a user. In other words, in the following, the user may also be read as the terminal device 10. The above-mentioned terminal device 10 may be realized, for example, by a smartphone, a tablet terminal, a notebook PC (Personal Computer), a desktop PC, a mobile phone, a PDA (Personal Digital Assistant), or the like.

[0127] The information providing device 50 is an information processing device that stores information for providing various information to users, etc. For example, the information providing device 50 stores object IDs based on character information, etc. collected from various external devices, such as web servers. For example, the information providing device 50 is an information processing device that provides an image search service to users, etc. For example, the information providing device 50 stores various pieces of information for providing the image search service. For example, the information providing device 50 provides the information processing device 100 with vector information corresponding to an image that is a target of the image search service. Furthermore, the information providing device 50 transmits a query to the information processing device 100, thereby receiving from the information processing device 100 an object ID, etc., indicating an image corresponding to the query.

[0128] The information processing device 100 is a computer that executes a generation process that generates information about graphs. The information processing device 100 is a generation device that generates a second graph using a first graph. The information processing device 100 selects, as a target edge, one directed edge that has not been selected as a processing target, from among directed edges starting from each of a plurality of nodes included in the first graph, and executes a shortcut edge deletion process in which the selected target edge for each of the plurality of nodes is determined as a shortcut edge to be deleted, thereby generating second information that indicates a second graph in which the directed edge has been deleted from the first graph.

[0129] The information processing device 100 executes a shortcut edge deletion process using a shortcut edge determination condition. When the relationship between, among edges included in the first graph, a first directed edge having a first node as a start point and a second node as an end point, a second directed edge having the first node as a start point and a third node different from the second node as an end point, and a third directed edge having the third node as a start point and the second node as an end point satisfies the shortcut edge determination condition, the information processing device 100 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge.

[0130] For example, when the information processing device 100 receives query information (hereinafter also simply referred to as "query") from a terminal device, it searches for an object (such as vector information) similar to the query and provides the terminal device with the search results. Furthermore, for example, the data that the information processing device 100 provides to the terminal device may be the data itself, such as image information, or may be information for referencing corresponding data, such as a URL (Uniform Resource Locator). Furthermore, the query and search target data may be any type of data, such as image, audio, or text data. In this embodiment, a case where the information processing device 100 searches for an image will be described as an example.

[0131] 3. Configuration of Information Processing Device Next, the configuration of the information processing device 100 according to the embodiment will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of the configuration of the information processing device 100 according to the embodiment. As shown in Fig. 8, the information processing device 100 has a communication unit 110, a storage unit 120, and a control unit 130. Note that the information processing device 100 may also have an input unit (e.g., a keyboard, a mouse, etc.) that accepts various operations from an administrator of the information processing device 100, and a display unit (e.g., a liquid crystal display, etc.) that displays various information.

[0132] (Communication unit 110) The communication unit 110 is realized by, for example, a network interface card (NIC) etc. The communication unit 110 is connected to a network (for example, network N in FIG. 7) by wire or wirelessly, and transmits and receives information to and from the terminal device 10 and the information providing device 50.

[0133] (Storage unit 120) The storage unit 120 is realized by, for example, a semiconductor memory element such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disk. As shown in FIG. 8 , the storage unit 120 according to the embodiment includes an object information storage unit 121, a condition information storage unit 122, a reference information storage unit 123, and a graph information storage unit 124.

[0134] (Object information storage unit 121) The object information storage unit 121 according to the embodiment stores various information related to objects. For example, the object information storage unit 121 stores object IDs and vector data. FIG. 9 is a diagram illustrating an example of the object information storage unit according to the embodiment. The object information storage unit 121 shown in FIG. 9 includes items such as "object ID" and "vector information."

[0135] "Object ID" indicates identification information for identifying an object. "Vector information" indicates vector information corresponding to an object identified by the object ID. That is, in the example of FIG. 9, vector data (vector information) corresponding to an object is registered in association with the object ID that identifies the object.

[0136] For example, in the example of FIG. 9, an object (target) identified by the ID "OB1" is associated with multidimensional vector information of "10, 24, 51, 2...".

[0137] The object information storage unit 121 is not limited to the above, and may store various types of information depending on the purpose.

[0138] (Condition information storage unit 122) The condition information storage unit 122 according to the embodiment stores various information related to conditions related to difficulty of being searched. Fig. 10 is a diagram illustrating an example of the condition information storage unit according to the embodiment. The condition information storage unit 122 shown in Fig. 10 has items such as "condition ID" and "condition information."

[0139] "Condition ID" indicates information that identifies a condition. "Condition information" stores information used to determine (decide) whether or not to delete an edge as a shortcut edge. Figure 10 shows an example in which conceptual information such as "CND1" is stored in "Condition information," but in reality, information indicating specific conditions such as a judgment formula as shown in parentheses, or a file path name indicating the storage location, etc., is stored.

[0140] In the example of Fig. 10, the condition (condition CD1) identified by the condition ID "CD1" indicates a condition as indicated in the condition information CND1. For example, the condition CD1 indicates that the second distance is smaller than the first distance, the third distance is smaller than the first distance, and the sum of the second distance and the third distance is smaller than the value obtained by multiplying the first distance by a predetermined coefficient α. In other words, the condition CD1 is a condition for determining a target edge as a shortcut edge when all of the following conditions are satisfied: the second distance is smaller than the first distance, the third distance is smaller than the first distance, and the sum of the second distance and the third distance is smaller than the value obtained by multiplying the first distance by the predetermined coefficient α.

[0141] Furthermore, the condition (condition CD2) identified by the condition ID "CD2" indicates a condition as indicated in the condition information CND2. For example, the condition CD2 is that a calculated value calculated using the law of cosines is greater than a threshold value. That is, the condition CD2 is a condition for determining a target edge as a shortcut edge when a calculated value calculated based on the first distance, the second distance, the third distance, and the law of cosines is greater than a threshold value. For example, the condition CD2 is a condition for determining a target edge as a shortcut edge when a calculated value that is the cosine value of the angle formed by the second directed edge corresponding to the second distance and the third directed edge corresponding to the third distance is greater than a threshold value. For example, the condition CD2 is a condition using a determination formula as indicated in the condition information CND2 in FIG. 1.

[0142] The condition information storage unit 122 may store various information according to the purpose, not limited to the above. For example, the condition information storage unit 122 may store information indicating which condition is to be used. For example, the condition information storage unit 122 may store information indicating the designation of the condition to be used, which is set by an administrator of the information processing device 100 or the like.

[0143] (Reference information storage unit 123) The criterion information storage unit 123 according to the embodiment stores various pieces of information related to the criteria for various processes. For example, the criterion information storage unit 123 stores various pieces of information related to the criteria for the selection order of edges. FIG. 11 is a diagram illustrating an example of the criterion information storage unit according to the embodiment. The criterion information storage unit 123 illustrated in FIG. 11 includes items such as "criterion ID," "target," and "criterion content." For example, the criterion information storage unit 123 stores various pieces of information related to the criteria and conditions for executing various processes.

[0144] "Criteria ID" indicates information that identifies the criteria. "Target" indicates the target of the criteria for the edge selection order. "Criteria content" indicates the specific content used as the corresponding criteria. Note that in Figure 11, "criteria content" is illustrated as abstract symbols such as "CINF11," "CINF12," and "CINF13," but it is assumed that it is specific information or conditional expressions that serve as criteria.

[0145] In FIG. 11, the criterion identified by the criterion ID "CR11" (criterion CR11) indicates that it is a criterion for a selection order based on distance. The object of criterion CR11 is an edge, and its criterion content is "CINF11." The criterion content CINF11 in FIG. 11 indicates that the selection order of edges is determined in ascending order, that is, from shortest edge to longest edge.

[0146] In FIG. 11, the criterion identified by the criterion ID "CR12" (criterion CR12) indicates that it is a criterion for a selection order based on distance. The object of criterion CR12 is an edge, and its criterion content is "CINF12." The criterion content CINF12 in FIG. 11 indicates that the selection order of edges is determined in descending order, i.e., from longest edge to oldest edge.

[0147] In FIG. 11, the criterion identified by the criterion ID "CR13" (criterion CR13) indicates that there is no specific target. The criterion content of criterion CR13 is "CINF13." The criterion content CINF13 in FIG. 11 indicates that the edge selection order is determined randomly.

[0148] The criteria information storage unit 123 may store various information depending on the purpose, not limited to the above. For example, the criteria information storage unit 123 may store information indicating which criteria to use. For example, the criteria information storage unit 123 may store information indicating the designation of the criteria to be used, which is set by an administrator of the information processing device 100 or the like.

[0149] (Graph information storage unit 124) The graph information storage unit 124 according to the embodiment stores various types of information related to graphs (graph data). For example, the graph information storage unit 124 stores graph information. FIG. 12 illustrates a case in which the graph information storage unit 124 stores a first graph and second information. For example, FIG. 12 illustrates an example in which a graph (first graph) that is a target of shortcut edge deletion processing and a "flag" that is second information corresponding to the first graph are stored. For example, the graph information storage unit 124 stores graph data of a k-nearest neighbor graph as the first graph. For example, the graph information storage unit 124 stores graph data of an approximate k-nearest neighbor graph as the first graph. For example, the graph information storage unit 124 stores data of the first graph GR1 in FIG. 1.

[0150] Note that the information processing device 100 may store a second graph separately from the first graph. In this case, the storage unit 120 may have a second graph information storage unit that stores the second graph, and the graph information storage unit 124 may not store the second information (information corresponding to the item "flag" in FIG. 12). The second graph information storage unit stores a graph (second graph) in which edges determined to be shortcut edges (edges flagged as "0" in FIG. 12) have been deleted from the first graph described in the graph information storage unit 124.

[0151] 12 is a diagram illustrating an example of a graph information storage unit according to an embodiment. The graph information storage unit 124 illustrated in FIG. 12 has items such as a "node ID," an "object ID," and "directed edge information." The "directed edge information" includes information such as an "edge ID," a "reference destination," and a "flag (second information)."

[0152] "Node ID" indicates identification information for identifying each node (object) in the graph data, and "object ID" indicates identification information for identifying an object.

[0153] Furthermore, "directed edge information" indicates information about edges connected to corresponding nodes. In the example of FIG. 12, "directed edge information" indicates information about output edges output from corresponding nodes. Furthermore, "edge ID" indicates identification information for identifying edges connecting nodes. Furthermore, "reference destination" indicates information indicating reference destinations (nodes) connected by edges. That is, in the example of FIG. 12, for a node ID that identifies a node, information identifying an object (target) corresponding to that node and reference destinations (nodes) to which a directed edge (output edge) from that node is connected are associated and registered.

[0154] Furthermore, "flag (second information)" indicates the second information generated by the shortcut edge deletion process. For example, "flag (second information)" indicates whether the edge is valid or invalid in the second graph. For example, "flag (second information)" indicates the case where "1" is assigned if the edge is valid in the second graph, and "0" is assigned if the edge is invalid.

[0155] In FIG. 12, the "flag (second information)" indicates whether or not the edge has been determined to be a shortcut edge by the shortcut edge deletion process. For example, if the edge has been determined not to be a shortcut edge by the shortcut edge deletion process, i.e., if the edge has not been deleted in the second graph but is still present in the second graph, then "1" is stored in the "flag (second information)." Also, if the edge has been determined to be a shortcut edge by the shortcut edge deletion process, i.e., if the edge has been deleted in the second graph but is not present in the second graph, then "0" is stored in the "flag (second information)."

[0156] 12 indicates a state after the generation of the second information is completed, and indicates a state in which all edges are assigned either "1" indicating valid or "0" indicating invalid. However, information indicating unprocessed may be associated with an edge before it becomes a target edge of the shortcut edge deletion process. For example, in the "flag (second information)", a flag indicating unprocessed (e.g., any number other than 0 or 1, Null, etc.) may be assigned to an edge before it becomes a target edge of the shortcut edge deletion process, i.e., an unprocessed (unselected) edge. This enables the information processing device 100 to generate information for identifying the structure of the second graph using the second information, and to identify the processing status of the second information generation process, such as which edges have been processed.

[0157] The example in FIG. 12 indicates that a node (node ​​N1) identified by node ID "N1" corresponds to an object (target) identified by object ID "OB1." It also indicates that an edge (edge ​​E1) identified by edge ID "E1" is connected from node N1 to a node (node ​​N2) identified by node ID "N2." That is, the example in FIG. 12 indicates that node N2 can be traced from node N1 in the first graph via edge E1. The flag for edge E1 is "1," indicating that edge E1 has not been deleted as a shortcut edge and is also present in the second graph. That is, the example in FIG. 12 indicates that node N2 can also be traced from node N1 in the second graph via edge E1.

[0158] Also, it indicates that from node N1, an edge (edge ​​E3) identified by edge ID "E3" is connected to a node (node ​​N3) identified by node ID "N3". That is, in the example of FIG. 12, it indicates that it is possible to trace from node N1 in the first graph to node N3 via edge E3. Also, the flag of edge E3 is "0", indicating that edge E3 has been deleted as a shortcut edge and does not exist in the second graph. That is, in the example of FIG. 12, it indicates that it is not possible to directly trace from node N1 to node N3 in the second graph via edge E3.

[0159] The graph information storage unit 124 is not limited to the above, and may store various types of information depending on the purpose. For example, the graph information storage unit 124 may store the lengths of edges connecting each node (vector). That is, the graph information storage unit 124 may store information indicating the distance between each node (vector). Furthermore, for example, the graph information storage unit 124 may store information indicating the number of input edges to each node.

[0160] The graph data may also include a program module that receives a query as input, searches for nodes by tracing edges in the graph data, and extracts and outputs nodes similar to the query. That is, the graph data may be intended for use as a program module that performs search processing using a graph. For example, the graph data may be a program that, when vector data is input as a query, extracts and outputs nodes corresponding to vector data similar to the vector data from a graph. For example, the graph data may be data used as a program module that searches for images similar to a query image. For example, the graph data causes a computer to function to extract and output nodes similar to the query in a graph based on an input query.

[0161] (control unit 130) Returning to the explanation of Fig. 8, the control unit 130 is a controller, and is realized by, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), or the like, executing various programs (corresponding to examples of information processing programs) stored in a storage device inside the information processing device 100 using a RAM as a work area. The control unit 130 is also a controller, and is realized by, for example, an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0162] 8, control unit 130 has an acquisition unit 131, a search unit 132, a generation unit 133, and a provision unit 134, and realizes or executes the functions and actions of information processing described below. Note that the internal configuration of control unit 130 is not limited to the configuration shown in FIG. 8, and other configurations may be used as long as they perform the information processing described below.

[0163] (Acquisition part 131) The acquisition unit 131 acquires various types of information. For example, the acquisition unit 131 acquires various types of information from the storage unit 120. For example, the acquisition unit 131 acquires various types of information from the object information storage unit 121, the condition information storage unit 122, the reference information storage unit 123, the graph information storage unit 124, etc. The acquisition unit 131 also acquires various types of information from an external information processing device.

[0164] The acquisition unit 131 acquires first graph information indicating a first graph in which a plurality of nodes corresponding to a plurality of objects to be searched are connected by edges, and acquires condition information indicating a determination condition for a shortcut edge to be deleted in the graph.

[0165] The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on the positional relationships between the first node, the second node, and the third node. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on a first distance between the first node and the second node, a second distance between the first node and the third node, and a third distance between the second node and the third node.

[0166] The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on a comparison between the second distance and the first distance, a comparison between the third distance and the first distance, and a comparison between a combination of the second distance and the third distance and the first distance. The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on the second distance being smaller than the first distance, the third distance being smaller than the first distance, and the total distance obtained by adding the second distance and the third distance being smaller than a value obtained by multiplying the first distance by a predetermined coefficient.

[0167] The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge using the first distance, the second distance, and the third distance and a theorem related to triangles. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge using the first distance, the second distance, and the third distance and a function related to triangles. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on a comparison between a calculated value and a threshold.

[0168] The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on the first distance, the second distance, the third distance, and the law of cosines. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on the first distance, the second distance, the third distance, and a cosine function. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on a threshold value corresponding to a cosine value.

[0169] The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on a comparison between the second distance and the first distance, a comparison between the third distance and the first distance, and the first, second, and third distances and a function related to a triangle. The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on the second distance being smaller than the first distance, the third distance being smaller than the first distance, and a value calculated based on the first, second, and third distances and the cosine function being larger than a threshold.

[0170] The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on a comparison between the second distance and the first distance, a comparison between the third distance and the first distance, and the first, second, and third distances and a theorem related to triangles. The acquisition unit 131 acquires condition information that is used as a determination condition for a shortcut edge based on the second distance being smaller than the first distance, the third distance being smaller than the first distance, and a value calculated based on the first, second, and third distances and the cosine law being larger than a threshold.

[0171] The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on the distances between the detour node, the first node, and the second node. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge using the distance between the first node and the second node, the distance between the first node and the detour node, the distance between the second node and the detour node, and a theorem related to triangles. The acquisition unit 131 acquires condition information indicating a determination condition for a shortcut edge based on the distance between the first node and the second node, the distance between the first node and the detour node, the distance between the second node and the detour node, and the cosine theorem.

[0172] The acquiring unit 131 acquires first graph information from the graph information storage unit 124. The acquiring unit 131 acquires the first graph, which is a k-nearest neighbor graph. The acquiring unit 131 acquires the first graph, which is an approximate k-nearest neighbor graph. For example, the information processing device 100 acquires the first graph GR1 in FIG. 1. For example, the information processing device 100 may acquire first graph information, such as the first graph GR1, from an external device, such as an information providing device 50.

[0173] For example, the acquisition unit 131 acquires information related to a search query. For example, the acquisition unit 131 acquires a search query related to an image search. For example, the acquisition unit 131 acquires a query from the terminal device 10 to be used. For example, the acquisition unit 131 acquires the query from the information providing device 50 that has accepted the query from the terminal device 10 to be used.

[0174] (Search unit 132) The search unit 132 searches for various types of information. The search unit 132 executes a search process using a graph. The search unit 132 functions as an extraction unit that extracts various types of information. The search unit 132 extracts various types of information. For example, the search unit 132 functions as a search unit that provides a search service related to objects. The search unit 132 searches for various types of information. The search unit 132 searches for various types of information. For example, the search unit 132 searches for an object by searching graph data.

[0175] The search unit 132 executes a search process for searching a graph in response to an instruction from the generation unit 133. For example, when information indicating an object (node) to be processed is given to the search unit 132, the search unit 132 extracts an object (node) similar to the target object (node) by searching the graph based on the processing procedure shown in Fig. 13. The search unit 132 sets one object (node) out of multiple objects (nodes) as a target object (target node) and extracts neighboring objects (neighboring nodes) of the target object (target node) by performing a search process for searching the graph.

[0176] For example, the search unit 132 extracts various pieces of information from the object information storage unit 121, the condition information storage unit 122, the reference information storage unit 123, the graph information storage unit 124, etc. For example, the search unit 132 acquires starting point information GINF11 from the storage unit 120. For example, the search unit 132 extracts various pieces of information based on the information acquired by the acquisition unit 131.

[0177] The search unit 132 extracts a predetermined number of nodes (for example, a search count) from the plurality of nodes as neighboring nodes. The search unit 132 performs a search process to extract neighboring nodes by searching a graph. The search unit 132 performs a search process to extract a predetermined number of nodes from the plurality of nodes as neighboring nodes based on their relationship with the added node. The search unit 132 performs a search process to extract a predetermined number of nodes as neighboring nodes based on the distance between each of the plurality of nodes and the added node.

[0178] For example, when a query is acquired by the acquisition unit 131, the search unit 132 searches the graph data to search for an object similar to the query. For example, the search unit 132 extracts an object similar to the query by searching the graph data. For example, the search unit 132 extracts an object similar to the query by searching the graph data based on the processing procedure shown in FIG. 13 .

[0179] The search unit 132 extracts nearby nodes by searching the graph. The search unit 132 extracts a predetermined number of nearby nodes by searching the graph using the added node as a query. The search unit 132 extracts nearby nodes by searching the graph through a search process such as that shown in FIG. 13.

[0180] For example, the search unit 132 executes the search process using the generated graph GR11. For example, the search unit 132 executes the search process using the generated graph GR1.

[0181] (Generation unit 133) The generation unit 133 executes various processes related to graph generation. The generation unit 133 executes generation processing to generate a graph. The generation unit 133 executes processing related to deleting shortcuts. The generation unit 133 generates information indicating a graph from which shortcuts have been deleted. The generation unit 133 executes selection processing to select nodes (objects) to be processed. The generation unit 133 instructs the search unit 132 to execute search processing, and obtains search results from the search unit 132.

[0182] The generation unit 133 generates various types of information. For example, the generation unit 133 generates various types of information (data) from information (data) stored in the storage unit 120. For example, the generation unit 133 generates various types of information from the object information storage unit 121, the condition information storage unit 122, the reference information storage unit 123, the graph information storage unit 124, etc.

[0183] For example, the generating unit 133 generates various pieces of information based on the information acquired by the acquiring unit 131. The generating unit 133 uses the results of the search process performed by the searching unit 132 to generate various pieces of information.

[0184] If the relationships among the edges included in the first graph, including a first directed edge having a first node as a start point and a second node as an end point, a second directed edge having the first node as a start point and a third node different from the second node as an end point, and a third directed edge having the third node as a start point and the second node as an end point, satisfy a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge. If the positional relationships among the first node, the second node, and the third node satisfy the determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge.

[0185] The generation unit 133 executes a shortcut edge deletion process for the target edge based on the first directed edge that is the target edge, the second directed edge that has as its start point the first node that is the start point of the first directed edge and as its end point a third node different from the second node that is the end point of the first directed edge, and the third directed edge that has as its start point the third node and as its end point the second node. If the relationship between the first distance, the second distance, and the third distance satisfies the shortcut edge determination condition, the generation unit 133 generates second information that indicates a second graph in which the first directed edge has been deleted as a shortcut edge.

[0186] If the comparison between the second distance and the first distance, the comparison between the third distance and the first distance, and the comparison between the combination of the second distance and the third distance and the first distance satisfy the criteria for determining a shortcut edge, the generation unit 133 generates second information indicating the second graph from which the first directed edge has been deleted as a shortcut edge.If the second distance is smaller than the first distance, the third distance is smaller than the first distance, and the total distance obtained by adding the second distance and the third distance is smaller than the value obtained by multiplying the first distance by a predetermined coefficient, the generation unit 133 generates second information indicating the second graph from which the first directed edge has been deleted as a shortcut edge.

[0187] If a calculated value calculated based on the first distance, the second distance, the third distance, and the theorem satisfies a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and deleted.If a calculated value calculated based on the first distance, the second distance, the third distance, and the function satisfies a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and deleted.If the calculated value is greater than a threshold, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and deleted.

[0188] If a calculated value calculated based on the first distance, the second distance, the third distance, and the law of cosines satisfies a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge. The generation unit 133 uses the law of cosines to calculate a calculated value that is the cosine of the angle between the second directed edge corresponding to the second distance and the third directed edge corresponding to the third distance, and if the calculated value satisfies the determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge.

[0189] If a calculated value calculated based on the first distance, the second distance, the third distance, and the cosine function satisfies a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and has been deleted. The generation unit 133 uses the cosine function to calculate a calculated value that is the cosine of the angle between the second directed edge corresponding to the second distance and the third directed edge corresponding to the third distance, and if the calculated value satisfies the determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and has been deleted. If the calculated value is greater than a threshold, the generation unit 133 generates second information indicating a second graph in which the first directed edge has been deemed to be a shortcut edge and has been deleted.

[0190] The generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge if the comparison between the second distance and the first distance, the comparison between the third distance and the first distance, and a calculation value calculated based on the first distance, the second distance, the third distance, and the law of cosines satisfy a determination condition for a shortcut edge. The generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge if the second distance is smaller than the first distance, the third distance is smaller than the first distance, and the calculation value calculated based on the first distance, the second distance, the third distance, and the law of cosines is larger than a threshold.

[0191] The generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge when the comparison between the second distance and the first distance, the comparison between the third distance and the first distance, and a calculation value calculated based on the first distance, the second distance, the third distance, and the function satisfy a determination condition for a shortcut edge. The generation unit 133 generates second information indicating a second graph in which the first directed edge has been deleted as a shortcut edge when the second distance is smaller than the first distance, the third distance is smaller than the first distance, and the calculation value calculated based on the first distance, the second distance, the third distance, and the cosine function is larger than a threshold.

[0192] The generation unit 133 generates second information indicating a second graph in which a directed edge having the first node as a start point and the second node as an end point is a target edge among the edges included in the first graph, and in which the relationship between each of a plurality of detour nodes including at least a third node connected to the directed edge having the first node as a start point and a fourth node that is a node that is the start point of the directed edge having the second node as an end point and is reachable from the third node, the first node, and the second node satisfies the determination condition for a shortcut edge, and the target edge is deemed to be a shortcut edge and deleted.

[0193] The generation unit 133 generates second information indicating a second graph in which the target edge is deemed to be a shortcut edge and deleted when the relationships among the distance between the first node and the second node, the distance between the first node and each of the plurality of detour nodes, and the distance between the second node and each of the plurality of detour nodes satisfy a shortcut edge determination condition. The generation unit 133 generates second information indicating a second graph in which the target edge is deemed to be a shortcut edge and deleted when the relationships among the distance between the first node and the second node, the distance between the first node and the third node, and the distance between the second node and the third node, and the relationships among the distance between the first node and the second node, the distance between the first node and the fourth node, and the distance between the second node and the fourth node satisfy a shortcut edge determination condition.

[0194] If the relationships among the distance between the first node and the second node, the distance between the first node and the fifth node, and the distance between the second node and the fifth node satisfy a shortcut edge determination condition, the generation unit 133 generates second information indicating a second graph in which the target edge has been deleted as a shortcut edge.If each of a plurality of calculated values ​​calculated based on the distance between the first node and the second node, the distance between the first node and each of the plurality of detour nodes, and the distance between the second node and each of the plurality of detour nodes, and the theorem, satisfy a shortcut edge determination condition, the generation unit 133 generates second information indicating a second graph in which the target edge has been deleted as a shortcut edge.

[0195] If each of the plurality of calculated values ​​is greater than a threshold, the generation unit 133 generates second information indicating a second graph in which the target edge is a shortcut edge and has been deleted. If each of the plurality of calculated values ​​calculated based on the distance between the first node and the second node, the distance between the first node and each of the plurality of detour nodes, and the distance between the second node and each of the plurality of detour nodes, and the law of cosines, satisfies a determination condition for a shortcut edge, the generation unit 133 generates second information indicating a second graph in which the target edge is a shortcut edge and has been deleted.

[0196] The generation unit 133 uses the law of cosines to calculate multiple calculated values ​​that are the cosine values ​​of the angles between the edge between the first node and each of the multiple detour nodes and the edge between the second node and each of the multiple detour nodes, and if the calculated values ​​satisfy the determination condition for a shortcut edge, generates second information that indicates a second graph in which the target edge has been deleted as a shortcut edge.If each of the multiple calculated values ​​is greater than a threshold, the generation unit 133 generates second information that indicates a second graph in which the target edge has been deleted as a shortcut edge.

[0197] The generation unit 133 selects, as a target edge, one directed edge that has not been selected as a processing target from among the directed edges that start at each of the multiple nodes included in the first graph, and executes a shortcut edge deletion process in which the target edge selected for each of the multiple nodes is determined to be a shortcut edge for deletion, thereby generating second information that indicates a second graph in which the directed edge has been deleted from the first graph. The generation unit 133 generates the second information by selecting a target edge for each of the multiple nodes, with the directed edge selected as a processing target for executing the shortcut edge deletion process being treated as a selected directed edge, and repeatedly executing the shortcut edge deletion process.

[0198] The generation unit 133 generates second information by repeatedly executing the shortcut edge deletion process until there are no unselected directed edges as processing targets for each of the plurality of nodes. The generation unit 133 selects a target edge for each of the plurality of nodes based on the selection criteria for selecting the target edge, and executes the shortcut edge deletion process.

[0199] The generation unit 133 starts from each node included in the first graph, selects the shortest directed edge among the unselected directed edges as the processing target, and executes the shortcut edge deletion process. The generation unit 133 starts from each node included in the first graph, selects the longest directed edge among the unselected directed edges as the processing target, and executes the shortcut edge deletion process.

[0200] The generation unit 133 starts from each node included in the first graph, randomly selects a directed edge from unselected directed edges as a processing target, and executes shortcut edge deletion processing. The generation unit 133 executes shortcut edge deletion processing based on the shortcut edge determination condition indicated by the condition information.

[0201] The generation unit 133 generates, as the second information, information for identifying edges that correspond to shortcut edges among the edges included in the first graph. The generation unit 133 generates, as the second information, flags that are associated with each edge included in the first graph and indicate whether or not the edge is a shortcut edge. The generation unit 133 generates, as the second information, graph information from which the shortcut edges included in the first graph have been deleted.

[0202] (Provider 134) The providing unit 134 provides various types of information. For example, the providing unit 134 transmits various types of information to the terminal device 10 or the information providing device 50. For example, the providing unit 134 provides an object ID corresponding to a query as a search result. For example, the providing unit 134 provides the object ID searched for by the searching unit 132 to the information providing device 50. For example, the providing unit 134 provides the object ID extracted by the searching unit 132 through a search to the information providing device 50. The providing unit 134 provides the object ID extracted by the searching unit 132 to the information providing device 50 as information indicating a vector corresponding to the query.

[0203] Furthermore, the providing unit 134 may provide the graph generated by the generating unit 133 to an external information processing device. For example, the providing unit 134 may transmit the graph GR11 generated by the generating unit 133 to the information providing device 50.

[0204] [4. Information processing flow] Next, the procedure of information processing by the information processing system 1 according to the embodiment will be described with reference to Fig. 13 and Fig. 14. Fig. 13 and Fig. 14 are flowcharts showing an example of information processing according to the embodiment.

[0205] First, Fig. 13 will be described. As shown in Fig. 13, the information processing device 100 acquires first graph information indicating a first graph in which a plurality of nodes corresponding to a plurality of objects to be searched are connected by edges (step S101). For example, the information processing device 100 acquires the first graph from the information providing device 50.

[0206] Then, the information processing device 100 acquires condition information indicating a determination condition for the shortcut edge to be deleted in the graph (step S102). For example, the information processing device 100 acquires the condition information from the information providing device 50.

[0207] Then, when the relationships among the edges included in the first graph, a first directed edge having the first node as its start point and the second node as its end point, a second directed edge having the first node as its start point and a third node different from the second node as its end point, and a third directed edge having the third node as its start point and the second node as its end point, satisfy the determination condition for a shortcut edge, the information processing device 100 generates second information indicating the second graph in which the first directed edge has been deleted as a shortcut edge (step S103). For example, the information processing device 100 generates, as the second information, a flag indicating whether each edge in the first graph has been deleted.

[0208] First, Fig. 14 will be described. As shown in Fig. 14, the information processing device 100 acquires first graph information indicating a first graph in which a plurality of nodes corresponding to a plurality of objects to be searched are connected by edges (step S201). For example, the information processing device 100 acquires the first graph from the information providing device 50.

[0209] Then, the information processing device 100 selects, as a target edge, one directed edge that has not been selected as a processing target from among the directed edges starting from each of the multiple nodes included in the first graph, and performs a shortcut edge deletion process in which the selected target edge for each of the multiple nodes is determined to be a shortcut edge for deletion, thereby generating second information indicating a second graph in which the directed edge has been deleted from the first graph (step S103). For example, the information processing device 100 generates, as the second information, a flag indicating whether each edge in the first graph has been deleted.

[0210] [5. Search Examples] Here, an example of a search using the graph data described above will be shown. Note that a search using the generated graph data is not limited to the procedure described below, and various other procedures may be used. This point will be described using FIG. 16 as an example. FIG. 16 is a flowchart showing an example of a search process using graph data. The search process described below is performed by the search unit 132 of the information processing device 100. Furthermore, the term "object" below may be replaced with "node." For example, the information processing device 100 (e.g., the search unit 132) performs the search process. The search query in the process described below may be a target node, an object designated by a user, or the like.

[0211] Here, the neighborhood object set N(G, y) is a set of neighborhood objects associated with the node y by an edge attached thereto. "G" may be predetermined graph data (for example, the first graph GR1, etc.). For example, the information processing device 100 executes a k-nearest neighbor search process.

[0212] For example, the information processing device 100 sets the radius r of the hypersphere to ∞ (infinity) (step S300) and extracts a subset S from an existing object set (step S301). For example, the information processing device 100 may extract an object (node) selected as a root node as the subset S. Furthermore, for example, the hypersphere is a virtual sphere indicating the search range. Note that the objects included in the object set S extracted in step S301 are also included in the initial set of object set R of the search results.

[0213] Next, when the search query object is y, the information processing device 100 extracts the object having the shortest distance from the search query object y from among the objects included in the object set S, and sets the extracted object as object s (step S302). For example, if the object (node) selected as the root node is the only element of S, the information processing device 100 extracts the root node as object s as a result. Next, the information processing device 100 excludes object s from the object set S (step S303).

[0214] Next, the information processing device 100 determines whether the distance d(s, y) between object s and object y exceeds r(1+ε) (step S304). Here, ε is an extension factor, and r(1+ε) is a value indicating the radius of the search range (only nodes within this range are searched. Precision can be improved by making it larger than the search range). If the distance d(s, y) between object s and object y exceeds r(1+ε) (step S304: Yes), the information processing device 100 outputs object set R as a neighborhood object set of object y (step S305), and ends the process.

[0215] If the distance d(s, y) between object s and search query object y does not exceed r(1+ε) (step S304: No), the information processing device 100 selects one object that is not included in object set C from among the objects that are elements of the neighborhood object set N(G, s) of object s, and stores the selected object u in object set C (step S306). Object set C is provided for convenience to avoid duplicate searches, and is set to an empty set at the start of processing.

[0216] Next, the information processing device 100 determines whether the distance d(u, y) between the object u and the object y is r(1+ε) or less (step S307). If the distance d(u, y) between the object u and the object y is r(1+ε) or less (step S307: Yes), the information processing device 100 adds the object u to the object set S (step S308). If the distance d(u, y) between the object u and the object y is not r(1+ε) or less (step S307: No), the information processing device 100 performs the determination (processing) of step S309.

[0217] Next, the information processing device 100 determines whether the distance d(u, y) between the object u and the object y is equal to or less than r (step S309). If the distance d(u, y) between the object u and the object y exceeds r, the information processing device 100 performs the determination (processing) of step S315. If the distance d(u, y) between the object u and the object y is not equal to or less than r (step S309: No), the information processing device 100 performs the determination (processing) of step S315.

[0218] If the distance d(u, y) between object u and object y is less than or equal to r (step S309: Yes), the information processing device 100 adds object u to object set R (step S310). Then, the information processing device 100 determines whether the number of objects included in object set R exceeds ks (step S311). The predetermined number ks is an arbitrarily determined natural number. For example, ks may be the number of candidates. For example, it may be an arbitrary value such as ks=2. If the number of objects included in object set R does not exceed ks (step S311: No), the information processing device 100 performs the determination (processing) of step S313.

[0219] If the number of objects included in object set R exceeds ks (step S311: Yes), information processing device 100 excludes from object set R the object that is the longest (farthest) from object set R (step S312).

[0220] Next, the information processing device 100 determines whether the number of objects included in the object set R matches ks (step S313). If the number of objects included in the object set R does not match ks (step S313: No), the information processing device 100 performs the determination (processing) of step S315. If the number of objects included in the object set R matches ks (step S313: Yes), the information processing device 100 sets the distance between the object y and the object that is the farthest (farthest) from object y among the objects included in the object set R as a new r (step S314).

[0221] Then, the information processing device 100 determines whether or not all objects that are elements of the neighborhood object set N(G, s) of object s have been selected and stored in the object set C (step S315). If all objects that are elements of the neighborhood object set N(G, s) of object s have not been selected and stored in the object set C (step S315: No), the information processing device 100 returns to step S306 and repeats the process.

[0222] When all objects that are elements of the neighborhood object set N(G, s) of object s have been selected and stored in the object set C (step S315: Yes), the information processing device 100 determines whether the object set S is an empty set (step S316). When the object set S is not an empty set (step S316: No), the information processing device 100 returns to step S302 and repeats the process. When the object set S is an empty set (step S316: Yes), the information processing device 100 outputs the object set R and ends the process (step S317). For example, the information processing device 100 extracts a candidate number of objects (nodes) included in the object set R as neighborhood nodes corresponding to the target node (input object y). For example, the information processing device 100 extracts the objects (nodes) included in the object set R as a node group corresponding to the target node (input object y). Furthermore, for example, the information processing device 100 may provide the objects (nodes) included in the object set R as search results corresponding to the search query (input object y) to the terminal device or the like that performed the search.

[0223] [6. Effects] As described above, the information processing device according to the embodiment (corresponding to "information processing device 100" in the embodiment) includes an acquisition unit (corresponding to "acquisition unit 131" in the embodiment) and a generation unit (corresponding to "generation unit 133" in the embodiment). The acquisition unit acquires first graph information indicating a first graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges, and condition information indicating a determination condition for a shortcut edge to be deleted in the graph. The generation unit generates second information indicating a second graph in which, among edges included in the first graph, a directed edge having a first node as a start point and a second node as an end point is defined as a target edge, and in which, if the relationship between each of the detour nodes including at least a third node connected to the directed edge having the first node as a start point and a fourth node that is a node that is a start point of the directed edge having the second node as an end point and is reachable from the third node, the first node, and the second node satisfies the determination condition for a shortcut edge, the second information indicates a second graph in which the target edge is determined to be a shortcut edge and deleted.

[0224] In this way, the information processing device 100 according to the embodiment determines shortcut edges based on the relationships between the first node, the second node, and the detour nodes, and generates second information indicating a second graph in which the determined shortcut edges have been deleted, thereby being able to appropriately generate information indicating another graph in which an edge in the graph has been deleted.

[0225] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit acquires condition information indicating a determination condition for a shortcut edge based on the distances between the detour node, the first node, and the second node. If the relationship between the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes satisfies the determination condition for a shortcut edge, the generation unit generates second information indicating a second graph in which the target edge is deleted as a shortcut edge.

[0226] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by deleting the target edge as a shortcut edge if the relationship between the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes satisfies the criteria for determining a shortcut edge.

[0227] Furthermore, in the information processing device 100 according to the embodiment, if the relationship between the distance between the first node and the second node, the distance between the first node and the third node, and the distance between the second node and the third node, and the relationship between the distance between the first node and the second node, the distance between the first node and the fourth node, and the distance between the second node and the fourth node satisfy the criteria for determining a shortcut edge, the generation unit generates second information indicating a second graph in which the target edge has been deleted as a shortcut edge.

[0228] As a result, the information processing device 100 according to the embodiment can determine whether the conditions are satisfied for each detour node, such as the fourth node, the fifth node, etc., and appropriately generate information indicating another graph in which the edge in the graph has been deleted.

[0229] Furthermore, in the information processing device 100 according to the embodiment, when the fourth node can be reached from the third node via one or more nodes, the detour node includes a fifth node that is a node on a route from the third node to the fourth node. When the relationship between the distance between the first node and the second node, the distance between the first node and the fifth node, and the distance between the second node and the fifth node satisfies a determination condition for a shortcut edge, the generation unit generates second information indicating a second graph in which the target edge has been deleted as a shortcut edge.

[0230] As a result, the information processing apparatus 100 according to the embodiment can appropriately generate information indicating another graph from which an edge has been deleted, even when there are three or more detour nodes.

[0231] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit acquires condition information indicating a shortcut edge determination condition using the distance between the first node and the second node, the distance between the first node and the detour node, the distance between the second node and the detour node, and a theorem related to triangles. If each of the calculated values ​​calculated based on the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes, and the theorem, satisfies the shortcut edge determination condition, the generation unit generates second information indicating a second graph in which the target edge is deleted as a shortcut edge.

[0232] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by deleting the target edge as a shortcut edge if each of the calculated values ​​calculated based on the theorem, the distance between the first node and the second node, the distance between the first node and the detour node, and the distance between the second node and the detour node, satisfies the criteria for determining a shortcut edge.

[0233] In the information processing device 100 according to the embodiment, the acquisition unit acquires condition information indicating a determination condition for a shortcut edge based on a comparison between the calculated values ​​and a threshold value. If each of the calculated values ​​is greater than the threshold value, the generation unit generates second information indicating a second graph in which the target edge is determined to be a shortcut edge and deleted.

[0234] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating other graphs from which edges in the graph have been deleted by deleting the target edge as a shortcut edge if each of the calculated values ​​is greater than a threshold value.

[0235] Furthermore, in the information processing device 100 according to the embodiment, the acquisition unit acquires condition information indicating a shortcut edge determination condition based on the distance between the first node and the second node, the distance between the first node and the detour node, the distance between the second node and the detour node, and the law of cosines. If each of the calculated values ​​calculated based on the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes, and the law of cosines, satisfies the shortcut edge determination condition, the generation unit generates second information indicating a second graph in which the target edge is deleted as a shortcut edge.

[0236] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by deleting the target edge as a shortcut edge if the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes, and the calculated values ​​calculated based on the law of cosines, satisfy the criteria for determining a shortcut edge.

[0237] Furthermore, in the information processing device 100 according to the embodiment, the generation unit uses the law of cosines to calculate each calculated value, which is the cosine value of the angle between the edge between the first node and each of the detour nodes and the edge between the second node and each of the detour nodes, and if the calculated value satisfies the criteria for determining a shortcut edge, generates second information indicating a second graph in which the target edge has been deleted as a shortcut edge.

[0238] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by deleting the target edge as a shortcut edge if each of the calculated values, which is the cosine value of the angle between the edge between the first node and each of the detour nodes and the edge between the second node and each of the detour nodes, satisfies the criteria for determining a shortcut edge.

[0239] In the information processing device 100 according to the embodiment, the acquisition unit acquires condition information indicating a determination condition for a shortcut edge based on a threshold value corresponding to a cosine value. If each of the calculated values ​​is greater than the threshold value, the generation unit generates second information indicating a second graph in which the target edge is determined to be a shortcut edge and deleted.

[0240] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating other graphs from which edges in the graph have been deleted by deleting the target edge as a shortcut edge if each of the calculated values ​​is greater than a threshold value corresponding to the cosine value.

[0241] Furthermore, in the information processing device 100 according to the embodiment, the generation unit generates, as the second information, information for identifying edges that are shortcut edges among the edges included in the first graph.

[0242] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by generating, as second information, information for identifying edges included in the first graph that correspond to shortcut edges.

[0243] Furthermore, in the information processing device 100 according to the embodiment, the generation unit generates, as the second information, a flag that is associated with each edge included in the first graph and indicates whether or not the edge is a shortcut edge.

[0244] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by generating a flag as second information that is associated with each edge included in the first graph and indicates whether or not it is a shortcut edge.

[0245] Furthermore, in the information processing device 100 according to the embodiment, the generation unit generates graph information in which shortcut edges included in the first graph have been deleted, as the second information.

[0246] As a result, the information processing device 100 according to the embodiment can appropriately generate information indicating another graph from which an edge in the graph has been deleted by generating graph information from which a shortcut edge included in the first graph has been deleted as second information.

[0247] [7. Hardware Configuration] The information processing device 100 according to the embodiment described above is realized by, for example, a computer 1000 configured as shown in Fig. 17. Fig. 17 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing device. The computer 1000 has a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface (I / F) 1500, an input / output interface (I / F) 1600, and a media interface (I / F) 1700.

[0248] The CPU 1100 operates and controls each unit based on programs stored in the ROM 1300 or the HDD 1400. The ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 starts up, programs that depend on the hardware of the computer 1000, and the like.

[0249] The HDD 1400 stores programs executed by the CPU 1100, data used by such programs, etc. The communication interface 1500 receives data from other devices via the network N and sends it to the CPU 1100, and transmits data generated by the CPU 1100 to other devices via the network N.

[0250] The CPU 1100 controls output devices such as a display and a printer, and input devices such as a keyboard and a mouse, via the input / output interface 1600. The CPU 1100 acquires data from the input devices via the input / output interface 1600. The CPU 1100 also outputs generated data to the output devices via the input / output interface 1600.

[0251] Media interface 1700 reads a program or data stored in recording medium 1800 and provides it to CPU 1100 via RAM 1200. CPU 1100 loads the program or data from recording medium 1800 onto RAM 1200 via media interface 1700 and executes the loaded program. Recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase Change Rewritable Disc), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.

[0252] For example, when the computer 1000 functions as the information processing device 100 according to the embodiment, the CPU 1100 of the computer 1000 executes programs loaded onto the RAM 1200 to realize the functions of the control unit 130. The CPU 1100 of the computer 1000 reads and executes these programs from the recording medium 1800, but as another example, the CPU 1100 may obtain these programs from another device via the network N.

[0253] Although some of the embodiments of the present application have been described in detail above with reference to the drawings, these are merely examples, and the present invention can be implemented in other forms that incorporate various modifications and improvements based on the knowledge of those skilled in the art, including the aspects described in the Disclosure of the Invention.

[0254] [8. Other] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically using known methods. In addition, the information including the processing procedures, specific names, various data, and parameters shown in the above documents and drawings can be changed as desired unless otherwise specified. For example, the various information shown in each drawing is not limited to the information shown in the drawings.

[0255] Furthermore, the components of each device shown in the figure are conceptual functional components and do not necessarily have to be physically configured as shown in the figure. In other words, the specific form of distribution and integration of each device is not limited to that shown in the figure, and all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc.

[0256] Furthermore, the processes described in the above-described embodiments can be combined as appropriate within the scope of not causing any contradiction in the process contents.

[0257] Furthermore, the above-mentioned "section, module, unit" can be read as "means" or "circuit," etc. For example, an acquisition unit can be read as an acquisition means or an acquisition circuit. [Explanation of symbols]

[0258] 1. Information Processing Systems 100 Information processing device 121 Object information storage unit 122 Condition information storage unit 123 Standard information storage section 124 Graph information storage unit 130 Control Unit 131 Acquisition Department 132 Search Section 133 Generation part 134 Provision Department 10 Terminal Equipment 50 Information provision device N Network

Claims

1. an acquisition unit that acquires first graph information indicating a first graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges, and condition information indicating a determination condition for a shortcut edge to be deleted in the graph; a generation unit that generates second information indicating a second graph in which a directed edge having a first node as a start point and a second node as an end point is a target edge among edges included in the first graph, the second information including at least a third node to which the directed edge having the first node as a start point is connected, and a fourth node that is a node that is a start point of a directed edge having the second node as an end point and is reachable from the third node, when a relationship between the first node and the second node satisfies the shortcut edge determination condition; An information processing device comprising:

2. The acquisition unit acquiring the condition information indicating a determination condition for the shortcut edge based on distances between the detour node, the first node, and the second node; The generation unit If the relationship between the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes satisfies the shortcut edge determination condition, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

2. The information processing apparatus according to claim 1, wherein:

3. The generation unit If the relationship between the distance between the first node and the second node, the distance between the first node and the third node, and the distance between the second node and the third node, and the relationship between the distance between the first node and the second node, the distance between the first node and the fourth node, and the distance between the second node and the fourth node satisfy the shortcut edge determination condition, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

3. The information processing apparatus according to claim 2, wherein:

4. the detour node includes a fifth node that is a node on a route from the third node to the fourth node when the fourth node can be reached from the third node via one or more nodes; The generation unit If the relationship between the distance between the first node and the second node, the distance between the first node and the fifth node, and the distance between the second node and the fifth node satisfies the shortcut edge determination condition, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

4. The information processing apparatus according to claim 3,

5. The acquisition unit acquire the condition information indicating a determination condition for the shortcut edge using a distance between the first node and the second node, a distance between the first node and the detour node, a distance between the second node and the detour node, and a theorem regarding triangles; The generation unit If the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes, and the calculated values ​​calculated based on the theorem, satisfy the shortcut edge determination condition, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

3. The information processing apparatus according to claim 2, wherein:

6. The acquisition unit acquiring the condition information indicating a determination condition for the shortcut edge based on a comparison between the calculated value and a threshold value; The generation unit If each of the calculated values ​​is greater than the threshold, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

6. The information processing apparatus according to claim 5,

7. The acquisition unit acquire the condition information indicating a determination condition for the shortcut edge based on the distance between the first node and the second node, the distance between the first node and the detour node, the distance between the second node and the detour node, and the cosine law; The generation unit If the distance between the first node and the second node, the distance between the first node and each of the detour nodes, and the distance between the second node and each of the detour nodes, and the calculated values ​​calculated based on the law of cosines, satisfy the shortcut edge determination condition, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

6. The information processing apparatus according to claim 5,

8. The generation unit Using the cosine law, each of the calculated values ​​is a cosine value of an angle formed by an edge between the first node and each of the detour nodes and an edge between the second node and each of the detour nodes, and if the calculated value satisfies the determination condition for a shortcut edge, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

8. The information processing apparatus according to claim 7,

9. The acquisition unit acquiring the condition information indicating a determination condition for the shortcut edge based on a threshold value corresponding to the cosine value; The generation unit If each of the calculated values ​​is greater than the threshold, the second information indicating the second graph in which the target edge is deleted as the shortcut edge is generated.

9. The information processing apparatus according to claim 8,

10. The generation unit generating, as the second information, information for identifying an edge that corresponds to the shortcut edge among the edges included in the first graph; 2. The information processing apparatus according to claim 1, wherein:

11. The generation unit A flag is generated as the second information, which is associated with each edge included in the first graph and indicates whether the edge is the shortcut edge.

2. The information processing apparatus according to claim 1, wherein:

12. The generation unit Generate, as the second information, graph information from which the shortcut edge included in the first graph has been deleted.

2. The information processing apparatus according to claim 1, wherein:

13. 1. A computer-implemented information processing method, comprising: an acquiring step of acquiring first graph information indicating a first graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges, and condition information indicating a determination condition for a shortcut edge to be deleted in the graph; a generating step of generating second information indicating a second graph in which a directed edge having a first node as a start point and a second node as an end point is defined as a target edge, and in which, when a relationship between each of detour nodes including at least a third node connected to the directed edge having the first node as a start point and a fourth node that is a start point of a directed edge having the second node as an end point and is reachable from the third node, and the first node and the second node satisfies the shortcut edge determination condition, the second information indicates a second graph in which the target edge is determined to be the shortcut edge and deleted; An information processing method comprising:

14. an acquisition step of acquiring first graph information indicating a first graph in which a plurality of nodes corresponding to each of a plurality of objects to be searched are connected by edges, and condition information indicating a determination condition for a shortcut edge to be deleted in the graph; a generation step of generating second information indicating a second graph in which a directed edge having a first node as a start point and a second node as an end point is defined as a target edge, when a relationship between each of detour nodes including at least a third node connected to the directed edge having the first node as a start point and a fourth node that is a start point of a directed edge having the second node as an end point and is reachable from the third node, and the first node and the second node satisfies the shortcut edge determination condition; An information processing program characterized by causing a computer to execute the above.

Citation Information

Patent Citations

  • Conductor for connection of semiconductor device

    JP1987093335A

  • Information processing device, information processing method, and information processing program

    JP7080803B2

  • Information processing device, information processing method, and information processing program

    JP7130019B2