A k-representative g-skyline query method
By preprocessing the dataset and constructing a dominance order graph, prioritizing possible outcomes using replacement and expansion strategies, and combining these with pruning strategies, the problem of high computational cost in existing methods is solved, achieving efficient k-representation G-Skyline queries.
Patent Information
- Application Number
- CN202310454645.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-25
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2043-04-25
AI Technical Summary
Existing k-representing G-Skyline query methods require querying all combinations of all Skyline points in a given dataset, resulting in excessive computational costs.
By preprocessing the entire dataset to be queried, an ordered contour set is obtained, and a dominance graph is constructed. A dominance order graph is constructed using replacement and expansion strategies. Combined with a pruning strategy, the set most likely to become the result is processed first, and data tuples that cannot become k represent the query result of G-Skyline are pruned to reduce the amount of computation.
This effectively reduces the computational cost of k representing G-Skyline queries, thus improving query efficiency.
Smart Images

Figure CN116561380B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data query technology, and in particular to a k-representation G-Skyline query method. Background Technology
[0002] Skyline queries are a typical multi-objective optimization problem, with excellent applications in multidimensional data queries in the database field. A classic example of a skyline query is when a user is traveling to Nassau Beach and wants to find a cheap hotel that is close to the beach. Generally, hotels closer to the beach are more expensive, so the system cannot return an optimal result. Instead, it can only return hotels that the user might be interested in, hotels that are not inferior to other hotels in terms of price and distance, i.e., not dominated by other hotels. These undominated hotels are the skyline. An important variation of the skyline is the group-based skyline, or G-skyline, which aims to find the optimal group of data points in a given set of data points. It is very important in many applications for calculating the optimal group of data points.
[0003] However, existing k-representing G-Skyline methods all require querying all gsize combinations of Skyline points in a given dataset before calculating the dominated area, resulting in a high computational cost for k-representing G-Skyline query methods. Summary of the Invention
[0004] This invention provides a k-representation G-Skyline query method to overcome the problem of high computational cost in existing k-representation G-Skyline methods.
[0005] To achieve the above objectives, the technical solution of the present invention is as follows:
[0006] A method for querying G-Skyline where k represents the skyline includes the following steps:
[0007] Step S1: Preprocess the entire dataset D to be queried to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n}; where s n This represents the nth data tuple;
[0008] Step S2: Construct a dominance graph based on the dominance relationships of data tuples within the overall dataset D to be queried; the dominance graph includes the ordered contour set SKY(D) = {s1, s2, ..., s...} n All data tuples within} and the entire dataset D to be queried, excluding the ordered contour set SKY(D) = {s1,s2,…,s} n} data tuples that may become part of the G-Skyline query results;
[0009] Step S3: Based on the replacement and expansion strategies, process the ordered contour set SKY(D) = {s1, s2, ..., s} in the dominance graph. n The process involves constructing a dominance order graph.
[0010] Step S4: Prune the set of data tuples in the dominance order graph that cannot be k representing the query result of G-Skyline according to the pruning strategy;
[0011] Step S5: Select the set of the k data tuples with the largest dominance area in the pruned dominance order graph and return it as the final result.
[0012] Furthermore, in step S1, an ordered contour set SKY(D) = {s1, s2, ..., s} is obtained. n}, specifically
[0013] Step S1.1: Use the BBS algorithm to calculate the sky layer where the data tuples in the overall dataset D to be queried are located, and obtain the contour set SKY(D);
[0014] The formula for calculating the skyline layer of the overall dataset D to be queried is as follows:
[0015]
[0016] Where D represents the entire dataset to be queried; SL i SL1 represents the i-th skyline layer; SL1 represents the first skyline layer; SKY(D) represents the contour set; and This represents the union of data tuples from each skyline layer from 1 to i-1;
[0017] Step S1.2: Calculate the dominant area of each Skyline point in the contour set SKY(D); the calculation formula is as follows:
[0018] DomSize(p)=(1-p[1])×(1-p[2])×...×(1-p[d])
[0019] Where d represents the given data dimension; p represents the data tuple, DomSize(p) represents the dominance area of p; p[i] represents the attribute value of data tuple p in dimension i, and (1≤i≤d);
[0020] Step S1.3: Sort the Skyline points in the contour set SKY(D) in descending order of their dominance area values to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n}
[0021] Furthermore, the construction of the dominance relationship diagram described in step S2 specifically involves...
[0022] Step S2.1: Query and retain the data tuples located within the first gsize skyline layer of the overall dataset D to be queried; where gsize represents the size of the data tuples in the G-Skyline query.
[0023] Step S2.2: Determine the dominance relationship among data tuples located in the first gsize skyline layer of the overall dataset D to be queried;
[0024] Furthermore, data tuples dominated by fewer than or equal to gsize-1 data tuples within the first gsize sky layer are retained; data tuples dominated by more than gsize-1 data tuples within the first gsize sky layer are filtered out.
[0025] The method for determining the dominance relationship between data tuples is as follows: given two d-dimensional data tuples p and q in the overall dataset D to be queried, and p,q∈D;
[0026] If p dominates q, that is... The following conditions must be met:
[0027]
[0028]
[0029] Where p[i] represents the attribute value of tuple P in dimension i; q[i] represents the attribute value of tuple q in dimension i; p[j] represents the attribute value of tuple P in dimension j; q[j] represents the attribute value of tuple q in dimension j;
[0030] Step 2.3: Construct a dominance relationship graph based on the dominance relationship between the skyline layer where each data tuple is located and the data tuple.
[0031] Furthermore, the construction of the dominance order graph described in step S3 specifically involves...
[0032] Step S3.1: Extract the ordered contour set SKY(D) = {s1, s2, ..., s...} nThe set of tuples with the largest dominating area within} is {s1}, and {s1} is used as the root node of the dominating order graph;
[0033] Step S3.2: Given the ordered contour set SKY(D) = {s1, s2, ..., s...} n A sorted set l-SetD(s) consisting of any l data tuples in} i );
[0034] The ordered set l-SetD(s) i The data tuples within the set are arranged in descending order of their dominance area, and the ordered set is l-SetD(s). i The data tuple with the smallest dominant area in ) is defined as s i ;
[0035] Step 3.3: Perform a replacement strategy on the root node {s1} in the dominance order graph to generate a replacement set as the right child of the root node;
[0036] The replacement strategy specifically involves: replacing the ordered set l-SetD(s) with... i The data tuple s with the smallest dominant area in ) i Replace with the first updated data tuple s i+1 The new set l-SetD(s) is obtained. i )∪{s i+1}-{s i};
[0037] The new set l-SetD(s) i )∪{s i+1}-{s i} represents l-SetD(s i The replacement set of ), wherein the replacement set is represented as repSet(l-SetD(s) i ));
[0038] Step 3.4: Perform an expansion strategy on the root node {s1} in the dominance order graph to generate an expansion set as the left child of the root node;
[0039] The specific expansion strategy is as follows: to the l-SetD(s) i Add the first updated data tuple s to ) i+1 This yields a new set l-SetD(s) of size l+1. i )∪{s i+1};
[0040] The new set l-SetD(s) i )∪{s i+1} represents l-SetD(s iThe extended set of ), wherein the extended set is represented as expSet(l-SetD(s) i ));
[0041] Furthermore, when the size of the expanded set is equal to gsize, the expansion stops, and the replacement set is directly obtained as the right child based on the replacement strategy.
[0042] Furthermore, the pruning strategy described in step S4 is specifically as follows:
[0043] Step S4.1: Set k to represent the number of results returned by the G-Skyline query and the size of the data tuple set gsize, and set the ordered contour set SKY(D) = {s1,s2,…,s...} in the dominance order graph. n} are placed into two preset sets, and defined as heap set H and candidate set C respectively, and heap set H and candidate set C are initialized; the heap set is initialized as H1={{s1}}, and the candidate set is initialized as C1={{s1}};
[0044] Where s1 represents the data tuple with the largest dominant area in the ordered contour set SKY(D);
[0045] Step S4.2: Sort the sets of data tuples in the heap set H in descending order according to the upper bound of the dominance area to obtain the heap head set;
[0046] The heap head set includes the set of data tuples with the largest upper bound value of the dominating area within the current heap set H;
[0047] Step S4.3: Sort the sets of data tuples in the candidate set C in descending order of their dominance area values, and obtain the dominance area value k of the k-th G-Skyline data tuple set in the current candidate set C. max ;
[0048] The dominant area value k of the k-th G-Skyline data tuple in the current candidate set C. max Perform initialization;
[0049] Step S4.4: Compare the upper bound of the dominance area of the heap head set with the dominance area value k of the k-th G-Skyline data tuple in the current candidate set C. max Size;
[0050] If the upper bound of the dominance area of the head set is greater than the dominance area value k of the kth G-Skyline data tuple set in the current candidate set C max Then, a replacement strategy and an expansion strategy are executed on the heap head set to obtain a replacement set and an expansion set;
[0051] Delete the head heap set from the heap set H, and add the obtained replacement set and the extended set to the heap set H and the candidate set C;
[0052] Step S4.5: Repeat Steps S4.2 to S4.4 until the upper bound value of the dominated area of the head heap set is less than or equal to the dominated area value k of the k-th G-Skyline data tuple set in the current candidate set C max ;
[0053] Step S4.6: If the upper bound value of the dominated area of the head heap set is less than or equal to the dominated area value k of the k-th G-Skyline data tuple in the current candidate set C max ;
[0054] Then determine whether the sizes of the first k G-Skyline data tuple sets in the current candidate set C are all gsize;
[0055] If so, return the first k data tuple sets in the current candidate set C as the query result;
[0056] If not, execute Step S4.7;
[0057] Step S4.7: Take out the inferior G-Skyline data tuple sets with set size |G| < gsize in the first k G-Skyline data tuple sets of the current candidate set C; the inferior G-Skyline data tuple sets include G-Skyline data tuple sets with set size |G| < gsize;
[0058] And query through the domination relationship graph whether there are gsize - |G| non-Skyline tuples that are only dominated by the tuples in the inferior G-Skyline data tuple sets;
[0059] If there are, execute Step S4.8; if not, execute Step S4.9;
[0060] Step S4.8: Combine gsize - |G| non-Skyline tuples that are only dominated by the tuples in the inferior G-Skyline data tuple sets with the inferior G-Skyline data tuple sets to obtain a replacement set with set size gsize;
[0061] Delete the inferior G-Skyline data tuple sets from the current candidate set C, and add the replacement set with set size gsize to the current candidate set C as the query result;
[0062] Step S4.9: Delete the set of inferior G-Skyline data tuples from the current candidate set C. The current candidate set C from which the set of inferior G-Skyline data tuples is deleted is taken as the latest candidate set C. Repeat steps S4.5 to S4.7.
[0063] Furthermore, the formula for calculating the dominant area value of the data tuple set within the candidate set C is as follows:
[0064]
[0065] Where G represents a given set; DomSize(G) represents the dominance area of the given set G; IntSize(G) represents the dominance area of the given set G. i ) represents the set of data tuples G i The intersection area, which refers to the area / volume of the intersection space; G i G' represents a subset of a given set G;
[0066] The subset G i The formula for calculating the intersection area is:
[0067]
[0068] Where j represents the dimension, and j∈[1,d]; p[j] represents the attribute value of the data tuple P in dimension j.
[0069] Furthermore, the formula for calculating the upper bound of the dominance area of the data tuple set within the heap set H is as follows:
[0070] UpDomSize(G)=max(ExpUpDomSize(G),RepUpDomSize(G))
[0071] Where G represents any set in a given dominance order graph; ExpUpDomSize(G) represents the upper bound of the extension of any set G; RepUpDomSize(G) represents the upper bound of the replacement of any set G; UpDomSize(G) represents the upper bound of the dominance area of any set G; and the value of UpDomSize(G) is the maximum of ExpUpDomSize(G) and RepUpDomSize(G);
[0072] The formula for calculating the extended upper bound is as follows:
[0073] ExpUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i ))+DomSize({s i+1})+..+DomSize({si+gsize-l})
[0074] Among them, l-SetD(s) i Let s represent a set consisting of any l tuples in SKY(D). i This represents the data tuple with the smallest dominating area in the set;
[0075] The formula for calculating the upper bound of the replacement is:
[0076] RepUpDomSize(l-SetD(s i ))=DomSize({s i+1})+DomSize({s i+2})+…+DomSize({s i+gsize}), l = 1;
[0077] RepUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i )-{s i})+DomSize({s i+1})+DomSize({s i+2})+…+DomSize({s i+gsize-l+1}), l>1
[0078] Among them, l-SetD(s) i ) represents a set consisting of any l tuples in SKY(D); s i The tuple with the smallest dominating area in the set is represented by l; l represents the number of tuples; gsize represents the size of the set.
[0079] Beneficial effects: This invention provides a k-representation G-Skyline query method, which first preprocesses the entire dataset to be queried to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n}, and construct a dominance graph based on the dominance relationships of the data tuples within the overall dataset D to be queried, and then construct an ordered contour set SKY(D) = {s1,s2,…,s} in the dominance graph. nA dominance order graph is constructed based on the replacement and expansion strategies. The dominance order graph allows for the priority processing of the set most likely to become the result. The set of data tuples in the dominance order graph that cannot become the result of the k-representing G-Skyline query is pruned according to the pruning strategy. The dominance area of the set of data tuples that can become the result of the k-representing G-Skyline query is calculated, and the set of data tuples that cannot become the result of the k-representing G-Skyline query is filtered, further reducing the computational cost in the k-representing G-Skyline query process. Attached Figure Description
[0080] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0081] Figure 1 This is a flowchart of a method for querying G-Skyline where k represents the present invention;
[0082] Figure 2 This is a system flowchart of a method for querying G-Skyline where k represents the present invention;
[0083] Figure 3 This is a schematic diagram of the dataset to be queried when calculating k to represent G-Skyline in an embodiment of the present invention;
[0084] Figure 4 This is a schematic diagram of the skyline layer when k represents the G-Skyline in an embodiment of the present invention;
[0085] Figure 5 This is a dominance relationship graph of the dataset to be queried in this embodiment of the invention;
[0086] Figure 6 In response to Figure 4 A dominance order graph is constructed from the dominance relationship graph of the dataset to be queried. Detailed Implementation
[0087] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0088] This embodiment provides a method for querying G-Skyline where k represents G, such as Figure 1 As shown, it includes the following steps:
[0089] Step S1: Preprocess the entire dataset D to be queried to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n}; where s n This represents the nth data tuple;
[0090] Step S2: Construct a dominance graph based on the dominance relationships of data tuples within the overall dataset D to be queried; the dominance graph includes the ordered contour set SKY(D) = {s1, s2, ..., s...} n All data tuples within}, and the entire dataset D to be queried except for the ordered contour set SKY(D) = {s1,s2,…,s n The data tuples that may become G-Skyline query results, as well as several non-Skyline data tuples in addition to the ordered contour set;
[0091] Step S3: Based on the replacement and expansion strategies, process the ordered contour set SKY(D) = {s1, s2, ..., s} in the dominance graph. n The process involves constructing a dominance order graph.
[0092] Step S4: Prune the set of data tuples in the dominance order graph that cannot be k representing the query result of G-Skyline according to the pruning strategy;
[0093] Step S5: Select the set of the k data tuples with the largest dominance area in the pruned dominance order graph and return it as the final result.
[0094] This invention discloses a k-representation G-Skyline query method, which solves the problem of high computational cost of existing k-representation G-Skyline methods. By leveraging existing technologies and fully utilizing spatial indexing and related knowledge, an efficient k-representation G-Skyline calculation method is implemented. First, the entire dataset to be queried is preprocessed to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...}. n}, and construct a dominance graph based on the dominance relationships of the data tuples within the overall dataset D to be queried, and then construct an ordered contour set SKY(D) = {s1,s2,…,s} in the dominance graph. nA dominance order graph is constructed based on the replacement and expansion strategies. The dominance order graph allows for the priority processing of the set most likely to become the result. The set of data tuples in the dominance order graph that cannot become the result of the k-representing G-Skyline query is pruned according to the pruning strategy. The dominance area of the set of data tuples that can become the result of the k-representing G-Skyline query is calculated, and the set of data tuples that cannot become the result of the k-representing G-Skyline query is filtered, further reducing the computational cost in the k-representing G-Skyline query process.
[0095] In a specific embodiment, step S1 involves obtaining an ordered contour set SKY(D) = {s1, s2, ..., s...} n}, specifically
[0096] Step S1.1: Use the BBS algorithm to calculate the sky layer where the data tuples in the overall dataset D to be queried are located, and obtain the contour set SKY(D);
[0097] The formula for calculating the skyline layer of the overall dataset D to be queried is as follows:
[0098]
[0099] Where D represents the entire dataset to be queried; SL i SL1 represents the i-th skyline layer; SL1 represents the first skyline layer; SKY(D) represents the contour set; and This represents the union of data tuples from each skyline layer from 1 to i-1;
[0100] Step S1.2: Calculate the dominance area of each Skyline point in the contour set SKY(D); perform 0-1 normalization on the overall dataset D to be queried, that is, transform the value of each dimension of all data tuples in the overall dataset D to be queried to the range [0,1]. Given a d-dimensional data tuple p, the dominance area of p is represented as DomSize(p), and the calculation formula is as follows:
[0101] DomSize(p)=(1-p[1])×(1-p[2])×...×(1-p[d])
[0102] Where d represents the given data dimension; p represents the data tuple, DomSize(p) represents the dominance area of p; p[i] represents the attribute value of tuple p in dimension i, and (1≤i≤d);
[0103] Step S1.3: Sort the Skyline points in the contour set SKY(D) in descending order of their dominance area values to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n}
[0104] In a specific embodiment, the construction of the dominance relationship graph in step S2 specifically involves:
[0105] Step S2.1: Query and retain the data tuples located within the first gsize skyline layer of the overall dataset D to be queried; where gsize represents the size of the data tuples in the G-Skyline query.
[0106] Step S2.2: Determine the dominance relationship among data tuples located in the first gsize skyline layer of the overall dataset D to be queried;
[0107] Furthermore, data tuples dominated by fewer than or equal to gsize-1 data tuples within the first gsize sky layer are retained; data tuples dominated by more than gsize-1 data tuples within the first gsize sky layer are filtered out.
[0108] like Figure 4 As shown, the i-th skyline layer is denoted as SL. i , SL1=SKY(D)={p1,p2,p3,p4,p5,p6,p7}, SL2=SKY(D-SL1)={p8,p9,p 10 ,p 11 ,p 12}, SL3=SKY(D-SL1∪SL2)={p 13 ,p 14 ,p 15}, SL4=SKY(D-SL1∪SL2∪SL3)={p 16 ,p 17 When k represents the group size of the G-Skyline query (gsize = 3), the data tuples that may become the final query result are all located in the first 3 skyline layers of the data tuple set. Figure 3 The dataset, which may become the tuples in the final query results, is located in SL1, SL2, and SL3, where for data tuple p... 13 In general, p2, p3, p4, and p9 can all allocate p 13 Available p 13 Since the number of data tuples is more than 2, therefore p 13 Filter out, similarly, dominate p 14The number of data tuples is also more than 2, therefore p 13 p 14 All tuples were filtered out. A dominance graph was constructed from the remaining data tuples, and the result is as follows: Figure 5 As shown,
[0109] The method for determining the dominance relationship between data tuples is as follows: given two d-dimensional data tuples p and q in the overall dataset D to be queried, and p,q∈D;
[0110] Then p dominates q, that is The following conditions must be met:
[0111]
[0112]
[0113] Where p[i] represents the attribute value of tuple P in dimension i; q[i] represents the attribute value of tuple q in dimension i; p[j] represents the attribute value of tuple P in dimension j; q[j] represents the attribute value of tuple q in dimension j;
[0114] Step 2.3: Construct a dominance relationship graph based on the dominance relationship between the retained data tuples and their respective skyline layers;
[0115] The specific method for constructing the dominance relationship graph is as follows: based on the ordered contour set SKY(D) = {s1, s2, ..., s...} n Given k represents the group size of a G-Skyline query and gsize, the dominance graph is represented by the tuple (V,E) Graph=(V,E), where v∈V represents the ordered contour set SKY(D)={s1,s2,…,s…} n In the array, tuple p is dominated by at most gsize-1 tuples, and the directed edge e = (v i →v j )∈E represents v i Dominate v j And v i and v j The difference in skyline levels between the data tuples is 1. Each node in the dominance graph has the structure [level index, node index, ancestor set, direct descendant set], where the level index is the skyline level of the data tuple. For a node p in the dominance graph, the ancestor set AncSet(p) of p is the set of all data tuples that can dominate that data tuple. The direct descendant set DirDesSet(p,i) of p represents the skyline SL at level i. i In the graph, the set of tuples that are dominated by data tuple p and have an edge directly connected to data tuple p in the dominance graph. For any given set G, AncSet(G) = ∪ p∈G AncSet(p),DirDesSet(G,i)=∪ p∈G DirDesSet(p,i).
[0116] The known dominance graph contains all data tuples that can potentially become the query result for a G-Skyline, k. However, searching for the k G-Skylines of size gsize with the largest dominance area based on this graph incurs significant computational costs. To address this issue, this invention proposes replacement and expansion strategies, and constructs a novel index structure, the dominance order graph, based on these strategies. Finally, a formula for calculating the upper bound of the set's dominance area is presented, and pruning is performed using this formula to reduce computational costs.
[0117] In a specific embodiment, the construction of the dominance order graph in step S3 specifically involves:
[0118] Step S3.1: Extract the ordered contour set SKY(D) = {s1, s2, ..., s...} n The set of tuples with the largest dominating area within} is {s1}, and {s1} is used as the root node of the dominating order graph;
[0119] Step S3.2: Given the ordered contour set SKY(D) = {s1, s2, ..., s...} n A sorted set l-SetD(s) consisting of any l data tuples in} i );
[0120] The ordered set l-SetD(s) i The data tuples within the set are arranged in descending order of their dominance area, and the ordered set is l-SetD(s). i The data tuple with the smallest dominant area in ) is defined as s i ;
[0121] Step 3.3: Perform a replacement strategy on the root node {s1} in the dominance order graph to generate a replacement set as the right child of the root node;
[0122] The replacement strategy specifically involves: replacing the ordered set l-SetD(s) with... i The data tuple s with the smallest dominant area in ) i Replace with updated data tuple s i+1 The new set l-SetD(s) is obtained. i )∪{s i+1}-{s i};
[0123] The new set l-SetD(s)i )∪{s i+1}-{s i} represents l-SetD(s i The replacement set of ), wherein the replacement set is represented as repSet(l-SetD(s) i ));
[0124] Step 3.4: Perform an expansion strategy on the root node {s1} in the dominance order graph to generate an expansion set as the left child of the root node;
[0125] The specific expansion strategy is as follows: to the l-SetD(s) i Add the updated data tuple s to ) i+1 This yields a new set l-SetD(s) of size l+1. i )∪{s i+1};
[0126] The new set l-SetD(s) i )∪{s i+1} represents l-SetD(s i The extended set of ), wherein the extended set is represented as expSet(l-SetD(s) i ));
[0127] Furthermore, when the size of the expanded set equals gsize, the expansion stops, and the replacement set is directly obtained as the right child based on the replacement strategy. For newly added sets in the dominance order graph, the replacement and expansion strategies are continued in this manner. Since k represents the G-Skyline query, which aims to find k G-Skylines with the largest dominance area and a set size of gsize, when the set size within a node equals gsize, there is no need to continue expansion; it is sufficient to find the replacement set as the right child.
[0128] Data is processed in a bottom-up manner, gradually generating sets of groups that meet the specified size. In addition, using a greedy approach, it is believed that the larger the area dominated by data tuples in a set, the larger the area dominated by the set, and the more likely the set is to become the final result of the query k representing G-Skyline. Replacement and expansion strategies are used to prioritize the processing of sets with larger areas.
[0129] against Figure 2Given a dataset where k represents a G-Skyline query, and k = 3 results are returned, with a G-Skyline group size gsize of 3, and a known ordered contour set SKY(D) = {p5,p4,p3,p6,p2,p7,p1}, construct a dominance order graph. Use {p5} as the root node. Perform replacement and expansion strategies on {p5} to generate sets {p4} and {p5,p4}, where {p5,p4} is the left child of the root node and {p4} is the right child. The replacement and expansion sets for {p5,p4} are {p5,p3} and {p5,p4,p3}, respectively, with {p5,p3} and {p5,p4,p3} serving as the right and left children of {p5,p4}. Following this method, when the size of the set within a node equals gsize, there is no need to continue expanding. Simply find and replace the set as the right child. For example, the set {p5,p4,p3} has a data tuple set size of 3. There is no need to expand it. Simply replace the set {p5,p4,p6} as the right child.
[0130] In a specific embodiment, the pruning strategy will prune sets that are unlikely to be k, representing the G-Skyline query results; given the ordered contour set SKY(D) = {s1, s2, ..., s...} of dataset D. n}, where k represents the number of results returned by the G-Skyline query and the data tuple size gsize. The heap H is initialized as {{s1}}, and the candidate set C is initialized as {{s1}}. Sets within the heap set H are sorted in descending order by their dominance area upper bound, and sets within the candidate set C are sorted in descending order by their dominance area value. Each time, the heap set H is processed to obtain the head set, and replacement and expansion strategies are applied to it. The replacement upper bound, expansion upper bound, dominance area upper bound, and dominance area value of the set are calculated, and the set is added to both the heap set H and the candidate set C. The dominance area value of the k-th data tuple set in the candidate set C is used as the threshold k. max Continuously update the threshold k max If the upper bound of the dominance area of the pile head set is ≤ k max If the remaining set within the heap set H, along with their replacement set and extended set, cannot be the final result of the query k representing G-Skyline, then they can be directly filtered out; for example Figure 2 As shown, the pruning strategy described in step S4 is specifically as follows:
[0131] Step S4.1: Define the heap set H and the candidate set C, and initialize the heap set H and the candidate set C; initialize the heap set as H = {{s1}} and initialize the candidate set as C = {{s1}};
[0132] Where s1 represents the data tuple with the largest dominant area in the ordered contour set SKY(D);
[0133] Step S4.2: Sort the sets of data tuples in the heap set H in descending order according to the upper bound of the dominance area to obtain the heap head set;
[0134] The heap head set includes the set of data tuples with the largest upper bound value of the dominating area within the current heap set H;
[0135] Step S4.3: Sort the sets of data tuples in the candidate set C in descending order of their dominance area values, and obtain the dominance area value k of the k-th G-Skyline data tuple set in the current candidate set C. max ;
[0136] The dominant area value k of the k-th G-Skyline data tuple in the current candidate set C. max Perform initialization, initialize the threshold k max =0;
[0137] Step S4.4: Compare the upper bound of the dominance area of the heap head set with the dominance area value k of the k-th G-Skyline data tuple in the current candidate set C. max Size;
[0138] If the upper bound of the dominance area of the head set is greater than the dominance area value k of the kth G-Skyline data tuple set in the current candidate set C max Then, a replacement strategy and an expansion strategy are executed on the heap head set to obtain a replacement set and an expansion set;
[0139] Remove the heap head set from the heap set H, and add the obtained replacement set and expansion set to the heap set H and the candidate set C;
[0140] Step S4.5: Repeat steps S4.2 to S4.4 until the upper bound of the dominance area of the head set is less than or equal to the dominance area value k of the k-th G-Skyline data tuple set in the current candidate set C. max ;
[0141] Step S4.6: If the upper bound of the dominance area of the head set is less than or equal to the dominance area value k of the k-th G-Skyline data tuple in the current candidate set C. max ;
[0142] Then determine whether the size of the first k G-Skyline data tuples in the current candidate set C is gsize;
[0143] If so, the set of the first k data tuples of the current candidate set C will be returned as the query result;
[0144] If not, proceed to step S4.7;
[0145] Step S4.7: Take out the set of eliminated G-Skyline data tuples in the first k G-Skyline data tuples in the current candidate set C where the set size |G| < gsize; the set of eliminated G-Skyline data tuples includes the set of G-Skyline data tuples with set size |G| < gsize;
[0146] And query through the dominance relationship graph to check if there are gsize - |G| non-Skyline tuples that are only dominated by the tuples in the set of eliminated G-Skyline data tuples;
[0147] If there are, execute Step S4.8; if not, execute Step S4.9;
[0148] Step S4.8: Combine the gsize - |G| non-Skyline tuples that are only dominated by the tuples in the set of eliminated G-Skyline data tuples with the set of eliminated G-Skyline data tuples to obtain a replacement set with set size gsize;
[0149] Delete the set of eliminated G-Skyline data tuples from the current candidate set C, and add the replacement set with set size gsize to the current candidate set C as the query result to return;
[0150] Step S4.9: Delete the set of eliminated G-Skyline data tuples from the current candidate set C, and use the current candidate set C after deleting the set of eliminated G-Skyline data tuples as the latest candidate set C, and repeat Steps S4.5 to S4.7 until k G-Skyline with the largest dominance area and set size gsize are found;
[0151] In a specific embodiment, the calculation formula for the dominance area value of the data tuple set in the candidate set C is:
[0152] where, G represents a given set; DomSize(G) represents the dominance area of the given set G; IntSize(G i ) represents the intersection area of the data tuple set G i , and the intersection area refers to the area / volume of the intersection space; G i and G' represent subsets of the given set G;
[0153] The calculation formula for the intersection area of the subset G i is
[0154]
[0155] Where j represents the dimension, and j∈[1,d]; p[j] represents the attribute value of the data tuple P in dimension j.
[0156] In a specific embodiment, the formula for calculating the upper bound of the dominance area of the data tuple set within the heap set H is as follows:
[0157] UpDomSize(G)=max(ExpUpDomSize(G),RepUpDomSize(G))
[0158] Where G represents any set in a given dominance order graph; ExpUpDomSize(G) represents the extended upper bound of any set G; RepUpDomSize(G) represents the replacement upper bound of any set G; UpDomSize(G) represents the dominance area upper bound of any set G; and the value of UpDomSize(G) is the maximum of ExpUpDomSize(G) and RepUpDomSize(G); for any set G in the dominance order graph, the extended upper bound of G is ExpUpDomSize(G) Let $G$ represent the upper bound of the dominance area of all sets located in the left subtree of G (i.e., the dominance area of any set in the left subtree of G is not greater than the extended upper bound of G). The replacement upper bound $RepUpDomSize(G)$ represents the upper bound of the dominance area of sets located in the right subtree of G (i.e., the dominance area of any set in the right subtree of G is not greater than the replacement upper bound of G). The upper bound of the dominance area of G is the maximum of the extended upper bound and the replacement upper bound. Therefore, the dominance area of any set located in the left or right subtree of G is not greater than the upper bound of the dominance area of G. Thus, when the upper bound of the dominance area of G is less than a dominance area value $k$... max , (k max Let represent the k-th largest dominating area value in the current candidate set C. Then the dominating area of any set located in the left or right subtree of G is less than k. max No set located in the left or right subtree of G can become the final query result.
[0159] Given k represents the data tuple of size gsize for the G-Skyline query, and the ordered contour set SKY(D) = {s1, s2, ..., s...} of the entire dataset D to be queried, n} and a dominance order graph, wherein an ordered set l-SetD(s) is given in the dominance order graph. i ), l-SetD(s i ) represents a set consisting of any l data tuples in SKY(D), where the tuples are sorted in descending order of their dominance area values, and the tuple with the smallest dominance area in the set is s. iThe extended upper bound of this set means that in the dominance order graph, the set l-SetD(s) i The upper bound of the dominance area of the set of all data tuples that are left children of the root node, denoted as ExpUpDomSize(l-SetD(s)). i This means that the dominance area of any set of data tuples that are left children under the left subtree is no greater than this value; the formula for calculating the extended upper bound is:
[0160] ExpUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i ))+DomSize({s i+1})+..+DomSize({s i+gsize-l})
[0161] Among them, l-SetD(s) i Let s represent a set consisting of any l tuples in SKY(D). i This represents the data tuple with the smallest dominating area in the set;
[0162] According to the extended upper bound calculation formula, given k represents the G-Skyline query group size gsize and the dominance order graph under dataset D, any set l-SetD(s) in the graph... i ) and located in l-SetD(s i For any set G in the left subtree, the dominating area of G must not be greater than l-SetD(s) i The extended upper bound of ) is ExpUpDomSize(l-SetD(s) i ))≥DomSize(G); This is because: performing an expansion strategy on a set is equivalent to adding new data tuples to the set of data tuples, so the dominance area of the set also increases. Given any set l-SetD(s) in the dominance order graph i The set in the left subtree contains at most gsize data tuples; therefore
[0163] G = l - SetD(s) i )∪{s i+1}∪{s i+2}∪…∪{s i+gsize-l The area dominated by}(|G|=gsize) is the largest (s) i ,s i+1 ,…,s i+gsize-l The area of G is calculated as follows (the result is sorted in descending order by the area of the data tuples). As i increases The value then continuously decreases, therefore The value must be less than 0, therefore ExpUpDomSize(l-SetD(s)) i ))≥DomSize(G).
[0164] Given k represents the data tuple of size gsize for the G-Skyline query, and the ordered contour set SKY(D) = {s1, s2, ..., s...} of the entire dataset D to be queried, n} and a dominance order graph, wherein an ordered set l-SetD(s) is given in the dominance order graph. i ), l-SetD(s i ) represents a set consisting of any l data tuples in SKY(D), where the tuples are sorted in descending order of their dominance area values, and the tuple with the smallest dominance area in the set is s. i The meaning of the replacement upper bound of this set is that in the dominance order graph, with set l-SetD(s) i The upper bound of the dominance area of the set of all data tuples that are the right children of the root node, denoted as RepUpDomSize(l-SetD(s)). i That is, the dominance area of any set of data tuples that are right children in the right subtree is no greater than this value; the formula for calculating the replacement upper bound is:
[0165] RepUpDomSize(l-SetD(s i ))=DomSize({s i+1})+DomSize({s i+2})+…+DomSize({s i+gsize}), l = 1;
[0166] RepUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i )-{s i})+DomSize({s i+1})+DomSize({s i+2})+…+DomSize({s i+gsize-l+1}), l>1
[0167] Among them, l-SetD(s) i ) represents a set consisting of any l tuples in SKY(D); s i The tuple with the smallest dominating area in the set is represented by l; l represents the number of tuples; gsize represents the size of the set.
[0168] Given k representing the G-Skyline query group size gsize and the dominance order graph under the data tuple set D, any set l-SetD(s) in the graph i ) and located in l-SetD(s i For any set G in the right subtree of ), the dominating area of G must not be greater than l-SetD(s). i Replace the upper bound of ); RepUpDomSize(l-SetD(s i ))≥DomSize(G). This is because for a given set l-SetD(s i ) Execute the replacement strategy, only replacing s i Replace with s i+1 The resulting replacement set still retains l-SetD(s) i )-{s i Given a set l-SetD(s) in a dominance order graph i (l>1) and located in l-SetD(s) i For any set G under the right subtree, according to the formula for calculating the area of a set's dominance, we know that... And l-SetD(s) i The upper bound for the replacement is RepUpDomSize(l-SetD(s)). i ))=DomSize(l-SetD(s i )-{s i})+DomSize({s i+1})+…+DomSize({s i+gsize-l+1}), due to s i ,s i+1 ,…,s i+gsize-l+1 The result is the result sorted in descending order by the area dominated by the data tuples, therefore DomSize(l-SetD(s)) i )-{s i})+DomSize({s i+1})+…+DomSize({s i+gsize-l+1}) must be no less than ∑ p∈G DomSize(p), and as the value of i increases, The value gradually decreases. It must be less than 0, therefore it can be proved that when l>1, RepUpDomSize(l-SetD(s)) i ))≥DomSize(G); Similarly, it can be proved that when l=1, RepUpDomSize(l-SetD(s)≥DomSize(G ... i ))≥DomSize(G).
[0169] The specific implementation method is as follows: Figure 3 This is a schematic diagram of the dataset used in this invention to calculate k representing G-Skyline; an example of a real-life application: a travel agency wants to select three hotels for cooperation. For example... Figure 3 As shown, the hotel set D = {p1, p2, ..., p...} 18 The database contains 18 candidate hotels (data has been standardized to 0-1). Only two attributes are considered: distance from the station and hotel price. Generally, hotels that are closer to the station and cheaper are preferred. Figure 1 In the middle, p1-p7 are Skyline points, p8-p 18 Non-Skyline points are excluded because they are dominated by one or more points in the graph. Imagine a travel agency wants to select three hotels for cooperation. One approach is to randomly choose any three points from the Skyline, but this method may miss some necessary choices. For example, for a user whose optimal criterion is proximity, {p1, p2, p8} is the optimal group, where p8 is a non-Skyline point; the user can choose p8 when p1 and p2 are fully booked. However, when the data dimensionality is high and the data size is large, G-Skyline queries will return too many results. For example, given a dataset containing 100 Skyline points, to find G-Skylines of size 3, then at least [number of points is missing in the original text]. The result is obviously a burden for users to select a suitable G-Skyline. k represents the G-Skyline query, which aims to calculate the k most representative G-Skylines, making the number of query results controllable and representative. In this invention, the dominance area of the set is used to measure the representativeness of the set. The larger the dominance area, the more non-Skyline points may be located within the set's dominance space, and the stronger the set's dominance, the more representative it is. Figure 3 The table on the right lists Figure 3 The contour set SKY(D) under dataset D and the dominant area value of each Skyline point.
[0170] against Figure 3 A G-Skyline query is performed on the dataset, k represents the number of results, k=3, and the size of the data tuples is gsize=3. Figure 5 This is a dominance graph for this dataset. Given the overall dataset D to be queried and any set G, and the set... |G| = gsize; if any set G is a G-Skyline, then The total number of data tuples that can dominate p in the overall dataset D to be queried must not exceed gsize-1. Therefore, the dominance graph only needs to be constructed at 3 levels. In addition, the number of data tuples that can dominate p 13 and the ability to control p14 The number of data tuples all exceeds gsize-1, therefore p is not included in the dominance graph. 13 p 14 The construction result is as follows: Figure 5 As shown. Figure 5 It contains all the data tuples that could become the results of a G-Skyline query.
[0171] Figure 6 In response to Figure 3 The dominance order graph is constructed from the dataset, where k represents the number of results returned in the G-Skyline query (k=3), and the group size gsize is 3. Given an ordered contour set SKY(D) = {p5,p4,p3,p6,p2,p7,p1}, the dominance order graph is constructed, with {p5} as the root node. Replacement and expansion strategies are applied to {p5} to generate sets {p4} and {p5,p4}. {p5,p4} is the left child of the root node, and {p4} is the right child. The replacement and expansion sets for {p5,p4} are {p5,p3} and {p5,p4,p3}, respectively; {p5,p3} and {p5,p4,p3} are the right and left children of {p5,p4}, respectively. Following this method, when the size of the set within a node equals gsize, there is no need to continue expanding. Simply find and replace the set as the right child. For example, the set {p5, p4, p3} has a set size of 3, so there is no need to expand it. Simply replace the set {p5, p4, p6} as the right child.
[0172] Table 1 shows the results for... Figure 3 The dataset, using the method of this invention, involves the specific calculation process of k representing a G-Skyline query. First, the contour set of the query dataset D is obtained to form an ordered contour set SKY(D) = {p5, p4, p3, p6, p2, p7, p1}. The heap set H = {{p5}} and the candidate set C = {{p5}} are initialized. Finally, the threshold k is initialized. max=0. Perform replacement and expansion strategies on the heap head set {p5} to obtain the replacement set {p4} and the expansion set {p5, p4}. Calculate the dominance area, expansion upper bound, replacement upper bound, and dominance area upper bound for {p4}, {p5, p4}, respectively, and DomSize({p4}) = 0.325, ExpUpDomSize({p4}) = DomSize({p4}) + DomSize({p3}) + DomSize({p6}) = 0.845, RepUpDomSize({p4}) = DomSize({p3}) + DomSize({p6}) + DomSize({p2}) = 0.655, DomSize({p5, p4}) = 0.425, ExpUpDo mSize({p5, p4}) = DomSize({p5, p4}) + DomSize({p3}) = 0.705, RepUpDomSize({p5, p4}) = DomSize({p5}) + DomSize({p3}) + DomSize({p6}) = 0.87. Add {p4}, {p5, p4} to the heap set H in descending order of their dominance area upper bound, and add them to the candidate set C in descending order of their dominance area. This yields the following descending results: heap set H = {{p5, p4}, {p4}}, candidate set C = {{p5, p4}, {p5}, {p4}}. At this point, the upper bound of the dominance area of the heap head set, UpDomSize({p5, p4}) = 0.87, while the current threshold k... max =DomSize({p4}) = 0.325, the algorithm needs to continue execution, processing the heap set and updating the heap head set in this way. When the heap head set is {p5, p4, p7}, its upper bound of the dominated area is 0.4725, and at this time the threshold k max The value is 0.475, which satisfies the condition that the upper bound of the dominated area is not greater than the threshold k. max The calculation can be stopped once the condition is met. At this point, the first three results in candidate set C are {p5, p3, p6}, {p5, p4, p3}, and {p5, p3, p7}. These three sets have the largest dominance area among all candidate groups and their group size is equal to gsize, so they can be directly output as results. The detailed calculation process of the algorithm is shown in Table 1. In the table, a "-" indicates that the size of the set is equal to gsize, and there is no need to extend downwards or calculate the upper bound.
[0173] Table 1.k represents the order list of G-Skyline query methods.
[0174]
[0175] This invention provides a k-representation G-Skyline query method, solving the problem of high computational cost in existing k-representation G-Skyline methods. Leveraging existing technologies and spatial indexing knowledge, it achieves an efficient k-representation G-Skyline query method. Compared to existing algorithms, this invention does not calculate all gsize combinations of Skyline points in a given dataset, nor does it require querying all G-Skylines and then calculating the dominance area of each G-Skyline. Instead, it preprocesses the data, using a greedy approach to prioritize tuples with larger dominance areas in descending order of their dominance area values, processing the data from bottom to top to gradually generate sets of groups that meet the specified size. Furthermore, it employs a pre-filtering strategy, calculating and sorting only the dominance area of the most likely combinations to become results. It also proposes two strategies: a replacement strategy and an expansion strategy, and constructs a novel spatial index structure—the dominance order graph—based on these, which prioritizes processing the sets most likely to become results. Secondly, it proposes an effective pruning strategy, calculating the dominance area only for sets that are likely to become results, and filtering out sets that are unlikely to become results, further reducing computational cost.
[0176] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for querying G-Skyline where k represents G, characterized in that, Includes the following steps: Step S1: Preprocess the entire dataset D to be queried to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n }; where s n This represents the nth data tuple; Step S2: Construct a dominance graph based on the dominance relationships of data tuples within the overall dataset D to be queried; the dominance graph includes the ordered contour set SKY(D) = {s1, s2, ..., s...} n All data tuples within} and the entire dataset D to be queried, excluding the ordered contour set SKY(D) = {s1,s2,…,s} n } data tuples that may become part of the G-Skyline query results; Step S3: Based on the replacement and expansion strategies, process the ordered contour set SKY(D) = {s1, s2, ..., s} in the dominance graph. n The process involves constructing a dominance order graph. Step S4: Prune the set of data tuples in the dominance order graph that cannot be k representing the query result of G-Skyline according to the pruning strategy; Step S5: Select the set of the k data tuples with the largest dominance area in the pruned dominance order graph and return it as the final result.
2. The k-representation G-Skyline query method according to claim 1, characterized in that... In step S1, an ordered contour set SKY(D) = {s1, s2, ..., s} is obtained. n }, specifically Step S1.1: Use the BBS algorithm to calculate the sky layer where the data tuples in the overall dataset D to be queried are located, and obtain the contour set SKY(D); The formula for calculating the skyline layer of the overall dataset D to be queried is as follows: SL1=SKY(D) Where D represents the entire dataset to be queried; SL i SL1 represents the i-th skyline layer; SL1 represents the first skyline layer; SKY(D) represents the contour set; and This represents the union of data tuples from each skyline layer from 1 to i-1; Step S1.2: Calculate the dominant area of each Skyline point in the contour set SKY(D); the calculation formula is as follows: DomSize(p)=(1-p[1])×(1-p[2])×...×(1-p[d]) Where d represents the given data dimension; p represents the data tuple, DomSize(p) represents the dominance area of p; p[i] represents the attribute value of tuple p in dimension i, and 1≤i≤d; Step S1.3: Sort the Skyline points in the contour set SKY(D) in descending order of their dominance area values to obtain an ordered contour set SKY(D) = {s1, s2, ..., s...} n } 3. The k-representation G-Skyline query method according to claim 1, characterized in that... The construction of the dominance relationship diagram in step S2 specifically involves: Step S2.1: Query and retain the data tuples located within the first gsize skyline layer of the overall dataset D to be queried; where gsize represents the size of the data tuples in the G-Skyline query. Step S2.2: Determine the dominance relationship among the data tuples located in the skyline layer before the gsize layer of the overall dataset D to be queried; Furthermore, data tuples dominated by fewer than or equal to gsize-1 data tuples within the first gsize sky layer are retained; data tuples dominated by more than gsize-1 data tuples within the first gsize sky layer are filtered out. The method for determining the dominance relationship between data tuples is as follows: given two d-dimensional data tuples p and q located in the overall dataset D to be queried, and p,q∈D; If p dominates q, i.e. p < q, then the following condition must be satisfied: Where p[i] represents the attribute value of tuple P in dimension i; q[i] represents the attribute value of tuple q in dimension i; p[j] represents the attribute value of tuple P in dimension j; q[j] represents the attribute value of tuple q in dimension j; Step 2.3: Construct a dominance relationship graph based on the dominance relationship between the skyline layer where each data tuple is located and the data tuple.
4. The k-representation G-Skyline query method according to claim 1, characterized in that... The construction of the dominance order graph in step S3 specifically involves step S3.1: extracting the ordered contour set SKY(D) = {s1, s2, ..., s...} n The set of tuples with the largest dominating area within} is {s1}, and {s1} is used as the root node of the dominating order graph; Step S3.2: Given the ordered contour set SKY(D) = {s1, s2, ..., s...} n A sorted set l-SetD(s) consisting of any l data tuples in} i ); The ordered set l-SetD(s) i The data tuples within the set are arranged in descending order of their dominance area, and the ordered set is l-SetD(s). i The data tuple with the smallest dominant area in ) is defined as s i ; Step 3.3: Perform a replacement strategy on the root node {s1} in the dominance order graph to generate a replacement set as the right child of the root node; The replacement strategy specifically involves: replacing the ordered set l-SetD(s) with... i The data tuple s with the smallest dominant area in ) i Replace with the first updated data tuple s i+1 The new set l-SetD(s) is obtained. i )∪{s i+1 }-{s i }; The new set l-SetD(s) i )∪{s i+1 }-{s i } represents l-SetD(s i The replacement set of ), wherein the replacement set is represented as repSet(l-SetD(s) i )); Step 3.4: Perform an expansion strategy on the root node {s1} in the dominance order graph to generate an expansion set as the left child of the root node; The specific expansion strategy is as follows: to the l-SetD(s) i Add the first updated data tuple s to ) i+1 This yields a new set l-SetD(s) of size l+1. i )∪{s i+1 }; The new set l-SetD(s) i )∪{s i+1 } represents l-SetD(s i The extended set of ), wherein the extended set is represented as expSet(l-SetD(s) i )); Furthermore, when the size of the expanded set is equal to gsize, the expansion stops, and the replacement set is directly obtained as the right child based on the replacement strategy.
5. The k-representation G-Skyline query method according to claim 1, characterized in that... The pruning strategy described in step S4 is specifically as follows: Step S4.1: Set k to represent the number of results returned by the G-Skyline query and the size of the data tuple set gsize, and set the ordered contour set SKY(D) = {s1,s2,…,s...} in the dominance order graph. n } are placed into two preset sets, and defined as heap set H and candidate set C respectively, and heap set H and candidate set C are initialized; the heap set is initialized as H1={{s1}}, and the candidate set is initialized as C1={{s1}}; Among them, s1 represents the data tuple with the largest dominant area in the ordered contour set SKY(D); Step S4.2: Sort the set of each data tuple in the heap set H in descending order according to the upper bound value of the dominant area to obtain the head set of the heap; The head set of the heap includes the set of data tuples with the largest upper bound value of the dominant area in the current heap set H; Step S4.3: Sort the sets of data tuples in the candidate set C in descending order of their dominance area values, and obtain the dominance area value k of the k-th G-Skyline data tuple set in the current candidate set C. max ; Step S4.4: Compare the upper bound of the dominance area of the heap head set with the dominance area value k of the k-th G-Skyline data tuple in the current candidate set C. max Size; If the upper bound of the dominance area of the head set is greater than the dominance area value k of the kth G-Skyline data tuple set in the current candidate set C max Then, a replacement strategy and an expansion strategy are executed on the heap head set to obtain a replacement set and an expansion set; Delete the head set of the heap from the heap set H, and add the obtained replacement set and extension set to the heap set H and the candidate set C; Step S4.5: Repeat steps S4.2 to S4.4 until the upper bound of the dominance area of the head set is less than or equal to the dominance area value k of the k-th G-Skyline data tuple set in the current candidate set C. max ; Step S4.6: If the upper bound of the dominance area of the head set is less than or equal to the dominance area value k of the k-th G-Skyline data tuple in the current candidate set C. max ; Then determine whether the sizes of the first k G-Skyline data tuple sets in the current candidate set C are all gsize; If so, return the first k data tuple sets in the current candidate set C as the query result; If not, execute step S4.7; Step S4.7: Take out the inferior G-Skyline data tuple sets with the set size |G| < gsize in the first k G-Skyline data tuple sets in the current candidate set C; the inferior G-Skyline data tuple sets include the G-Skyline data tuple sets with the set size |G| < gsize; And query through the dominance relationship graph whether there are gsize - |G| non-Skyline tuples that are only dominated by the tuples in the inferior G-Skyline data tuple sets; If there are, execute step S4.8; if not, execute step S4.9; Step S4.8: Combine the gsize - |G| non-Skyline tuples that are only dominated by the tuples in the inferior G-Skyline data tuple sets with the inferior G-Skyline data tuple sets to obtain a replacement set with the set size of gsize; Delete the inferior G-Skyline data tuple sets from the current candidate set C, and add the replacement set with the set size of gsize to the current candidate set C as the query result to return; Step S4.9: Delete the inferior G-Skyline data tuple sets from the current candidate set C, and use the current candidate set C after deleting the inferior G-Skyline data tuple sets as the latest candidate set C, and repeat to execute steps S4.5 to S4.
7.
6. The k-representation G-Skyline query method according to claim 5, characterized in that... The formula for calculating the dominant area value of the data tuple set within the candidate set C is as follows: Where G represents a given set; DomSize(G) represents the dominance area of the given set G; IntSize(G) represents the dominance area of the given set G. i ) represents the set of data tuples G i The intersection area, which refers to the area / volume of the intersection space; G i G' represents a subset of a given set G; The subset G i The formula for calculating the intersection area is: Among them, j represents the dimension, and j ∈ [1, d]; p[j] represents the attribute value of the data tuple P in the dimension j.
7. The k-representation G-Skyline query method according to claim 5, characterized in that... , the calculation formula for the upper bound value of the dominant area of the data tuple set in the heap set H is UpDomSize(G) = max(ExpUpDomSize(G), RepUpDomSize(G)) where, G represents any set in the given dominance order graph; ExpUpDomSize(G) represents the expansion upper bound of any set G; RepUpDomSize(G) represents the replacement upper bound of any set G; UpDomSize(G) represents the upper bound of the dominant area of any set G; and the value of UpDomSize(G) is the maximum of ExpUpDomSize(G) and RepUpDomSize(G); The formula for calculating the extended upper bound is: ExpUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i ))+DomSize({s i+1 })+..+DomSize({s i+gsize-l }) Among them, l-SetD(s) i Let s represent a set consisting of any l tuples in SKY(D). i This represents the data tuple with the smallest dominating area in the set; The formula for calculating the upper bound of the replacement is: RepUpDomSize(l-SetD(s i ))=DomSize({s i+1 })+DomSize({s i+2 })+…+Do mSize({s i+gsize }), l=1; RepUpDomSize(l-SetD(s i ))=DomSize(l-SetD(s i )-{s i })+DomSize({s i+1 })+DomSize({s i+2 })+…+DomSize({s i+gsize-l+1 }),l>1 Among them, l-SetD(s) i ) represents a set consisting of any l tuples in SKY(D); s i This represents the data tuple with the smallest dominating area in the set; l represents the number of data tuples. gsize represents the size of the collection.
Citation Information
Patent Citations
Dynamic Skyline inquiry device based on cloud computing
CN106599189A
Hash-based skyline query processing method and apparatus thereof
KR1020130130330A