EP3563314A1 - Methods and systems for searching - Google Patents
Methods and systems for searchingInfo
- Publication number
- EP3563314A1 EP3563314A1 EP16822694.2A EP16822694A EP3563314A1 EP 3563314 A1 EP3563314 A1 EP 3563314A1 EP 16822694 A EP16822694 A EP 16822694A EP 3563314 A1 EP3563314 A1 EP 3563314A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- searching
- matrix
- items
- relational
- rules
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Definitions
- the present invention relates to methods and systems for searching. It is particularly, but not exclusively applicable to methods of searching which enable efficient identification of compatible portfolios.
- portfolios consist of groups of products or sub-products which can come in many versions with different attributes. However, most versions of portfolios and attributes are not compatible. Forming portfolios of compatible products requires adherence to a set of (compatibility) rules.
- the available components to make up a complex electronic product such as a mobile telephone can be considered to form a portfolio.
- components such as the antenna, battery, processor, memory, SIM card holder, microphone, speaker, etc..
- many of these components are only compatible with specific ones of the other components or have attributes that mean that they are only compatible with specific ones of the other components, or with other components having specific attributes. Accordingly, only by identifying a complete portfolio of compatible components can a complete product be assembled.
- a complete auto restoration of a classic car could include total disassembly and re-assembly or re-build of the car or its major components such as engine. Most parts are replaced with re-claimed secondhand parts because repairing (or even re-making) is too costly or impossible, and new parts are no longer available. So it is necessary to re-use reclaimed working parts obtained from scrapyards where sometimes the part could be obtained from another car model.
- the compatibility of parts is highly dependent on the brand, model, and point of origin and generation of the production.
- Compatibility matrices have been used to represent whether any two products are compatible or not. However no further work has been done to make use of the compatibility matrix and it's underlying information to automatically arrange/sort all products into comparable portfolios based on the compatibility rules while maximise the usability of all products.
- a compatibility matrix can also be considered as a connectivity matrix or a clique matrix, which is mapped to a unique graph clustering.
- a clique is a group of products which are all compatible with each other. [1] is an example of an optimisation method for graph clique operations and optimisations. However, no use is made of the complete graph clique theory to optimize the compatible portfolio combination/formation.
- the idea of collaborative searching is used for web searching, in order to provide an efficient and rapid way to recommend web pages for the users.
- the multiple agents collaborate and combine their information to speed up and improve the quality of the searches.
- An example of such collaborative searching is described in [3].
- the agents used in such collaborative searches do not share information on invalid searches (and indeed are not looking for such information).
- the invention seeks to provide a universal system providing automatic fast solutions for comparable portfolios formation, constrained by many incompatibility rules within the huge search space with typically millions of possible combinations.
- a further object of the present invention is to provide a faster and predictable way of solving portfolio problems, particularly to improve the efficiency of solving very large portfolio problems.
- aspects of the present invention provide for methods and systems for determining compatible groupings within a plurality of items by generating either a relational matrix or a relational graph or both which embody compatibility rules linking the items.
- a first aspect of the present invention provides a computer-implemented method of determining a compatible grouping within a plurality of items, the grouping meeting one or more objective criteria, wherein the inter-compatibility of said items is defined by a set of compatibility rules stored in a memory, the method including the steps of: applying the compatibility rules to the plurality of items to produce either: a) a relational matrix which sets out the compatibility or incompatibility between each item, or b) a relational graph, the vertices of which are the items and the edges of which represent compatibility between the items represented by the vertices at either end; storing the relational matrix or relational graph in a memory; and searching either said relational matrix or said relational graph to either: find a valid grouping of said items which meets said objective
- the method of this aspect can make all group searching problems standard by linking them to either a relational matrix or a relational graph (or both) and therefore use solution techniques for such problems and permits solving the group searching problem in an efficient manner.
- both the relational matrix and the relational graph are produced and the method: applies a matrix searching method to search the relational matrix and a clique searching method which determines possible cliques within the relational graph, both of said searching methods being applied in parallel; and stops said searching when the searching of either the relational matrix or the relational graph finds a valid grouping which meets said objective criteria, or determines that no such grouping exists.
- the method of this aspect can performing searching from both "sides" of the problem in parallel.
- searching the matrix it will typically try repeatedly to form valid groupings (or portfolios) from the candidate items until a valid solution is found.
- searching the graph it will typically try repeatedly to find conflicts from the defined compatibility rules with limited resources (the items) until a conflict is found which leads to the conclusion that no valid solution exists. Any conclusion from either side will stop the whole searching process for further searches, which dramatically reduces the blind and unnecessary searching in the whole search space.
- the above searching methods interact with each other such that, whenever either the matrix searching method or the clique searching method finds a combination of items which does not satisfy the compatibility rules, that searching method communicates the combination to the other searching method such that this combination is not subsequently searched by the other searching method.
- Such two-way communications allows the independent searching processes to share information on the invalid searching branches that they have found during execution.
- the invalid searching branches information is shared regularly and the sharing is done during execution.
- the shared information is used by both searching methods to direct the current and later stages of execution constrained by shared invalid searching branches.
- This bi-directional information exchange can significantly reduce the search space and create a much more efficient searching system.
- the reduced search space is achieved by exploiting the key capability of each stage, i.e., the efficiency of forming potential groups and the efficiency of identifying incompatible groupings.
- the step of searching uses a plurality of virtual searching agents, wherein each virtual searching agent operates on a part of either the relational matrix or the relational graph.
- all of the virtual searching agents communicate with each other to share the invalid searching branches information during execution (both within one part (matrix/graph) of the searching operation and between searching operations). This can help to speed up the overall searches by stopping agents from carrying out invalid future searches in branches that another agent has already identified as invalid, therefore speeding up and making the search more efficient by removing invalid branches quickly and collectively.
- the step of searching the relational matrix includes the sub-step of combining any two rows or columns of the relational matrix using an AND ELIMINATION operation, which operation comprises performing an AND Boolean operation between the two rows or columns, and replacing each of the two rows or columns of the relational matrix with the row or column resulting from said AND operation, wherein an entirely zero result indicates that the combination of said two rows or columns is invalid.
- This AND ELIMINATION operation can thus rapidly cut down the size of the relational matrix whilst preserving information on the compatibilities.
- the step of searching uses a greedy searching approach by first combining any two rows or columns of the matrix which have the highest proportion of zero values.
- the highest proportion of zero values may be for one of the rows/columns or may be for the combination in question. This causes the matrix to narrow down possible combinations more quickly because the resulting combination is likely to have even more zeroes and therefore accelerates the process of finding valid combinations or complete conflicts.
- the step of searching the relational graph includes the sub-steps of: determining a possible clique within the relational graph; storing said determined clique and removing all items within said clique from the relational graph; repeating until all possible cliques have been determined; and determining whether the stored cliques meet said objective criteria.
- this searching may be implemented in a "greedy" fashion by: determining all possible cliques of at least a predetermined size within the graph; identifying the item which appears least frequently in said determined cliques and applying the steps of storing and removing in respect of a clique which includes said identified item.
- the objective criteria includes the requirement that all of the items must be contain in a grouping in a valid solution.
- the objective criteria may take many forms. The most common are to include one or more of:
- the method may further includes the step of, if no valid grouping of said items which meets said objective criteria is found, removing a rule in the set of compatibility rules and the steps of applying the rules and searching are performed again for the new set of compatibility rules.
- the rule that is removed is the least significant (or one of the least significant) of the original rules.
- the significance of rules may be determined in advance and recorded as part of the set.
- the method may include a process for determining the significance of a rule.
- the method may further include the steps of: determining, from amongst said set of compatibility rules, the rules which, when removed, result in at least a predetermined percentage of ones in the matrix, and identifying, from said determined rules, the rule which, when removed, results in the lowest percentage of ones in the matrix, wherein said identified rule is the rule that is removed.
- Such embodiments can allow a "nearly valid" solution to be obtained even if the searching on the true rule set returns a conflict.
- the method of the present aspect may include any combination of some, all or none of the above described preferred and optional features.
- the method of the above aspect is preferably implemented by a system according to the second aspect of this invention, as described below, but need not be.
- Further aspects of the present invention include computer programs for running on computer systems which carry out the method of the above aspect, including some, all or none of the preferred and optional features of that aspect.
- a second aspect of the present invention provides a computer system for determining a compatible grouping within a plurality of items, the groupings meeting one or more objective criteria, wherein the inter-compatibility of said items is defined by a set of compatibility rules, the system including: a memory storing information about said plurality of items and said set of compatibility rules; and a processor which is arranged to process said information and said rules by: applying the compatibility rules to the plurality of items to produce either: a) a relational matrix which sets out the compatibility or incompatibility between each item, or b) a relational graph, the vertices of which are the items and the edges of which represent compatibility between the items represented by the vertices at either end and storing said matrix or said graph in a memory; and searching either said relational matrix or said relational graph to either: find a valid grouping of said items which meets said objective criteria and wherein all items within the grouping are compatible with each other according to said compatibility rules; or determine that no grouping exists which meets said
- the system of this aspect can make all group searching problems standard by linking them to either a relational matrix or a relational graph (or both) and therefore use solution techniques for such problems and permits solving the group searching problem in an efficient manner.
- the processor is arranged to produce both the relational matrix and the relational graph and is further arranged to: apply a matrix searching method to search the relational matrix and a clique searching method which determines possible cliques within the relational graph, both of said searching methods being applied in parallel; and stop said searching when the searching of either the relational matrix or the relational graph finds a valid grouping which meets said objective criteria, or determines that no such grouping exists.
- the system of this aspect can performing searching from both "sides" of the problem in parallel.
- searching the matrix it will typically try repeatedly to form valid groupings (or portfolios) from the candidate items until a valid solution is found.
- searching the graph it will typically try repeatedly to find conflicts from the defined compatibility rules with limited resources (the items) until a conflict is found which leads to the conclusion that no valid solution exists. Any conclusion from either side will stop the whole searching process for further searches, which dramatically reduces the blind and unnecessary searching in the whole search space.
- the above searching methods interact with each other such that, whenever either the matrix searching method or the clique searching method finds a combination of items which does not satisfy the compatibility rules, that searching method communicates the combination to the other searching method such that this combination is not subsequently searched by the other searching method.
- Such two-way communications allows the independent searching processes to share information on the invalid searching branches that they have found during execution.
- the invalid searching branches information is shared regularly and the sharing is done during execution.
- the shared information is used by both searching processes to direct the current and later stages of execution constrained by shared invalid searching branches.
- This bi-directional information exchange can significantly reduce the search space and create a much more efficient searching system.
- the reduced search space is achieved by exploiting the key capability of each stage, i.e., the efficiency of forming potential groups and the efficiency of identifying incompatible groupings.
- the processor employs a plurality of virtual searching agents, wherein each virtual searching agent operates on a part of either the relational matrix or the relational graph.
- all of the virtual searching agents communicate with each other to share the invalid searching branches information during execution (both within one part (matrix/graph) of the searching operation and between searching operations). This can help to speed up the overall searches by stopping agents from carrying out invalid future searches in branches that another agent has already identified as invalid, therefore speeding up and making the search more efficient by removing invalid branches quickly and collectively.
- the t processor is arranged to search the relational matrix by combining any two rows or columns of the relational matrix using an AND ELIMINATION operation, which operation comprises performing an AND Boolean operation between the two rows or columns, and replacing each of the two rows or columns of the relational matrix with the row or column resulting from said AND operation, wherein an entirely zero result indicates that the combination of said two rows or columns is invalid.
- This AND ELIMINATION operation can thus rapidly cut down the size of the relational matrix whilst preserving information on the compatibilities.
- the processor uses a greedy searching approach by first combining any two rows or columns of the matrix which have the highest proportion of zero values.
- the highest proportion of zero values may be for one of the rows/columns or may be for the combination in question. This causes the matrix to narrow down possible combinations more quickly because the resulting combination is likely to have even more zeroes and therefore accelerates the process of finding valid combinations or complete conflicts.
- determining a possible clique within the relational graph storing said determined clique and removing all items within said clique from the relational graph; repeating until all possible cliques have been determined; and determining whether the stored cliques meet said objective criteria.
- the processor may be arrange to use a "greedy" searching approach by: determining all possible cliques of at least a predetermined size within the graph; identifying the item which appears least frequently in said determined cliques and applying the steps of storing and removing in respect of a clique which includes said identified item.
- the objective criteria may take many forms. The most common are to include one or more of:
- the processor finds no valid grouping of said items which meets said objective criteria, it is arranged to remove a rule in the set of compatibility rules and to perform the steps of applying the rules and searching again for the new set of compatibility rules.
- the rule that is removed is the least significant (or one of the least significant) of the original rules.
- the significance of rules may be determined in advance and recorded as part of the set.
- the processor may determine the significance of a rule.
- the processor is arranged to: determine, from amongst said set of compatibility rules, the rules which, when removed, result in at least a predetermined percentage of ones in the matrix, and identifying, from said determined rules, the rule which, when removed, results in the lowest percentage of ones in the matrix, wherein said identified rule is the rule that is removed.
- Such embodiments can allow a "nearly valid" solution to be obtained even if the searching on the true rule set returns a conflict.
- the system of the present aspect may include any combination of some, all or none of the above described preferred and optional features.
- Figure 1 is a flowchart showing a method according to an embodiment of the present invention
- Figure 2 is an illustration of the creation of a relational matrix forming part of an embodiment of the present invention
- Figure 3 shows a matrix searching operation forming part of an embodiment of the present invention
- Figure 4 shows a clique searching operation forming part of an embodiment of the present invention
- Figure 5 shows the average running time of simulated problems using an embodiment of the present invention compared to separate searching operations
- Figure 6 shows which of the searching operations arrives at the solution which an embodiment of the present invention is applied to simulated problems
- Figure 7 shows the relationship between existence of valid solutions or no valid solutions depending on the percentage of zeroes in the simulated problems.
- the goal of the search process of the embodiments of the invention is to find all cliques of resources from a defined population of resources, P, that obey a set of rules, R.
- R a set of rules
- one or two rules can be used as stop conditions S which are the condition(s) under which the search will stop. All the remaining rules are embedded into a 2-way communicated matrix/clique searching process (embodiments of which are described below).
- Stop condition(s) options (which will be encoded in one or more of the rules in R) (depending on applications) can be:
- Each clique must be at least a specified size plus all resources from P must be used.
- the number of cliques (each of which reaches at least a specified size) reaches a specified number. A solution is found once we achieve the defined number of cliques, which allows some resources of P to be left unassigned and thus available for future use.
- condition of size of each clique and total number of cliques can be used jointly as part of stricter rule set and the searching stop condition may be the combination of both. All the remaining rules are embedded into the matrix/clique operation.
- the rules, R define which resources can be combined, which resources must not be combined and which resources may be combined.
- the stop condition used in the scenario outlined below is one where the resulting set of cliques, when considered together, must include all resources from population P.
- the population of resources is such that there is potentially one or more valid set of cliques.
- the search process is stopped when the first valid set of cliques has been found. It is also possible that rule conflictions may exist and as a result there is no valid clique set.
- Stage 1 matrix operation - left-hand path in Figure 1
- R the search process to find the set of cliques consists of two concurrent stages.
- Stage 1 matrix operation - left-hand path in Figure 1
- the matrix operation is very efficient at finding a valid set of cliques if the rules are not very strict (because if the rules are not strict several sets of valid cliques will exist).
- Stage 2 (clique operation - right-hand path in Figure 1 ) consists of identifying candidate cliques which would result in not all of the resources in P being included. If the rules are strict (few or possibly even only one valid clique set exists) this clique operation will quickly identify resource combinations that are not valid. These two concurrent search mechanisms communicate with each other during the search process. The clique operation will be stopped as soon as the matrix operation identifies a set of cliques which satisfies all the rules and uses all the resources. The clique operation will be 'directed' by the matrix operation as the matrix operation communicates incompatible resource combinations to the clique operation. This additional information reduces the number of resource combinations that the clique operation needs to consider and thus it also reduces the time required to execute the clique operation.
- the matrix operation will be pruned (no further searching of that branch) each time the clique operation identifies a combination of two or more resources that prevent all the resources in P being included in the final set of cliques. For example if combining resources D and G prevents all resources being used then no matrix operation that includes D and G will be considered thus reducing the search space and time.
- R is defined to be too strict there may be an internal conflict inside R (which can be detected very quickly by the 2-way communicated search).
- the algorithm or system may provide that R can be loosened automatically, and intelligently, by trying to remove the least important rules to find an approximated but generally valid solution.
- the rules may be entered with a priority ranking to allow the algorithm to determine which rule or rules to loosen first.
- the algorithm will try to remove each rule, starting with the least important ones and test the percentage of zeros/ones present in the initial resource combination matrix. After removing some rule(s), the more 'ones' we get in the matrix, the more possibility there is to discover a valid solution (the internal conflict in the original defined rule set R has been removed by the loosening of R).
- the rule which is determined to result in at least a predetermined percentage of ones in the matrix when removed, but which has the lowest percentage of ones in the matrix when removed can then be selected. If no such rule results in at least the predetermined percentage of ones, then the algorithm may try to remove two rules and, again, test for their effects on the percentage of ones in the matrix.
- product information and compatibility rules are obtained. This may be through user data entry, or the uploading of one or more data files containing the information and rules.
- the compatibility rules may be predefined and stored in a memory for application to multiple data sets. A particular data set of interest can be prepared separately, or may be extracted from existing data which is stored about the products.
- the product information may be stored already (for example as part of existing data) and the compatibility rules defined by a user.
- the data and rules are then stored in a memory in the system.
- the compatibility rules are translated (if necessary) and applied to the data in order to generate a relational matrix linking all of the products and their mutual compatibility and a graph with the compatibility rules embedded.
- the rule translator goes through all of the compatibility rules and all part pairs to check their compatibility and this results in the relational matrix (m by m matrix where m is the total number of parts) and its associated relational graph.
- the element at (i, j) in the relationship matrix indicates, after applying all rule-set, whether i and j are compatible.
- the element value can be 2 (must be grouped together), 1 (can possibly be grouped together) or 0 (must not be grouped together).
- the matrix is simplified by "must be rules" by doing Boolean AND operations on the i and the j row/column. All values of ('2' and T) are considered as true and values of ⁇ ' are considered as false.
- This Boolean matrix can be represented directly by a relational graph.
- a search is performed for a valid solution to the portfolio compatibility (or until a complete conflict is identified).
- the search is performed simultaneously using two different approaches. During the search, conflicts in the defined rules and search path information are shared between the approaches to reduce the search space.
- a group of virtual agents simultaneously search for a valid solution using the relational graph, by clique-coverage operations, which also stops at either a valid solution or a proof of confliction. Again all failed searching paths will be shared by all virtual agents to avoid future useless searching.
- a two-way communication between the matrix searching and graph clique searching operations enables the agents for matrix searching and the agents for clique searching to communicate to all other agents to share the failed searching path.
- the shared information from all agents from both sides directs the current and later stages of execution within all agents. This can cut invalid searching paths quickly and make sure all searches (and thereby the whole searching process) are valid and efficient.
- the result is delivered in a desired form, which may be through display on a display device, a printout of a physical output, or generation of a data file containing the compatible products and/or an indication of incompatibility.
- the second step is performed as set out below, with simple examples used to illustrate the operations.
- the overall purpose of the second step is to transform a broad range of applications to the general form of problem which can be solved by creating combinations which obey a set of rules.
- a simple example is illustrated in Figure 2, with six items ⁇ A, B, C, D, E, F ⁇ , each having two attributes (Attribute 1 and
- Attribute 2 With values of M, N, X, Y, Z (step ® in Figure 2).
- Combination problems are initialised as a matrix with the diagonal elements set to zero (because no item can be combined with itself) and all remaining elements are set to one (step ⁇ in Figure 2), indicating that, before the application of any rules, any item can be combined with any other item.
- corresponding elements are set to zero for all combinations which do not satisfy rules 1 and 2.
- the matrix (shown at step ⁇ in Figure 2) is ready to be processed by the matrix operation portion of the search process.
- the matrix example below is a very simple example, whereas in the real world, rules can be very general and an element may need to be set to "may be combined” (1 ), “must not be combined” (0) and “must be combined” (which results in the element being interpreted as one element for future iterations of the matrix operation, e,g. if items C and E must be combined the C and E rows are replaced by a new combined CE row and the C and E columns are replaced by a new combined CE column).
- Each matrix (with the elements set to 0 and 1 only) has one, and only one, unique graph to represent the same information (with 1 representing "connected" and 0 representing
- the matrix operation panel uses a plurality of searching agents to try to combine two rows/columns by doing Boolean AND operations for the two rows/columns within the trimmed searching space step-by-step in order to complete the grouping.
- a zero matrix at any point means that the search branch is invalid.
- the failure matrix is logged and used to trim the searching space to avoid further blind searching. Meanwhile this failure information is immediately sent to the clique operation panel to trim its search space as well. If a valid matrix is found, the process chooses other combination pairs (rows and columns) and repeats. If every possibility has been searched with no valid solution, a rule confliction is reported.
- the clique operation panel starts with current cliques and generates all candidate cliques within current trimmed searching space, which indicates, all members within a clique can be grouped to each other; hence each clique (starting from minimum required grouping size) can be considered as one element (one fixed candidate group). Then clique operation panel tries step-by-step within current trimmed searching space to find out whether a selected set of cliques can cover the entire set of original parts. No original elements can appear more than once in this selection process. If a selection of fixed candidate cliques covers all original elements which arrive at a valid solution, the conclusion of a valid solution is obtained. Otherwise a failure is logged as trimming of further searching. Again this failure combination is logged and used to trim the searching space to avoid further blind searching.
- the matrix searching according to this embodiment is based on a so called "AND
- ELIMINATION step by step process.
- the elements on two vectors are combined into one element by performing an AND operation on their corresponding position.
- a random 12 by 12 matrix was generated to simulate a matrix that could have been derived from a set of rules applied to a real world problem. It will be appreciated that this example is highly simplified in specifying only a combinatorial problem on 12 items and with a search objective of separating them into groups of 3-4 items in each group (i.e. once all groups of 3 or 4 items are found the search is stopped). In the real world the size of real world problems will usually be much larger both in terms of the number of items on which the search is based and/or the number of items in the desired groups.
- the matrix searching process uses "greedy” searching. This is implemented by the process : always trying first to combine the two rows/columns with fewest “ones” to make sure rows/columns which have fewest opportunities to combine with others (which are
- Figure 3 illustrates the process with Figure 3a being the starting randomly-generated matrix.
- the rows (columns) with fewest number of "ones” are set out in Table 1 below.
- the first element selected to combine is Row 0 as it has the fewest ones, the candidates which can be combined with Row 0 are: Row 4, Row 5, Row 6, Row 7. Among Row 4 (5 ones), Row 5 (7 ones), Row 6 (7 ones), Row 7 (6 ones), the row with fewest "ones" is selected to be combined with Row 0. So Row 4 (with 5 ones) is selected to be combined with Row 0 and the result of this combination is shown in Figure 3b. This selection mechanism is applied throughout all the matrix operation to make sure rows with fewest choices to combine get higher priority to be combined to others.
- Figure 3c shows the next step, when Row 5 is combined with Row ⁇ 0, 4 ⁇ . Further steps combine original Rows 7, 10 & 9 and 2 & 1 1 before Row 3 is combined with Row ⁇ 2, 1 1 ⁇ , bringing the process to the matrix shown in Figure 3d.
- the matrix shown in Figure 3d has no further possible combinations of rows and, as a valid solution has not been reached, the combination is recorded as a search cutting point.
- the previous combination step is then reversed, and next best alternative combination at that stage performed (in this case, combining Rows 6 and 1 ).
- the recording of the search cutting branches mean that it is not necessary to search every single possible combination in the search space as, once a cutting point has been reached, no further combinations which are subsets of the combination at the cutting point are considered. This makes the search process very efficient.
- FIG. 3 shows the step-by-step process of the clique search.
- each step also uses a "greedy" search.
- the process starts with the element which has the lowest coverage by the candidate cliques.
- This selection mechanism is applied throughout all the clique operation to make sure elements with fewest coverage by the candidate cliques get higher priority to be selected first.
- both the matrix and clique operations are running in parallel and sharing the search paths which will fail.
- the rules are not strict (many ones in the matrix)
- the matrix operation arrives at a quicker result than the clique operation.
- the clique operation is quicker than the matrix operation to detect the conflicts.
- the problem is that either the clique or matrix operation arrives at a conclusion much quicker than the other in most cases. So in most cases, one side (depending on the problem) is able to arrive at a result or identify a conflict relatively quickly.
- it is impossible to completely accurately predict which side will provide the answer quickest despite the fact that for very sparse or very dense matrices, it is easy to predict the most likely side to be the quickest. Therefore, the two-sided searching approach of these embodiments will remove the worry (and potential loss) in attempting to predict or guess the winner.
- the clique operation stops much earlier than the matrix; the matrix searching takes advantages from the shared searching cutting points from the cliques operation. With additional searching cutting points from the cliques operation, the searching iteration for matrix is reduced from 143 to 137. This is not significant improvement in this simple example. However if (as will normally be the case for real-world problems), the searching problem is large, this can be a significant advantage.
- the matrices generated cover a range of the proportion of ones in each row and each column from no ones at all (no group satisfies the rule set) to all ones (all groups satisfy the rule set). Matrices were generated for a range of the proportion of ones from 10%, to 90% at 10% intervals. For each interval (e.g. 30%) 25 different matrices were generated with the same proportion of ones (e.g. 30%) but the positions of the ones and zeroes was randomly distributed within the row/column.
- the corpus of 25 matrices enables 25 different problems to be tacked for each interval and an average execution time calculated (the exact execution time depends on the distribution of ones and zeroes as well as the proportion of ones and hence a number of matrices for each interval is required to find a valid average).
- Figure 5 illustrates the number of valid solutions and conflicts out of the 25 simulated runs (25 matrices/problems) at each interval. It will be observed that, the more ones the matrix has, the more chance valid solutions exist, vice versa. From Figure 5, it can be seen that, in these simulations the problems with 30-40% of ones in the matrix are the tipping point between whether the results are dominated by valid solutions or by conflicts.
- Figure 6 illustrates the whether the clique searching method or the matrix searching method arrives at a conclusion first (for both valid solutions and conflicts). Together with Figure 5, it can be seen that the matrix operation is good at searching for a valid solution quickly and clique operation is good at searching for the conflicts quickly. 50% of ones is the tipping point for this simulation.
- the average execution time (average of the 25 runs at each interval) is shown in Figure 7.
- the embodiments simulated here ran the matrix and clique operations simultaneously and a conclusion (valid or conflict) from either side stops the running of the other side. So in each experiment only one side completes the search and the other side just stops without running to the end.
- the average time are only calculated by averaging completed search times with a conclusion.
- computer system includes the hardware, software and data storage devices for embodying a system or carrying out a method according to the above described
- a computer system may comprise a central processing unit (CPU), input means, output means and data storage.
- the computer system has a monitor to provide a visual output display.
- the data storage may comprise RAM, disk drives or other computer readable media.
- the computer system may include a plurality of computing devices connected by a network and able to communicate with each other over that network.
- the methods of the above embodiments may be provided as computer programs or as computer program products or computer readable media carrying a computer program which is arranged, when run on a computer, to perform the method(s) described above.
- computer readable media includes, without limitation, any non-transitory medium or media which can be read and accessed directly by a computer or computer system.
- the media can include, but are not limited to, magnetic storage media such as floppy discs, hard disc storage media and magnetic tape; optical storage media such as optical discs or CD- ROMs; electrical storage media such as memory, including RAM, ROM and flash memory; and hybrids and combinations of the above such as magnetic/optical storage media.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/082756 WO2018121854A1 (en) | 2016-12-28 | 2016-12-28 | Methods and systems for searching |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3563314A1 true EP3563314A1 (en) | 2019-11-06 |
Family
ID=57749939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP16822694.2A Withdrawn EP3563314A1 (en) | 2016-12-28 | 2016-12-28 | Methods and systems for searching |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3563314A1 (en) |
WO (1) | WO2018121854A1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529740B2 (en) * | 2006-08-14 | 2009-05-05 | International Business Machines Corporation | Method and apparatus for organizing data sources |
US10296616B2 (en) * | 2014-07-31 | 2019-05-21 | Splunk Inc. | Generation of a search query to approximate replication of a cluster of events |
-
2016
- 2016-12-28 EP EP16822694.2A patent/EP3563314A1/en not_active Withdrawn
- 2016-12-28 WO PCT/EP2016/082756 patent/WO2018121854A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2018121854A1 (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977389B2 (en) | Anonymity assessment system | |
CN102722381B (en) | The technology of optimization and upgrading task | |
US10331947B2 (en) | Automatic detection on string and column delimiters in tabular data files | |
CN108733713A (en) | Data query method and device in data warehouse | |
CN104461693B (en) | Virtual machine update method and system under a kind of desktop cloud computing environment | |
CN110083533A (en) | Data processing method and device based on Mock service | |
CN108304426A (en) | The acquisition methods and device of mark | |
CN108829802B (en) | Associated log playback method and device | |
CN115422463A (en) | Big data-based user analysis push processing method and system | |
Xiao et al. | Dynamic assembly simplification for virtual assembly process of complex product | |
EP3924897A1 (en) | Accelerator for computing combinatorial cost function | |
WO2017039684A1 (en) | Classifier | |
CN108415912A (en) | Data processing method based on MapReduce model and equipment | |
CN108241531A (en) | A kind of method and apparatus for distributing resource for virtual machine in the cluster | |
US8935282B2 (en) | Locating relevant differentiators within an associative memory | |
JP2023022831A (en) | Computer system, computer implementation method, program and computer implementation system (learning causal relation) | |
CN113672375A (en) | Resource allocation prediction method, device, equipment and storage medium | |
US11586674B2 (en) | Methods and systems for searching | |
US9002847B2 (en) | Identifying an auto-complete communication pattern | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
CN103414756B (en) | A kind of task distribution method, distribution node and system | |
CN108198012A (en) | A kind of push of target object, method for processing business, equipment and system | |
EP3563314A1 (en) | Methods and systems for searching | |
CN107688582B (en) | Resource recommendation model obtaining method and device | |
CN104951550B (en) | Date storage method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20190717 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20201012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20220226 |