# Patent

## Title
Subgraph detection device, subgraph detection method, program, data structure of data, and information recording medium

## Abstract

To provide a detection device capable of, e.g., obtaining a list of genes whose expressions are commonly changed in response to administration of a specific drug or drugs, based on consideration of relationship (e.g., interacting relationship among genes) among genes, a list of proteins whose expressions are commonly changed in response to administration of a specific drug or drugs, based on consideration of relationship (e.g., interacting relationship among proteins) among proteins, and a list of users who purchased an identical product or products, based on consideration of relationship (e.g., friendship) among users, and so forth. A graph data obtaining unit (20) obtains graph data indicating a graph including a plurality of vertexes. A vertex data obtaining unit (22) obtains vertex data that correlates an information item to a vertex. Based on the graph data and the vertex data, a subgraph detection unit (24) detects a subgraph that is a subgraph of the graph in which information items correlated to the respective vertexes in the subgraph have predetermined relationship.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a National Stage of International Application No. PCT/JP2009/067476 filed on Oct. 7, 2009, which claims priority from Japanese Patent Application No. 2008-260827, filed on Oct. 7, 2008, the contents of all of which are incorporated herein by reference in their entirety.
TECHNICAL FIELD
The present invention relates to a subgraph detection device, a subgraph detection method, a program, a data structure of data, and an information recording medium.
BACKGROUND ART
For example, lists of users who purchased or did not purchase a specific product or products have been obtained based on data that correlates a purchased product list to each of a plurality of users. Further, for example, lists of documents with a keyword or key words set thereon have been obtained based on data that correlates a key word list to each of a plurality of documents.
For example, the patent document 1 below describes specification of a user who did not purchase a specific product or products (e.g., a frequently purchased product or products), based on purchased product lists of a plurality of users.
RELATED ART DOCUMENT
Patent Document


    Patent Document 1: Japanese Patent Laid-open Publication No. 2007-287139


DISCLOSURE OF THE INVENTION
Problems to be Solved by the Invention
Conventionally, it has not been possible, for example, to obtain a list of users who purchased an identical product or products, based on consideration of relationship (e.g., friendship) among users. Further, it has not been possible, for example, to obtain a list of documents with the same keyword or keywords set thereon, based on consideration of relationship (reference relationship) among documents.
Here, if a list of genes that commonly change expressions thereof in response to administration of a specific drug or drugs can be obtained based on consideration of gene relationship, it will be possible to obtain useful information in view of drug discovery research. For example, if such a list can be obtained based on consideration of relationship (interaction relationship among genes) among genes having mutual influence on expressions thereof or genes that are expressed at the same time, it will be possible to obtain useful information in, e.g., narrowing down drug discovery targets. However, it has not been possible so far to obtain a list of genes that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of gene relationship.
Further, if a list of proteins that commonly change expression thereof in response to administration of a specific drug or drugs can be obtained based on consideration of protein relationship, it will be possible to obtain useful information in view of drug discovery research. For example, if such a list can be obtained based on consideration of relationship (interaction relationship among proteins) among proteins that are bound to each other to be a composite, it will be possible to obtain useful information in, e.g., narrowing down drug discovery targets. However, it has not been possible so far to obtain a list of proteins that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of protein relationship.
The present invention has been conceived in view of the above, and an object thereof is to provide a subgraph detection device, a subgraph detection method, a program, a data structure of data, and an information recording medium capable of obtaining, e.g., a list of genes that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of gene relationship (e.g., interacting relationship among genes), a list of proteins that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of protein relationship (e.g., interacting relationship among proteins), a list of users who purchased an identical product or products, based on consideration of relationship (e.g., friendship) among users, and a list of documents with the same key word or key words set thereon, based on consideration of relationship (reference relationship) among documents.
Means for Solving the Problems
In order to solve the above described problems, a subgraph detection device according to the present invention comprises a graph data obtaining unit for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges; a vertex data obtaining unit for obtaining vertex data that correlates an information item to the vertex; and a subgraph detection unit for detecting, based on the graph data and the vertex data, a subgraph being a subgraph of the graph in which the information items correlated to the respective vertexes in the subgraph have a predetermined relationship.
A subgraph detection method according to the present invention comprises a graph data obtaining step of obtaining graph data indicating a graph including a plurality of vertexes and one or more edges; a vertex data obtaining step of obtaining vertex data that correlates an information item to the vertex; and a subgraph detection step of detecting, based on the graph data and the vertex data, a subgraph being a subgraph of the graph in which the information items correlated to the respective vertexes in the subgraph have a predetermined relationship.
A program according to the present invention causes a computer to function as a graph data obtaining unit for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges; a vertex data obtaining unit for obtaining vertex data that correlates an information item to the vertex; and a subgraph detection unit for detecting, based on the graph data and the vertex data, a subgraph being a subgraph of the graph in which the information items correlated to the respective vertexes in the subgraph have a predetermined relationship.
An information recording medium according to the present invention is a computer readable information recording medium recording the above described program.
A data structure according to the present invention comprises graph data indicating a graph including a plurality of vertexes and one or more edges and vertex data that correlates an information item to the vertex. An information recording medium according to the present invention records data comprising graph data indicating a graph including a plurality of vertexes and one or more edges and vertex data that correlates an information item to the vertex.
The present invention relates to a technique for detecting a subgraph of a graph including a plurality of vertexes and one or more edges. In the present invention, graph data indicating the graph is obtained. For example, graph data indicating a graph in which each vertex corresponds to each gene and each edge (link) shows a relationship between genes is obtained. Note that “a relationship between genes” means, for example, a relationship between genes having mutual influence on expressions thereof (interacting relationship among genes) or a relationship between genes that are expressed at the same time. Further, for example, graph data indicating a graph in which each vertex corresponds to a protein and each edge (link) shows a relationship between proteins is obtained. Note that “a relationship between proteins” means, for example, a relationship between proteins that are bound to one another to be a composite (interacting relationship among proteins). Still further, for example, graph data indicating a graph in which each vertex corresponds to each user and each edge (link) shows friendship between users is obtained. Note that graph data is expressed as, e.g., an adjacent list or an adjacent matrix. In the present invention, vertex data that correlates information to the vertex is obtained, and a subgraph in which information items correlated to the respective vertexes in the subgraph have a predetermined relationship is detected based on the graph data and the vertex data. According to the present invention, a subgraph is detected based on the graph data and the vertex data. As a result, it is possible to obtain, e.g., a list of genes that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of relationship among genes (e.g., an interacting relationship among genes). Further, it is possible to obtain, e.g., a list of proteins that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of relationship among proteins (e.g., an interacting relationship among proteins). Still further, it is possible to obtain, e.g., a list of users who purchased an identical product or products, based on consideration of relationship among user (e.g., friendship).
According to one aspect of the present invention, the information item may indicate an element set including at least one kind of element, and the subgraph detection unit may carry out detection of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N≧1) or larger number of kinds of elements. For example, when each vertex corresponds to each gene and each element set corresponds to a drug or drugs that changes/change expression of a gene, it is possible to obtain a list of genes that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of relationship among genes (e.g., an interacting relationship among genes). Further, e.g., when each vertex corresponds to each protein and each element set corresponds to a drug or drugs that changes/change expression of a protein, it is possible to obtain a list of proteins that commonly change expression thereof in response to administration of a specific drug or drugs, based on consideration of relationship among proteins (e.g., an interacting relationship among genes). Still further, when each vertex corresponds to each user and each element set corresponds to a product purchased by a user, it is possible to obtain a list of users who purchased an identical product or products, based on consideration of relationship among users (e.g., friendship).
According to one aspect of the present invention, the subgraph detection unit may include a determination unit, while making respective nodes of a search tree as a determination target in a search order according to a depth-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set of the node being the determination target includes the N or larger number of kinds of elements, and a unit for carrying out the detection, based on a result of determination by the determination unit, and when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is the same as an end vertex in the vertex set of the first node and that is a node before the first node in the search order, the determination unit may not carry out the determination with respect to a vertex set of a descendant node of the first node as a determination target.
According to one aspect of the present invention, the subgraph detection unit may include a unit for storing, when the determination is carried out, the product set of the element sets correlated to the respective vertexes in the vertex set of the node being the determination target as a reference set in a reference set storage unit so as to be correlated to an end vertex in the vertex set of the node being the determination target, and when the product set of the element sets correlated to the respective vertexes in the vertex set of the first node is included in a reference set that is stored in the reference set storage unit so as to be correlated to the end vertex in the vertex set of the first node, the determination unit may not carry out the determination with respect to the vertex set of the descendant node of the first node as the determination target.
According to one aspect of the present invention, the subgraph detection unit may include a determination unit, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set of the node being the determination target includes the N or larger number of kinds of elements, and a unit for carrying out the detection, based on a result of determination by the determination unit, and when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is the same as an end vertex in the vertex set of the first node and that is a node having a vertex set including the vertex set of the first node, the determination unit may not carry out the determination with respect to a vertex set of a descendant node of the first node as a determination target.
According to one aspect of the present invention, the subgraph detection unit may include a determination unit, while making respective nodes of a search tree as a determination target in a search order according to a depth-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set of the node being the determination target includes the N or larger number of kinds of elements, and a unit for carrying out the detection, based on a result of determination by the determination unit, and when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex and that is a node before the third node in the search order, the determination unit may not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.
According to one aspect of the present invention, the subgraph detection unit may include a unit for storing, when the determination is carried out, the product set of the element sets correlated to the respective vertexes in the vertex set of the node being the determination target as a reference set in a reference set storage unit so as to be correlated to an end vertex in the vertex set of the node being the determination target, and when the vertex set of the third node includes only one vertex and the element set correlated to the vertex is included in a reference set that is stored in the reference set storage unit so as to be correlated to the vertex, the determination unit may not carry out the determination with respect to the vertex set of the descendant node of the third node as the determination target.
According to one aspect of the present invention, the subgraph detection unit may include a determination unit, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set of the node being the determination target includes the N or larger number of kinds of elements, and a unit for carrying out the detection, based on a result of determination by the determination unit, and when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex, the determination unit may not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.
According to one aspect of the present invention, the subgraph detection unit may include a determination unit, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set of the node being the determination target includes the N or larger number of kinds of elements, and a unit for carrying out the detection, based on a result of determination by the determination unit, and when a product set of element sets correlated to respective vertexes in a vertex set of the node does not include the N or large number of kinds of elements, the determination unit may not carryout the determination with respect to a vertex set of a descendant node of the node as the determination target.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram showing a structure of a subgraph detection system including a subgraph detection device according to an embodiment of the present invention;
FIG. 2 is a diagram showing one example of a graph indicated by graph data;
FIG. 3 is a diagram showing one example of content of vertex data;
FIG. 4 is a diagram showing one example of a subgraph CSG;
FIG. 5 is a diagram showing one example of content of vertex data;
FIG. 6 is a diagram showing functions realized in a subgraph detection device according to an embodiment of the present invention;
FIG. 7 is a diagram showing one example of a tree;
FIG. 8 is a diagram showing one example of content of a reference set table;
FIG. 9 is a flowchart of one example of a process carried out in a subgraph detection device according to an embodiment of the present invention;
FIG. 10 is a flowchart of one example of a process carried out in a subgraph detection device according to an embodiment of the present invention; and
FIG. 11 is a flowchart of one example of a process carried out in a subgraph detection device according to an embodiment of the present invention.



BEST MODE FOR CARRYING OUT THE INVENTION
In the following, an embodiment of the present invention will be described with reference to the accompanying drawings.
[1. Structure Of Subgraph Detection System]
FIG. 1 is a diagram showing a structure of a subgraph detection system 6 including a subgraph detection device 2 according to an embodiment of the present invention. As shown in the diagram, the subgraph detection system 6 comprises a subgraph detection device 2 and a database 4, which can communicate to each other via a network.
[2. Hardware Structure Of Subgraph Detection Device]
The subgraph detection device 2 is e.g., a personal computer. As shown in FIG. 1, the subgraph detection device 2 comprises a control unit 8, a storage unit 10, a communication unit 12, a display unit 14, an operating unit 16, which are connected to one another for communication via a bus 18.
The control unit 8 carries out various kinds of information processes according to a program stored in the storage unit 10. While the control unit 8 carries out a process as a personal computer, a process according to the present invention will be mainly described below. Specific contents of the processes carried out by the control unit 8 will be described later.
The storage unit 10 includes a main memory and a nonvolatile memory. The nonvolatile memory stores a program carried out by the control unit 8. The program is downloaded from, e.g., a program distribution device via a network to be stored in the nonvolatile memory. Alternatively, the program may be copied from a computer readable information recording medium, such as, e.g., an optical disk or a memory card, to be stored in the nonvolatile memory. A program read from the nonvolatile memory and various data necessary in a process by the control unit 8 are written into the main memory when necessary.
The communication unit 12 includes a network interface card, and outputs, e.g., data having arrived to the control unit 8 via a network. The display unit 14 includes, e.g., a monitor, and shows the data input from the control unit 8. The operating unit 16 includes a keyboard and/or a mouse, and outputs data indicating content of a user operation to the control unit 8.
[3. Database]
The database 4 is stored in, e.g., a hard disk (an information recording medium) in a database server. Alternatively, the database may be stored in the nonvolatile memory (an information recording medium) of the subgraph detection device 2.
The database 4 stores graph data indicating a graph including a plurality of vertexes and one or more links (edges). Note that although a “vertex” of a graph may be referred to also as a “node”, the term “vertex” is used here in order to discriminate from a node of a tree to be described later (see FIG. 7).
The graph data is data describing, e.g., an adjacent list and/or an adjacent matrix. FIG. 2 is a diagram showing one example of the graph data. The graph G shown in FIG. 2 includes six vertexes v and links e each connecting one vertex v and another vertex v. That is, the graph G shown in FIG. 2 includes 6 vertexes {v1, v2, v3, v4, v5, v6} and eight links {e12, e13, e14, e16, e23, e34, e45, e46}.
In this embodiment, the graph G shown in FIG. 2, in which each vertex v corresponds to each gene, shows relationship among the genes. In the specification, “relationship among the genes” refers to, e.g., relationship among genes having mutual influence on the expressions thereof (interacting relationship among genes) and/or relationship among genes that are expressed at the same time. Specifically, the link eij connecting a vertex vi and a vertex vj indicates that the gene corresponding to the vertex vi has a relationship with the gene corresponding to the vertex vj. For example, in the graph G shown in FIG. 2, the link e12 connects the vertex v1 and the vertex v2, and this means that the gene corresponding to the vertex v1 has a relationship with the gene corresponding to the vertex v2. Further, in the graph G shown in FIG. 2, the vertex v1 is connected via the link e14 to the vertex v4, which is further connected via the link e45 to the vertex v5. This means that the gene corresponding to the vertex v1 has an indirect relationship with the gene corresponding to the vertex v5 via the gene corresponding to the vertex v4.
In addition, the database 4 stores vertex data that correlates information to each of the vertexes v in the graph G. FIG. 3 is a diagram showing one example of the vertex data. The vertex data shown in FIG. 3 is a table that correlates a vertex v to an item set I(v) including at least one kind of item i (an element). In this embodiment, each of the items ii included in the item set I(vi) corresponds to a drug that changes expression of the gene corresponding to the vertex vi. In the example shown in FIG. 3, the item set I(v1) correlated to the vertex v1 includes an item i1 (drug A), an item i2 (drug B), an item i3 (drug C), and an item i4 (drug D). This means that administration of the drug A, drug B, drug C, or drug D changes expression of the gene corresponding to the vertex v1. Note that, for example, the item i may correspond to a factor other than a drug that changes expression of a gene.
Note that, in a subgraph CSG that is a part of the graph G, as shown in FIG. 4, the item sets I(v1), I(v3), I(v4) correlated to the respective vertexes v1, v3, v4 included in the subgraph CSG each include a common item set {i1, i2}. This means that expression of the three genes having direct or indirect relationship to one another (three genes corresponding to the respective vertexes v1, v3, v4) will change in response to administration of the common drugs {drug A, drug B}. In this case, it is inferred that it is highly likely that expression of the three genes will change in response to administration of the same or similar drug as the three genes have a direct or indirect relationship to one another and the expressions thereof are changed in response to administration of the common drug. If genes having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug, such as these three genes, can be specified, that will be useful in, e.g., drug discovery research. For example, that will be useful in narrowing down genes to be a drug discovery target.
Regarding this point, in the subgraph detection device 2, a subgraph CSG that is a subgraph of the graph G in which item sets I(v) correlated to the respective vertexes v in the subgraph include a common item set is detected. As a result, genes having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug can be detected.
Note that each of the vertexes v in the graph G may correspond to each protein, and each item ii in the vertex data may correspond to a drug that changes expression of the protein corresponding to a vertex vi.
In this case, the graph G shown in FIG. 2 shows relationship among proteins in which the link eij connecting a vertex vi and a vertex vj indicates that the protein corresponding to the vertex vi has a relationship with the protein corresponding to the vertex vj. Note that “relationship among proteins” refers to, e.g., relationship among proteins that are bound to one another to be a composite (an interacting relationship among proteins). For example, in the graph G shown in FIG. 2, the link e12 connects the vertex v1 and the vertex v2, and this means that the protein corresponding to the vertex v1 has a relationship with the protein corresponding to the vertex v2. Further, in the graph G shown in FIG. 2, the vertex v1 is connected to the vertex v4 via the link e14 and the vertex v4 is further connected to the vertex v5 via the link e45, and this means that the protein corresponding to the vertex v1 has an indirect relationship with the protein corresponding to the vertex v5 via the protein corresponding to the vertex v4.
In this case, vertex data similar to that shown in FIG. 3 is stored in the database 4. Specifically, in the vertex data shown in FIG. 3, the item set I(v1) correlated to the vertex v1 includes an item i1 (drug A), an item i2 (drug B), an item i3 (drug C), and an item i4 (drug D), and this means that administration of the drug A, drug B, drug C, or drug D changes expression of the protein corresponding to the vertex v1. Note that, for example, the item may correspond to any factor (e.g., heat shock, nitrogen starvation condition, or the like) other than a drug that changes expression of a protein.
As described above (see FIG. 4), in the subgraph CSG that is a part of the graph G, the item sets I(v1), I(v3), I(v4) correlated to the respective vertexes v1, v3, v4 included in the subgraph CSG each include a common item set {i1, i2}. This means that expressions of three proteins having a direct or indirect relationship to one another (three proteins corresponding to the respective vertexes v1, v3, v4) are changed in response to administration of the common drug {drug A, drug B}. In this case, it is inferred that it is highly likely that the expressions of the three proteins will change in response to administration of the same or similar drug as the three proteins have a direct or indirect relationship to one another and expressions thereof are changed in response to administration of the common drug. If proteins having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug, such as these three proteins, can be specified, that will be useful in drug discovery research. For example, that will be useful in narrowing down proteins to be a drug discovery target.
Regarding this point, as described above, in the subgraph detection device 2, a subgraph CSG that is a subgraph of the graph G in which the item sets I(v) correlated to the respective vertexes v in the subgraph each include a common item set is detected. As a result, when each of the vertexes v in the graph G corresponds to one protein and each item ii corresponds to a drug that changes expression of the protein corresponding to a vertex vi, proteins having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug can be detected.
Further, each of the vertexes v in the graph G may correspond to a user, and each item ii included in the vertex data may correspond to a product purchased by the user corresponding to a vertex vi.
In this case, the graph G shown in FIG. 2 shows friendship among users, and the link eij connecting a vertex vi and a vertex vj indicates that the user corresponding to the vertex vi has a relationship with the user corresponding to the vertex vj. For example, in the graph G shown in FIG. 2, the link e12 connects the vertex v1 and the vertex v2, and this means that the user corresponding to the vertex v1 has friendship with the user corresponding to the vertex v2. Further, in the graph G shown in FIG. 2, the vertex v1 is connected to the vertex v4 via the link e14 and the vertex v4 is further connected to the vertex v5 via the link e45, and this means that the user corresponding to the vertex v1 have indirect friendship with the user corresponding to the vertex v5 via the user corresponding to the vertex v4.
FIG. 5 shows one example of the vertex data for a case in which each item ii corresponds to a product purchased by the user corresponding to a vertex vi. Specifically, in the example shown in FIG. 5, the item set I(v1) correlated to the vertex v1 includes an item i1 (apple), an item i2 (mandarin), an item i3 (grape), and an item i4 (pear), and this means that the user corresponding to the vertex v1 purchased an apple, a mandarin, a grape, and a pear. Note that although the items i1 to i5 correspond to similar kinds of products (fruits) here, the items i1 to i5 may correspond to different kinds of products.
As described above (see FIG. 4), in the subgraph CSG that is a part of the graph G, the item sets I(v1), I(v3), I(v4) correlated to the respective vertexes v1, v3, v4 included in the subgraph CSG each include a common item set {i1, i2}. This means that the three users (three users corresponding to the respective vertexes v1, v3, v4) having direct or indirect friendship to one another purchased common products {apple, mandarin}. In this case, it is inferred that it is highly likely that information relating to the common products {apple, mandarin} or other products related to the products is spreading through word of mouth communication among the three users corresponding to the respective vertexes v1, v3, v4. If users having direct or indirect friendship to one another and having purchased a common product, such as these three users, can be specified, it will be possible to preferably narrow down the users to be targeted by an advertisement of a produce, so that an efficient advertisement of the product can be achieved.
Regarding this point, in the subgraph detection device 2, a subgraph CSG that is a subgraph of the graph G in which the respective item sets I(v) correlated to the respective vertexes v in the subgraph include a common item set is detected, and as a result, users having direct or indirect friendship to one another and having purchased a common product can be detected.
In the following, a technique for detecting a subgraph CSG in which item sets I(v) correlated to the respective vertexes v include a common item set will be described. Note that a subgraph CSG in which item sets I(v) correlated to the respective vertexes v include a common item set will be hereinafter referred to as a common subgraph CSG.
[4. Functional Block]
FIG. 6 is a functional block diagram mainly showing the functions according to the present invention among those realized in the subgraph detection device 2. As shown in the diagram, the subgraph detection device 2 functionally comprises a graph data obtaining unit 20, a vertex data obtaining unit 22, and a subgraph detection unit 24, which are realized by the control unit 8 operating according to the above described program read from the storage unit 10.
[4-1. Graph Data Obtaining Unit]
The graph data obtaining unit 20 is realized mainly using, e.g., the control unit 8 and the communication unit 12. The graph data obtaining unit 20 obtains graph data indicating a graph including a plurality of vertexes. In this embodiment, the graph data obtaining unit 20 reads, and thereby obtains, graph data on the graph G, such as is shown in, e.g., FIG. 2, from the database 4.
[4-2. Vertex Data Obtaining Unit]
The vertex data obtaining unit 22 is realized mainly using, e.g., the control unit 8 and the communication unit 12. The vertex data obtaining unit 22 obtains vertex data that correlates information to each of the plurality of vertexes included in the graph. Note that “information” here means information other than connection relationship information among the vertexes in the graph G. Specifically, for example, for a vertex corresponding to a gene, the above mentioned “information” means, e.g., information relating to a gene, and “information relating to a gene” means information indicating a drug that changes expression of a gene. Further, for example, for a vertex corresponding to a protein, the above mentioned “information” means information relating to a protein, and “information relating to a protein” means information indicating a drug that changes expression of a protein. Still further, for example, for a vertex corresponding to a user, the above mentioned “information” means information relating to a user, and “information relating to a user” means information indicating user attribute or a product purchased by a user. In this embodiment, the vertex data obtaining unit 22 reads, and thereby obtains, vertex data, such as is shown in, e.g., FIG. 3 or 5, from the database 4.
[4-3. Subraph Detection Unit]
The subgraph detection unit 24 is realized mainly using, e.g., the control unit 8, and detects a subgraph, based on the graph data and the vertex data, the subgraph being a subgraph of a graph in which information items correlated to the respective vertexes in the subgraph have a predetermined relationship. In this embodiment, the subgraph detection unit 24 detects a common subgraph CSG that is a subgraph of the graph G in which the product set of the item sets I(v) correlated to the respective vertexes v in the subgraph includes an N (N being a positive integer) or larger number of kinds of items (products). Specifically, for example, a common subgraph CSG including a plurality of vertexes v corresponding to “a plurality of genes whose expressions are commonly changed in response to administration of an N or larger number of kinds of common drugs” is detected. Further, for example, a common subgraph CSG including a plurality of vertexes v corresponding to “a plurality of proteins whose expressions are commonly changed in response to administration of an N or larger number of kinds of common drugs” is detected. Still further, for example, a common subgraph CSG including “a plurality of vertexes v corresponding to a plurality of users having purchased an N or larger number of kinds of common products” is detected.
Note that, in this embodiment, a common subgraph CSG that is closed (hereinafter referred to as a closed common subgraph CCSG), in particular, is detected. A closed common subgraph CCSG is a common subgraph CSG in which addition of any vertex v adjacent to a vertex v included in the common subgraph CSG changes the common item set thereof.
In the following, a specific example of a closed common subgraph CCSG will be described based on an assumption that a subgraph having a common item set including two or more kinds of items is a common subgraph CSG. For example, as the subgraph {v1, v4} has a common item set {i1, i2} (see FIG. 3), the subgraph {v1, v4} is a common subgraph CSG. However, as addition of the vertex v3 (see FIG. 2 and FIG. 4) adjacent to the vertex v4, to the subgraph {v1, v4} does not change the common item set, which rather remains unchanged as {i1, i2}, the subgraph {v1, v4} is not a closed common subgraph CCSG. Meanwhile, the subgraph {v1, v3, v4}, obtained by adding the vertex v3 to the subgraph {v1, v4}, is a common subgraph CSG as having the common item set {i1, i2} (see FIG. 3), and also a closed common subgraph CCSG as addition of any of the vertex v2, v5, v6 adjacent to any of the vertexes v1, v3, v4, to the subgraph {v1, v3, v4} changes the common item set from {i1, i2} to {i1}.
When the common item set of a closed common subgraph CCSG is the same as that of a common subgraph CSG that is not closed, the number of vertexes is larger with the former. For example, while the common item set of the subgraph {v1, v4} and that of the subgraph {v1, v3, v4} are both {i1, i2}, the number of vertexes in the subgraph {v1, v3, v4}, which is a closed common subgraph CCSG, is larger than that in the subgraph {v1, v4}, which is not a closed common subgraph CCSG.
Here, if it is possible to detect a common subgraph CSG that includes a larger number of vertexes, it will be possible to detect a larger number of genes as, e.g., genes having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug, and accordingly, to identify a drug having influence on a larger number of genes. This is useful in, e.g., drug discovery. Further, for example, as it will become possible to detect a larger number of proteins as, e.g., proteins having a direct or indirect relationship to one another whose expressions are changed in response to administration of a common drug, it will be possible to identify a drug having influence on a larger number of proteins. This is useful in, e.g., drug discovery. Still further, for example, as it will become possible to detect a larger number of users as, e.g., users having direct or indirect friendship to one another and having purchased a common product, it will be possible to make an efficient product advertisement. In view of the above, a closed common subgraph CCSG, in particular, is detected in this embodiment in order to obtain a common subgraph CSG including a larger number of vertexes. Details of an operation of the subgraph detection unit 24 will be described later.
[5. Process]
A process carried out in the subgraph detection device 2 to detect a common subgraph CSG (a closed common subgraph CCSG in particular) will be described. In the following, a case in which the above described N is 2, that is, a case of detecting a common subgraph CSG in which the product set of the item sets I(v) correlated to the respective vertexes v includes two or more kinds of items i will be described.
[5-1. Outline of Process]
Initially, the process will be outlined. FIG. 7 is a diagram explaining an outline of the process. In the subgraph detection device 2, a tree T (a search tree), such as is shown in FIG. 7, is produced using a depth-first search algorithm in detection of a common subgraph CSG (a closed common subgraph CCSG, in particular). The tree T shown in FIG. 7 includes root nodes nr (nr1 to nr6) corresponding to the respective vertexes v1 to V6 of the graph G, and nodes nc (nc1 to ncM) subordinate to the root nodes nr1 to nr6. Each of the nodes n of the tree T shown includes a vertex set V(n) and a common item set I(n), in which a vertex set V(n) is a set of vertexes v included in the path led to that node n, and a common item set I(n) is a set of items i commonly possessed by all vertexes v included in the vertex set V(n). Specifically, in FIG. 7, a vertex set V(n) is shown on the left side of each node N, while a common item set I(n) is shown on the right side of the same. Note that, in the following, a vertex set V(n) included in a node n of the tree T will be referred to as a vertex set V(n) of a node n of the tree T, while an item set I(n) included in a node n of the tree T will be referred to as an item set I(n) of a node n of the tree T.
In the tree T shown in the diagram, a vertex set obtained by adding another vertex v to a vertex set V(nx) of each node (determined as a node nx) constitutes a vertex set V(nx+1) of a node nx+1, or a child node of the node nx. Specifically, a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in the vertex set V(nx) of a node nx to the vertex set V(nx) constitutes the vertex set (nx+1) of a node nx+1.
For example, a vertex set {v1, v2} obtained by adding the vertex v2 adjacent to an end vertex, or the vertex {v1}, of the vertex set V (nr1) of the node nr1, to the vertex set {v1}, constitutes the vertex set V(nc1) of a node nc1, or a child node of the node nr1. In this case, the added vertex v2 becomes an end vertex in the vertex set V(nc1). Further, for example, a vertex set {v1, v2, v3} obtained by adding the vertex v3 adjacent to an end vertex, or the vertex {v2}, of the vertex set V(nc1) of the node nc1, to the vertex set {v1, v2}, constitutes the vertex set V(nc2) of a node nc2, or a child of the node nc1. In this case, the added vertex v3 becomes an end vertex in the vertex set V(nc2). As described above, a vertex set obtained by adding a vertex adjacent to an end vertex in the vertex set V(nx) of a parent node nx to the vertex set V(nx) constitutes the vertex set V(nx+1) of a child node nx+1.
Each of the vertexes included in the vertex set V(n) of each node n is adjacent to any other vertex included in the vertex set V(n), and the vertex set V(n) of each node n constitutes a subgraph including the vertex set V(n).
The subgraph detection unit 24 makes each of the nodes n of the tree T a determination target in a search order according to a depth-first search algorithm. In the above, when the vertex set V(n) of a determination target node n includes a plurality of vertexes v, the subgraph detection unit 24 determines whether or not the subgraph constituted by the vertex set V(n) is a common subgraph CSG. That is, whether or not the product set of the item sets I(v) correlated to the respective vertexes v in the vertex set V(n) has two or more kinds of items is determined. In this manner, the subgraph detection unit 24 detects a common subgraph CSG, based on the tree T. Note that although a depth-first search algorithm is employed here to produce the tree T, such as is shown in FIG. 7, a width-first search algorithm may be employed instead.
[5-2. Reference Set Table]
In the subgraph detection device 2, a reference set table is stored as data for avoiding an unnecessary process. In the following, a reference set table will be described.
Initially, the significance of providing a reference set table will be described. That is, when the below mentioned three relationships all hold between a node (determined as a “node nx”) and another node (determined as a “node ny”), a subgraph including the vertex set V(nxd) of a descendant node (determined as a “node nxd”) of the node nx is not a closed subgraph.
(Relationship 1)
An end vertex in the vertex set V(nx) of the node nx is the same as an end vertex in the vertex set V(ny) of the node ny;
(Relationship 2)
The node ny is made a determination target before the node nx; and
(Relationship 3)
The common item set I(ny) of the node ny⊃ the common item set I(nx) of the node nx.
That a subgraph including the vertex set V(nxd) of a node nxd is not a closed subgraph means that a subgraph including the vertex set V(nxd) of the node nxd cannot be a closed common subgraph CCSG. Therefore, in this embodiment, when the above described relationships 1 to 3 all hold between a node nx (a first node) and another node ny (a second node), the subgraph detection unit 24 does not carry out determination with respect to the vertex set V(nxd) of a descendant node nxd of the node nx as a determination target to see whether or not the subgraph constituted by the vertex set V(nxd) is a common subgraph CSG. As a result, a closed common subgraph CCSG can be determined without carrying out determination with respect to all nodes n of the tree T as determination targets to see whether or not a subgraph constituted by the vertex set V(n) of a determination target node n is a common subgraph. This can reduce a processing load.
In the following, the reason why a subgraph constituted by the vertex set V(nxd) of a descendant node nxd of a node nx cannot be a closed subgraph when the relationships 1 to 3 all hold between the node nx and another node ny will be described.
That is, when the node ny is a node produced before the node nx (relationship 2), and an end vertex in the vertex set V(nx) of the node nx is the same as an end vertex in the vertex set V(ny) of the node ny (relationship 1), the relationship “the vertex set V(ny) of the node ny⊃ the vertex set V(nx) of the node nx” (hereinafter referred to as “relationship 4”) holds. For example, in FIG. 7, the relationship “the vertex set V(nc7) of the node nc7⊃ the vertex set V(nc10) of the node nc10” holds between the node nc10 and the node nc7 produced before the node nc10.
Therefore, when a vertex set obtained by adding a vertex v adjacent to an end vertex in the vertex set V(nx) of the node nx to the vertex set V(nx) is the vertex set V(nxd) of a descendant node nxd of the node nx and a vertex set obtained by adding the same vertex v to the vertex set V(ny) of the node ny is the vertex set V(nyd) of a descendant node nyd of the node ny, the relationship “the vertex set V(nyd) of the node nyd⊃ the vertex set V(nxd) of the node nxd” (hereinafter referred to as “relationship 5”) holds between the vertex set V(nxd) of the node nxd and the vertex set V(nyd) of the node nyd. For example, in FIG. 7, the relationship “the vertex set V(nc8) of the node nc8⊃ the vertex set V(nc11) of the node nc11” holds between the descendant node nc8 of the node nc7 and the descendant node nc11 of the node nc10.
In the above, when the relationship 5 holds, the number of items included in the product set (that is, the common item set I(nyd)) of the item sets correlated to the respective vertexes in the vertex set V(nyd) of the node nyd is not larger than that of the items included in the product set (that is, the common item set I(nxd)) of the item sets correlated to the vertexes in the vertex set V(nxd) of the node nxd. This is because a larger number of vertexes included in a vertex set leads to a fewer number of items included in the product set of the item sets correlated to the respective vertexes in the vertex set. Therefore, when the relationship 5 holds, the relationship “the common item set I(nyd) of the node nyd⊂ the common item set I(nxd) of the node nxd” (hereinafter referred to as “relationship 6”) holds.
Meanwhile, when “he common item set I(ny) of the node ny⊃ the common item set I(nx) of the node nx” (relationship 3) holds, the relationship “the common item set I(nyd) of the node nyd⊃ the common item set I(nxd) of the node nxd” (hereinafter referred to as “relationship 7”) holds between the common item set I(nxd) of the node nxd and the common item set I(nyd) of the node nyd as the vertex set V(nxd) of the node nxd and the vertex set V(nyd) of the node nyd are vertex sets obtained by adding the same vertex v to the vertex set V(nx) and the vertex set V(ny), respectively.
As described above, when the above described relationships 1 to 3 all hold, the relationships 6, 7 also hold at the same time. A case in which the relationships 6, 7 hold at the same time refers to a case in which the common item set I(nxd) of the node nxd and the common item set I(nyd) of the node nyd hold the relationship “the common item set I(nyd) of the node nyd=the common item set I(nxd) of the node nxd”. Therefore, when the relationships 1 to 3 all hold, the relationship “the item set I(nyd) of the node nyd=the item set I(nxd) of the node nxd” holds between the common item set I(nyd) of the node nyd and the common item set I(nxd) of the node nxd. This means that addition of a vertex v included in the vertex set V(nyd) of the node nyd but not in the vertex set V(nxd) of the node nxd to the vertex set V(nxd) of the node nxd does not change the common item set. That is, when the relationships 1 to 3 all hold between a node nx and another node ny, the subgraph constituted by the vertex set V(nxd) of a descendant node nxd of the node nx cannot be a closed subgraph.
For example, in the case shown in FIG. 7, the common item set I(nc11) of a child node nc11 of the node nc10 and the common item set I(nc8) of a child node nc8 of the node nc7 are both {i1}, being equal to each other. That is, addition of the vertex v3 included in the vertex set V(nc8) of the node nc8 but not in the vertex set V(nc11) of the node nc11 to the vertex set V(nc11) of (the node nc11 does not change the common item set, which remains as {i1}. Therefore, the subgraph constituted by the vertex set V(nc11) cannot be a closed subgraph.
Note that when the relationships 1 and 2 both hold, the relationship 4 holds, as described above. Therefore, that “when the relationships 1, 3, 4 all hold between a node nx and another node ny, the above described determination is not carried out with respect to a child node ncx of the node nx (in other words, the vertex set V(nxd) of the node ncx) as a determination target” can be rephrased as that “when the relationships 1, 3, 4 all hold between a node nx and a node ny, the above described determination is not carried out with respect to the vertex set V(nxd) as a determination target”.
Note that also when the respective nodes of the tree T are made a determination target in a search order according to a width-first search algorithm, it can be arranged such that determination as to whether or not a subgraph constituted by the vertex set V(nxd) of a descendant node nxd of a node nx is a common subgraph CSG is not carried out when the above described relationships 1 and 3 and the relationship 2′ described below all hold between the node nx (a first node) and another node ny (a second node).
(Relationship 2′): A node nx is made a determination target before a node ny.
In the above described manner, also when the respective nodes of the tree T are made a determination target in a search order according to a width-first search algorithm, it is possible to detect a closed common subgraph CCSG without carrying out a determination with respect to all vertex sets V(n) as determination targets to see whether or not a subgraph constituted by the vertex set V(n) is a common subgraph CSG. This is because when the node nx is made a determination target before the node ny (Relationship 2′), the above described relationship 4 “the vertex set V(ny) of the node ny⊃ the vertex set V(nx) of the node nx” holds, with a search order according to a width first search algorithm taken into consideration, as long as an end vertex in the vertex set V(nx) of the node nx is the same as an end vertex in the vertex set V(ny) of the node ny (Relationship 1); therefore, since the above described relationships 1, 3, and 4 all hold, the above described relationships 5 to 7 also hold, similar to a case of the depth-first search algorithm employed; as a result, the relationship “the item set I(nyd) of the node nyd=the item set I(nxd) of the node nxd” holds; and therefore, addition of a vertex v included in the vertex set V(nyd) of the node nyd but not in the vertex set V(nxd) of the node nxd to the vertex set V(nxd) of the node nxd does not change the common item set. In this case as well, it can be understood that when the above described relationships 1, 3, 4 all hold, the above described determination is not carried out with respect to a vertex set V(nxd) as a determination target.
The reference set table is used in order to avoid, when the above described relationships 1 to 3 all hold between a node nx and anode ny, the above described determination carried out with respect to the vertex set V(nxd) of a child node ncx of the node nx as a determination target. FIG. 8 is a diagram showing one example of the reference set table. The reference set table is a table that correlates each of the vertexes v included in the graph G to reference sets P(v) including at least one reference set (that is, an item set I(n)) that is the product set of the item sets correlated to the respective vertexes in the vertex set V(n) including the vertex v as an end vertex. A role of the reference set table will be described later.
[5-3. Process Details]
FIG. 9 is a flowchart of a process carried out by the control unit 8. In the following, details of a process carried out by the control unit 8 will be described with reference to FIG. 9. Note that execution of the process shown in FIG. 9 by the control unit 8 realizes the graph data obtaining unit 20, the vertex data obtaining unit 22, and the subgraph detection unit 24. Note that the process at S101 in FIG. 9 corresponds to the graph data obtaining unit 20 and the vertex data obtaining unit 22, and the process at S102 and thereafter in FIG. 9 corresponds to the subgraph detection unit 24.
Initially, the control unit 8 carries out a pre-process (S101 to S104) for detecting a common subgraph CSG.
That is, initially, the control unit 8 reads and thereby obtains graph data and vertex data from the database 4 (S101), and then processes the graph data read. Specifically, a link e connected to a vertex v correlated to an item set I(v) that does not include two or more kinds of items i is deleted to thereby disconnect a relationship to other vertexes v (S102). Here, note that as a common subgraph CSG is determined to be a subgraph including vertexes v all having two or more kinds of common items, as described above, a vertex v correlated to an item set I(v) that does not include two or more kinds of items i, that is, a subgraph including a vertex v that does not include two or more kinds of items i, cannot be a common subgraph CSG. In view of the above, the process at S102 is carried out in order to ignore such a vertex v in the process at S103 and thereafter. With the process at S102 carried out, a redundant process is not carried out, so that a time period necessary to detect a common subgraph CSG can be reduced.
Thereafter, the control unit 8 initializes the reference set table (S103). Specifically, the reference sets P(v) of the respective vertexes v are initialized to be null. In addition, the control unit 8 obtains a set of vertexes v included in the graph G as a vertex set Va (S104).
Then, while sequentially selecting the respective vertexes v included in the vertex set Va as a process target vertex vx, the control unit 8 carries out the process at S105 to S108. For example, with the vertex v1 selected, the process at S105 to S108 is carried out, whereby a node nc subordinate to the root node nr1 corresponding to the vertex v1 in the tree T shown in FIG. 7 is produced, and detection of a common subgraph CSG including the vertex v1 is carried out.
Initially, the control unit 8 obtains a set of the vertexes v included in the vertex set Va as a vertex set Vb (S105). Thereafter, the control unit 8 produces a root node n, corresponding to a vertex vx, and stores in the storage unit 10 (S106). For example, for the vertex vx being the vertex v1, a root node nr1 is produced in which the vertex set V(nr1) of the root node nr1 is {v1} and the common item set I(nr1) is {i1, i2, i3, i4}. Note that an end vertex in the vertex set V(nr1) is v1. Thereafter, the control unit 8 carries out a sub-routine S (S107).
In the following, the sub-routine S will be described. FIGS. 10 and 11 show a flowchart of a process of the sub-routine S. The sub-routine S has three arguments, namely, an argument VP corresponding to a vertex set, an argument vp corresponding to one vertex v, and an argument np corresponding to one node n of the tree T. In the process at S107, the sub-routine S is called up with the vertex set Vb as the argument VP, the vertex vx as the argument vp, and the root node nrx as the argument np.
As shown in FIG. 10, in the sub-routine S, initially, a set of the vertexes v adjacent to a vertex vp among the vertexes v included in the vertex set VP is obtained as an adjacent vertex set Vn (S201). Then, the control unit 8 determines whether or not the adjacent vertex set Vn is an empty set (S202). When the adjacent vertex set Vn is an empty set (Y at S202), that is, when there is no vertex v adjacent to the vertex vp among the vertexes v included in the vertex set VP, the control unit 8 terminates the sub-routine S, and carries out the process at S108 in FIG. 9 instead. That is, the vertex vx is excluded from the vertex set Va (S108), and another vertex v is selected from the vertex set Va as a new process target vertex vx before the process at S105 to S108 is carried out.
Meanwhile, when the adjacent vertex set Vn is not an empty set (N at S202), the control unit 8 sequentially selects the respective vertexes v included in the adjacent vertex set Vn as a process target vertex vnx and carries out the process at S203 to S209.
Initially, with reference to the vertex data, the control unit 8 obtains the item set I(vnx) correlated to the vertex vnx, and then obtains as a common item set Ic the product set of the item set I(vnx) and the common item set I(np) of the node np of the tree T (S203). Note that the common item set I(np) of the node np refers to the product set of the item sets I(v) correlated to the respective vertexes v in the vertex set V(np) of the node np, as described above.
Then, the control unit 8 (determination unit) determines whether or not the common item set Ic includes two or more kinds of items i (S204). Note that in the process at S204, the determination is carried out with respect to a subgraph constituted by a vertex set obtained by adding a vertex vnx to the vertex set V(np) of the node np as a determination target to see whether or not all vertexes v in the subgraph have two or more kinds of common items. That is, whether or not a subgraph obtained by adding the vertex vnx to the vertex set V(np) of the node np is a common subgraph CSG is determined.
Note that a vertex set obtained by adding a vertex vnx adjacent to the vertex vp (an end vertex) in the vertex set V(np) of a node np to the vertex set V(np) corresponds to a child node of the node np. Further, the common item set Ic obtained at S203 corresponds to the common item set of all vertexes v in the vertex set (a subgraph) of a child node of the node np. Therefore, it can be rephrased that whether or not all vertexes v in the vertex set (a subgraph) of a child node of the node np have two or more kinds of common items is determined in the process at S204. That is, this can be further rephrased that whether or not a vertex set (a subgraph) of a child node of the node np is a common subgraph CSG is determined.
When the common item set Ic includes two or more kinds of items (Y at S204), the control unit 8 reads the reference sets P(vnx) corresponding to the vertex vnx from the reference set table (see FIG. 8), and determines whether or not the common item set Ic is a subset of any reference set Ip included in the reference sets P(vnx) (S205). A role of this process will be described later.
When the common item set Ic is not a subset of any reference set Ip (N at S205), the control unit 8 includes the common item set Ic as a reference set Ip in the reference sets P(vnx) corresponding to the vertex vnx in the reference set table (see FIG. 8) stored in the storage unit 10 (reference set storage means) (S206). Thereafter, the control unit 8 produces a child node ncx being a child node nc of the node np in the tree T and corresponding to the vertex vnx, and stores in the storage unit 10 (S207). In this case, the vertex set V(ncx) of the node ncx is set to a vertex set obtained by adding the vertex vnx to the vertex set V(np) of the node np, and the common item set I(ncx) is set to the common item set Ic. An end vertex in the vertex set V(ncx) is the vertex vnx.
Note that the node ncx produced at S207 shows one common subgraph CSG. This is because the vertex set V(ncx) of the node ncx is a set of vertexes v, and the common item set I(ncx) refers to a set of items i commonly possessed by the vertexes v included in the vertex set V(ncx) and includes two or more kinds of items (see S204). Therefore, production of a node ncx corresponds to detection of a common subgraph CSG.
Thereafter, the vertex vnx is excluded from the vertex set VP (S208), and the sub-routine S is recursively called up (S209). In this case, the sub-routine S is called up with the vertex set VP as the argument VP, the vertex vnx as the argument vp, and the node ncx produced at S207 as the argument np. With the sub-routine S called up, a node nc subordinate to the node ncx in the tree T shown in FIG. 7 is produced.
Note that when it is determined in the process at S204 that the common item set Ic does not include two or more kinds of items (N at S204), the control unit 8 (control means) does not carry out the process at S205 to S209. In this case, another vertex v included in the adjacent vertex set Vn is selected as a new process target vertex vnx, and the process at S203 is carried out.
In the following, a role of the process at S204 will be described based on an assumption here that the sub-routine S is called up in the process at S107 with the node nr1 as the argument np, and that the vertex v2 is selected as a process target vertex vnx in the process at S204. In this case, as described above, in the process at S204, whether or not the vertex set {v1, v2} obtained by adding the vertex v2 to {v1}, or the vertex set V(nr1) of the node nr1, in other words, the vertex set {v1, v2} corresponding to the child node nc1 of the node nr1, is a common subgraph CSG is determined. That is, whether or not the subgraph {v1, v2} is a common subgraph CSG is determined. As an item i commonly possessed by the vertex v1 and the vertex v2 is only the item ii (see FIG. 3), it is determined in the process at S204 that the common item set Ic does not include two or more kinds of items i. That is, it is determined that the subgraph {v1, v2} is not a common subgraph CSG. As a result, the process at S205 to S209 is not carried out, and accordingly, the node nc1 shown in FIG. 7 is not produced. Further, the sub-routine S with the vertex vnx (v2) as the argument vp and the node nc1 as the argument np is not called up, and accordingly the nodes nc2 to nc5 subordinate to the node nc1 shown in FIG. 7 are not produced. That is, determination as to whether or not the subgraph constituted by the vertex set V(nx) is a common subgraph CSG is not carried out with respect to the vertex set V(nx) of a descendant node (determined as a “node nx”) of the node nc1 as a determination target.
For example, when the sub-routine S with the vertex vnx (v2) as the argument vp and the node nc1 as the argument np is called up, whether or not the vertex set {v1, v2, v3}, or the subgraph {v1, v2, v3}, obtained by adding a vertex v3 adjacent to the vertex vnx (v2), to {v1, v2}, or the vertex set V(nc1) of the node nc1, is a common subgraph CSG is determined in the process at S204. For example, when the respective vertexes v in the subgraph {v1, v2} do not possess two or more kinds of common items i and accordingly the subgraph {v1, v2} is not a common subgraph CSG, naturally, the subgraph {v1, v2, v3} obtained by adding the vertex v3 to the subgraph {v1, v2} cannot be a common subgraph CSG. Therefore, the above described determination process is unnecessary. Regarding this point, in this embodiment, when it is determined in the process at S204 that the subgraph {v1, v2} is not a common subgraph CSG, the process at S205 to S209 is not carried out, and accordingly, determination as to whether or not the subgraph {v1, v2, v3} is a common subgraph CSG is not carried out. That is, an unnecessary process is not carried out.
Further, when it is determined in the process at S205 that the common item set Ic is a subset of any reference set Ip included in the reference sets P(vnx), the control unit 8 (control means) does not carry out the process at S206 and thereafter. In this case, another vertex n included in the adjacent vertex set Vn is selected as a new vertex vnx, and the process at S203 is carried out.
In the following, roles of the reference set table (see FIG. 8) and the process at S205 will be described based on an assumption that, e.g., the sub-routine S shown in FIG. 11 is called up in the process at S209 in FIG. 11 with the vertex v3 as the argument vp and the node nc6 as the argument np, and that the process at S203 to S206 is carried out with the vertex v4 as a process target vertex vnx. In this case, as described above, whether or not the vertex set {v1, v3, v4}, obtained by adding a vertex v4 adjacent to the vertex vnx (v3), to {v1, v3}, or the vertex set V(nc6) of the node nc6, in other words, the vertex set {v1, v3, v4} corresponding to the node nc72, is a common subgraph CSG is determined in the process at S204. That is, whether or not the subgraph {v1, v3, v4} is a common subgraph CSG is determined. As an item i commonly possessed by the vertexes v1, v3, v4 is the items i1, i2 (see FIG. 3), it is determined in the process at S204 that the common item set Ic{i1, i2} includes two or more kinds of items i. That is, the subgraph {v1, v3, v4} is determined as a common subgraph CSG. Further, according to the reference set table at the time (see FIG. 8), the reference sets P(v4) corresponding to the vertex v4 are null, or the initial state, it is determined in the process at S205 that the common item set Ic{i1, i2} is not a subset of any reference set Ip included in the reference sets P(v4). As a result, the process at S206 is carried out, and a common item set Ic{i1, i2} is included as a reference set in the reference sets P(v4) corresponding to the vertex v4 in the reference set table (see FIG. 8).
In the following, assume a case in which the sub-routine S is called up at S107 in FIG. 9 with the vertex v1 as the argument vp and the node nr1 as the argument np, and the process at S203 to S205 is carried out with the vertex v4 as a process target vertex vnx. In this case, as described above, whether or not the vertex set {v1, v4} obtained by adding, as an end vertex, the vertex v4 adjacent to the vertex v1, to {v1}, or the vertex set V(nr1) of the node nr1, in other words, the vertex set {v1, v4} corresponding to the node nc10, is a common subgraph CSG is determined in the process at S204. That is, whether or not the subgraph {v1, v4} is a common subgraph CSG is determined. Then, as an item i commonly possessed by the vertexes v1, v4 is the items i1, i2 (see FIG. 3), it is determined in the process at S204 that the common item set Ic{i1, i2} includes two or more kinds of items i, and accordingly the subgraph {v1, v4} is determined as a common subgraph CSG. Here, according to the reference set table at the time (see FIG. 8), the reference set Ip{i1, i2} is included in the reference sets P(v4) corresponding to the vertex v4, in which the reference set Ip{i1, i2} is the common item set I(nc7) of the node nc7 already produced. That is, as the reference set Ip{i1, i2} is included in the reference sets P(v4) corresponding to the vertex v4, it is determined in the process at S205 that the common item set Ic{i1, i2} of the subgraph {v1, v4} is a subset of any reference set Ip included in the reference sets P(v4), and as a result, the process at S206 to S208 is not carried out. That is, the process at S207 is not carried out, and the node nc10 shown in FIG. 7 is not produced. Further, the process at S208 is not carried out, and the sub-routine S with the vertex vnx (v4) as the argument vp and the node nc10 as the argument np is not called up. As a result, the node nc11 to nc12 subordinate to the node nc10 shown in FIG. 7 are not produced. That is, the vertex set V(nx) of a descendant node (determined as a “node nx”) of the node nc10 is not obtained as a determination target, and accordingly determination as to whether or not a subgraph constituted by the vertex set V(nx) is a common subgraph CSG is not carried out.
When the sub-routine S with, e.g., the vertex vnx (v4) as the argument vp and the node nc10 as the argument np is called up, the vertex set {v1, v4, v5}, or the subgraph {v1, v4, v5}, obtained by adding a vertex v5 adjacent to the vertex vnx (v4), to {v1, v4}, or the vertex set V(nc10) of the node nc10, is a common subgraph CSG is determined in the process at S204. Regarding this point, in this embodiment, when it is determined in the process at S205 that the common item set Ic{i1, i2} of the subgraph {v1, v4} is a subset of any reference set Ip included in the reference sets P(v4), the process at S205 to S209 is not carried out, and accordingly, determination as to whether or not the subgraph {v1, v4, v5} constituted by the vertex set V(nc11) of the child node nc11 of the node nc10 is a common subgraph CSG is not carried out.
A case in which it is determined in the process at S205 that the common item set Ic{i1, i2} of the subgraph {v1, v4} is a subset of any reference set Ip{i1, i2} included in the reference sets P(v4) refers to a case in which there is no possibility, as to a subgraph including the vertex v4, of detection of a common item set that is not included in a common item set already detected.
Further, a case in which it is determined in the process at S205 that the common set Ic{i1, i2} of the subgraph {v1, v4} is a subset of any reference set Ip{i1, i2} included in the reference sets P(v4) refers to a case in which the common item set I(nc10) of the node nc10 is included in the common item set I(nc7) of the node nc7 already produced as the reference set Ip{i1, i2} corresponds to the common item set I(nc7) of the node nc7 already produced, as described above. Further, as an end vertex in the vertex set V(nc7) of the node nc7 and that of the vertex set V(nc10) of the node nc10 are both vertex v4, a case in which it is determined in the process at S205 that the common item set Ic{i1, i2} of the subgraph {v1, v4} is a subset of any reference set Ip{i1, i2} included in the reference sets P(v4) refers to a case in which, supposing that the node nc7 is the node ny and the node nc10 is the node nx, the above described relationships 1 to 3 all hold between the node ny and the node nx. In such a case, as it is obvious that the vertex set {v1, v4, v5}, or the subgraph {v1, v4, v5}, obtained by adding the vertex v5 to the subgraph {v1, v4} is not a closed subgraph, there is no need of carrying out a determination process to determine whether or not the subgraph {v1, v4, v5} is a common subgraph CSG. Regarding this point, such an unnecessary determination process is not carried out in this embodiment.
With the process at S105 to S108 carried out with respect to all vertexes v, as shown in FIG. 9, the control unit 8 outputs a result of the detection of a common subgraph CSG (S109). As described above, the node nc of the tree T stored in the storage unit 10 indicates a common subgraph CSG (a closed common subgraph CCSG in this embodiment). In the process at S109, a common subgraph CSG such as one having, e.g., the maximum number of vertexes v or links e is output to be displayed based on the node nc of the tree T stored in the storage unit 10. Alternatively, a common subgraph CSG such as one having, e.g., the number of vertexes v or links e larger than a predetermined reference number may be output to be displayed. Still alternatively, all detected common subgraphs CSG may be output to be displayed. The above described is details of the process carried out in the subgraph detection device 2.
[5. Conclusion]
In the above-described subgraph detection system 6, graph data of a graph G including, e.g., a plurality of vertexes vi corresponding to a plurality of genes and showing relationship among the plurality of genes is stored. In addition, vertex data that correlates an item set I(v1) to each of the plurality of vertexes vi is stored, in which the vertex data is data indicating a drug that changes expression of a respective gene. Based on the data, a common subgraph CSG showing genes having a direct or indirect relationship to one another whose expressions are commonly changed in response to administration of a common drug is detected in the subgraph detection device 2. Use of a result of the detection can provide useful information in, e.g., narrowing down genes to be a drug discovery target.
Further, for example, in the subgraph detection system 6, graph data of a graph G including, e.g., a plurality of vertexes vi corresponding to a plurality of proteins and showing relationship among the plurality of proteins is stored, and vertex data indicating a drug that changes expression of the respective proteins is stored. In this case, a common subgraph CSG showing proteins having a direct or indirect relationship to one another whose expressions are commonly changed in response to administration of a common drug is detected. Use of a result of the detection can provide useful information in, e.g., narrowing down proteins to be a drug discovery target.
Further, for example, in the subgraph detection system 6, graph data of a graph G including, e.g., a plurality of vertexes vi corresponding to a plurality of users and showing friendship among the plurality of users is stored, and vertex data indicating a product purchased by the respective user is stored. In this case, a common subgraph CSG showing users having direct or indirect friendship to one another and having purchased a common product is detected. Use of a result of the detection enables an efficient advertisement of a product, as described above.
It should be noted here that even when at least one of S204 and S205 in FIG. 10 is omitted, detection of a common subgraph CSG is possible. For example, even when at least one of S204 and S205 in FIG. 10 is omitted, detection of a closed common subgraph CCSG is possible. Here, for example, it is expected that the above described determination process is carried out with respect to all vertex sets, that is, all subgraphs, as determination targets to detect all common subgraphs and to specify a closed common subgraph among those common subgraphs. In this case, however, for example, when the number of vertexes v included in the graph G is enormous (e.g., 10000), a huge amount of time period may possibly be necessary to detect all common subgraphs CSG.
Regarding this point, in the above-described subgraph detection device 2, for example, execution of the process at S204 or S205 in FIG. 10 can prevent execution of an unnecessary process. That is, the above described determination process is not carried out with respect to a subgraph that is not a closed subgraph as a determination target. This can reduce a time period necessary to detect a common subgraph CSG (a closed common subgraph CCSG). Accordingly, detection of a common subgraph CSG (a closed common subgraph CCSG) can be completed in a relatively short time period even when the number of vertexes v included in the graph G is enormous.
[6. Modified Examples]
Note that the present invention is not limited to the above-described embodiment.
[6-1. First Modified Example]
For example, in the process shown in FIG. 9 to FIG. 11, when the above described relationships 1 to 3 all hold between a node nx having a vertex set V(nx) that includes a plurality of vertexes and another node ny, the above described determination process with respect to the vertex set V(nxd) of a node nxd, or a descendant of the node nx, as a determination target is omitted. Alternatively, the above described determination process with respect to the vertex set V(nxd) of a node nxd, or a descendant of the node nx, as a determination target may be omitted when the above described relationships 1 to 3 (or the above described relationships 1, 3, 4) all hold between a node nx (a third node) having a vertex set V(nx) that includes only one vertex and a node ny (a fourth node).
For example, the control unit 8 may carry out a process similar to the process at S205 in FIG. 10 before carrying out the process at S107 in FIG. 9. That is, the control unit 8 may obtain the reference sets P(vx) corresponding to a vertex vx from the reference set table (see FIG. 8), and determine whether or not the item set I(vx) of the vertex vx is a subset of any item set Ip included in the reference sets P(vx). When the item set I(vx) is not a subset of any item set Ip, the process at S107 may be carried out, and when the item set I(vx) is a subset of any item set Ip, the process at S108 may be carried out instead of the process at S107. In this manner as well, execution of an unnecessary process for detecting a common subgraph CSG (a closed common subgraph CCSG) can be refrained.
Further, in a case in which the respective nodes of the tree T are made a determination target in a search order according to a width-first search algorithm, when the above described relationships 1, 2′, 3 (or the above described relationships 1, 3, 4) all hold between a node nx (a third node) having a vertex set V(nx) including only one vertex and a node ny (a fourth node), the above described determination process with respect to the vertex set V(nxd) of a node nxd, or a descendant of the node nx, as a determination target may be omitted. With the above, execution of an unnecessary process for detecting a common subgraph CSG (a closed common subgraph CCSG) can be prevented also when the respective nodes of the tree T are made a determination target in a search order according to a width-first search algorithm.
[6-2. Second Modified Example]
A process for detecting a common subgraph CSG is not limited to the above described process. For example, a reference item set Id including an N or larger number of kinds of items i may initially be determined, and thereafter, a common subgraph CSG in which the item sets I(v) correlated to the respective vertexes v include the reference item set Id may be determined. In this case, the control unit 8 may determine in the process at S203 in FIG. 10 whether or not the item set Id is a subset of the common item set Ic.
[6-3. Third Modified Example]
For example, the item i in the vertex data shown in FIG. 5 may correspond to a service which a user uses or used in the past. In this case, the vertex data is data indicating a service which each user uses or used in the past. In this manner, users having direct or indirect friendship to one another and using or having used a common service can be detected, and accordingly, use of a result of the detection enables, e.g., an efficient advertisement of a service.
[6-4. Fourth Modified Example]
For example, the graph data may be data of a graph including a plurality of vertexes v corresponding to a plurality of documents and showing relationship (e.g., reference relationship) among the plurality of documents. In the graph, for example, when a first document refers to a second document, the vertex v1 corresponding to the first document is connected to the vertex v2 corresponding to the second document via the link e12. In this case, the item in the vertex data may correspond to, e.g., a key word correlated to a document. In this case, the vertex data is data indicating a key word of each document. According to the fourth modified example, documents having direct or indirect reference relationship to one another and a common key word set thereon can be detected based on the above-described graph data and vertex data. Note that, for example, the item i may correspond to a writer of a document.
[6-5. Others]
The graph G may be a graph indicating a relationship of anything other than a gene, a protein, a user, and a document. That is, a vertex v included in the graph G may be a vertex corresponding to anything other than a gene, a protein, a user, and a document. Information correlated to a vertex v in the vertex data may not be limited to information relating to a user, a key word, or a drug, and may be any information other than connection relationship information among the vertexes.
Although a graph G that is a non-directed graph has been described in the above, the graph G may be a directed graph. In this case, the tree T shown in FIG. 7 is produced in consideration of the digraph structure. For example, at S201 in FIG. 10, the control unit 8 may obtain as an adjacent vertex set V, a set of vertexes v connected to a link extending from a vertex vp among the vertexes v adjacent to the vertex vp included in the vertex set VP.
[7. Experiment]
An experiment was carried out using the method A according to the present invention and another method B to detect a set C of closed common subgraphs CCSG each including an M or larger number of links. Details and result of the experiment will be described below.
Assume here that a set C of closed common subgraphs CCSG satisfying all of the conditions described below were to detect:

    
    
        two or more kinds of common items were included in any closed common subgraph CCSG in the set C (two or more kinds of items were included in the product set of the common item sets of the respective closed common subgraphs CCSG); and
        none of the closed common subgraphs CCSG included in the set C shared a vertex with any other closed common subgraph CCSG included in the set C.
    
    


The machine environment described below was prepared in the experiment:

    
    
        CPU: 3.2 GB AMD Opteron (registered trademark)
        memory capacity: 1 GB
        OS: Linux (kernel 2.6)

(Method A)

    
    
    Phase A1: carry out the process shown in FIGS. 9 to 11 to specify a closed common subgraph CCSG;
    Phase A2: specify a closed common subgraph CCSG including an M or larger number of links from among the closed common subgraphs CCSG specified at the phase A1; and
    Phase A3: detect the set C based on the common item set of the closed common subgraphs CCSG specified at the phase A2.

(Method B)

    Phase B1: detect a frequent item set including two or more kinds of items, using an Apriori method, in which a frequent item set referred to an item set that is included to an itemset an F or larger number of vertexes were collated to, and free data mining software “Weka” was used to detect a frequent item set in this experiment; and
    Phase B2: specify for every frequent item set a closed common subgraph CCSG including vertexes correlated to the item sets, including the frequent item set, and having an “M” or larger number of links, to thereby detect the set C.


Note that when the “F” was set to “2” and the “M” was set to “1” for the method B, a closed common subgraph CCSG that was the same as the closed common subgraph CCSG specified at the phase A1 of the method A was specified.
In the first experiment, the “F” was set to “2” and the “M” was set to “10”, and the set C was then detected in the experimental target graph. Note that a graph in which a vertex corresponded to a “document”, a link corresponded to “reference relationship among documents”, and an item correlated to a vertex corresponded to “a writer of a document” was used as an experimental target graph. Note that the total number of writers was 16638. The numbers of vertexes and links in the experimental target graph were as follows:

    
    
        the number of vertexes: 22178
        the number of links: 112304
    
    


According to the method A, detection of the set C was completed in 7.9 seconds. Meanwhile, according to the method B, the memory ran short in 101 seconds after the experiment started, and as a result, the process was forcibly terminated. This was considered because a huge number of frequent item set candidates were produced for detection of a frequent item set at the phase B1.
In another experiment, the “F” was set to “4” and the “M” was set to “7”, and the set C was then detected in the experimental target graph. Note that a graph in which a vertex corresponded to a “gene”, a line corresponded to “an interacting relationship among genes”, and an item correlated to a vertex corresponded to “a factor that changes expression of a gene” was used as an experimental target graph. Note that the total number of the above mentioned factors was 173 kinds. The numbers of vertexes and links in the experimental target graph were as follows:

    
    
        the number of vertexes: 6152
        the number of links: 3318
    
    


According to the method A, detection of the set C was completed in 35.9 seconds. Meanwhile, according to the method B, the memory ran short in 17302 seconds after the experiment started, and as a result, the process was forcibly terminated. This was considered because a huge number of frequent item set candidates were produced for detection of a frequent item set at the phase B1.
With reference to the above-described experimental results, it can be concluded that a memory amount and a time period necessary for the process were reduced according to the method A according to this embodiment, compared to the method B.

## Claims

1. A subgraph detection device, comprising:
graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and

means for carrying out the detection, based on a result of determination by the determination means, and
when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is same as an end vertex in the vertex set of the first node and that is a node having a vertex set including the vertex set of the first node, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the first node as the determination target.

2. The subgraph detection device according to the claim 1, wherein the
determination means, makes respective nodes of the search tree as a determination target in the search order according to the depth-first search algorithm, and
the determination means, when a product set of element sets correlated to respective vertexes in a vertex set of the first node is included in a product set of element sets correlated to respective vertexes in a vertex set of the second node that is a node having a vertex set including an end vertex that is same as an end vertex in the vertex set of the first node and that is a node before the first node in the search order, does not carry out the determination with respect to a vertex set of a descendant node of the first node as the determination target.

3. The subgraph detection device according to claim 2, wherein
the subgraph detection means includes means for storing, when the determination is carried out, the product set of the element sets correlated to the respective vertexes in the vertex set of the node being the determination target as a reference set in reference set storage means so as to be correlated to an end vertex in the vertex set of the node being the determination target, and
when the product set of the element sets correlated to the respective vertexes in the vertex set of the first node is included in a reference set that is stored in the reference set storage means so as to be correlated to the end vertex in the vertex set of the first node, the determination means does not carry out the determination with respect to the vertex set of the descendant node of the first node as the determination target.

4. A subgraph detection device comprising:
graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection , based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N >=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
means for carrying out the detection, based on a result of determination by the determination means, and

when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.

5. The subgraph detection device according to the claim 4, wherein the
determination means, makes respective nodes of the search tree as a determination target in the search order according to the depth-first search algorithm,
the determination means, when a vertex set of the third node includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of the fourth node that is a node having a vertex set including the vertex as an end vertex and that is a node before the third node in the search order, does not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.

6. The subgraph detection device according to claim 5, wherein the subgraph detection means includes:
means for storing, when the determination is carried out, the product set of the element sets correlated to the respective vertexes in the vertex set of the node being the determination target as a reference set in reference set storage means so as to be correlated to an end vertex in the vertex set of the node being the determination target, and
when the vertex set of the third node includes only one vertex and the element set correlated to the vertex is included in a reference set that is stored in the reference set storage means so as to be correlated to the vertex, the determination means does not carry out the determination with respect to the vertex set of the descendant node of the third node as the determination target.

7. A subgraph detection device, comprising: p1 graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection , based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N >=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
means for carrying out the detection, based on a result of determination by the determination means, and

when a product set of element sets correlated to respective vertexes in a vertex set of the node does not include the N or large number of kinds of elements, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the node as the determination target.

8. A subgraph detection method, comprising:
a graph data obtaining step of obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
a vertex data obtaining step of obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
a subgraph detection step of carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the subgraph detection step comprises:
a determination step that, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, of carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
a detection step of carrying out the detection, based on a result of determination by the determination step, and
when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is same as an end vertex in the vertex set of the first node and that is a node having a vertex set including the vertex set of the first node, the determination with respect to a vertex set of a descendant node of the first node as the determination target is not carried out by the determination step.

9. A non-transitory computer readable information recording medium recording a program for causing a computer to function as:
graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
means for carrying out the detection, based on a result of determination by the determination means, and
when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is same as an end vertex in the vertex set of the first node and that is a node having a vertex set including the vertex set of the first node, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the first node as the determination target.

10. A subgraph detection method, comprising:
a graph data obtaining step of obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
a vertex data obtaining step of obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
a subgraph detection step of carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the subgraph detection step comprises:
a determination step that, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, of carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
a detection step of carrying out the detection, based on a result of determination by the determination step, and
when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex, the determination with respect to a vertex set of a descendant node of the third node as the determination target is not carried out by the determination step.

11. A non-transitory computer readable information recording medium recording a program for causing a computer to function as:
graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
means for carrying out the detection, based on a result of determination by the determination means, and
when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.

12. A subgraph detection method, comprising:
a graph data obtaining step of obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
a vertex data obtaining step of obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
a subgraph detection step of carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N >=1) or larger number of kinds of elements,
wherein the subgraph detection step comprises:
a determination step that, while making respective nodes of a search tree as a determiation target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, of carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
a detection step of carrying out the detection, based on a result of determination by the determination step, and
when a product set of element sets correlated to respective vertexes in a vertex set of the node does not include the N or large number of kinds of elements, the determination with respect to a vertex set of a descendant node of the node as the determination target is not carried out by the determination step.

13. A non-transitory computer readable information recording medium recording a program for causing a computer to function as:
graph data obtaining means for obtaining graph data indicating a graph including a plurality of vertexes and one or more edges;
vertex data obtaining means for obtaining vertex data that correlates an element set including at least one kind of element to the vertex; and
subgraph detection means for carrying out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N >=1) or larger number of kinds of elements,
wherein the subgraph detection means includes:
determination means, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, for carrying out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
means for carrying out the detection, based on a result of determination by the determination means, and
when a product set of element sets correlated to respective vertexes in a vertex set of the node does not include the N or large number of kinds of elements, the determination means does not carry out the determination with respect to a vertex set of a descendant node of the node as the determination target.

14. A subgraph detection device comprising at least one microprocessor configured to:
obtain graph data indicating a graph including a plurality of vertexes and one or more edges;
obtain vertex data that correlates an element set including at least one kind of element to the vertex; and
carry out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the detection of the subgraph comprises:
the at least one microprocessor, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, carries out a determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
the at least one microprocessor carries out the detection, based on a result of determination, and
when a product set of element sets correlated to respective vertexes in a vertex set of a first node in the search tree is included in a product set of element sets correlated to respective vertexes in a vertex set of a second node that is a node having a vertex set including an end vertex that is same as an end vertex in the vertex set of the first node and that is a node having a vertex set including the vertex set of the first node, the at least one microprocessor does not carry out the determination with respect to a vertex set of a descendant node of the first node as the determination target.

15. A subgraph detection device, comprising at least one microprocessor configured to:
obtain graph data indicating a graph including a plurality of vertexes and one or more edges;
obtain vertex data that correlates an element set including at least one kind of element to the vertex; and
carry out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the detection of the subgraph comprises:
the at least one microprocessor, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, carries out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
the at least one microprocessor carries out the detection, based on a result of determination, and
when a vertex set of a third node in the search tree includes only one vertex, and an element set correlated to the vertex is included in a product set of element sets correlated to respective vertexes in a vertex set of a fourth node that is a node having a vertex set including the vertex as an end vertex, the at least one microprocessor does not carry out the determination with respect to a vertex set of a descendant node of the third node as the determination target.

16. A subgraph detection device comprising at least one microprocessor configured to:
obtain graph data indicating a graph including a plurality of vertexes and one or more edges;
obtain vertex data that correlates an element set including at least one kind of element to the vertex; and
carry out detection, based on the graph data and the vertex data, of a subgraph being a subgraph of the graph in which a product set of the element sets correlated to the respective vertexes in the subgraph includes an N (N>=1) or larger number of kinds of elements,
wherein the detection of the subgraph comprises:
the at least one microprocessor, while making respective nodes of a search tree as a determination target in a search order according to a depth or width-first search algorithm, in which the nodes each have a set of vertexes in the graph, and the search tree has a vertex set obtained by adding, as a new end vertex, one vertex adjacent to an end vertex in a vertex set of a parent node to the vertex set as a child node of the parent node, carries out determination, when a vertex set of a node being the determination target includes a plurality of vertexes, to see whether or not a product set of element sets correlated to the respective vertexes in the vertex set includes the N or larger number of kinds of elements, and
the at least one microprocessor carries out the detection, based on a result of determination, and
when a product set of element sets correlated to respective vertexes in a vertex set of the node does not include the N or large number of kinds of elements, the at least one microprocessor does not carry out the determination with respect to a vertex set of a descendant node of the node as the determination target.