Optimization
[ Back ] [ Home ] [ Next ]

 

Constraints as Data
Potential Apps
Query by Example
Query by Example
Query by Example
More Examples
Model and Language
Main Features
Hosting Iterative Lang.
Constraint Calculus
Constraint Calculus
Polynomial Complexity
Query Evaluation
Functionality
Optimization
Optimization
Optimization
Optimization
Implemented Apps
Implemented Apps

Optimization by Approximation-based Filtering and Indexing (cont.)

The query then can be re-written query to speed up processing as follows, to implement the following method. First, using an R-tree, the query finds all candidate xy-segments, i.e., whose MBR intersects the MBR of the Fairfax area. Second, for each such candidate xy-segment, the query tests, using SAT, that it actually intersects the Fairfax area. If it does, the query retrieves, using the inversed grouping, all the corresponding trajectories (which must fly over Fairfax because they have a 4D piece whose xy-projection intersects Fairfax).

The re-written CCUBE query is as follows. We do not explain all the technicalities of the exact C++ types in it, but merely give a feeling of how it looks - for more details the reader is referred to the full paper.

   SELECT traj  
   INTO {Set<DC_LIN*>} result
   //
   FROM All_Traj_IG_IAG.MUT_SAT(min_box_of_Fairfax) 
     AS {Set<G_Pair<C_LIN*,DC_LIN*>*>*} Candidate_Traj_IG
   //
   FROM  *Candidate_Traj_IG  AS {G_Pair<C_LIN*,DC_LIN*>*} IG_pair
   DEFINE xy_segment  AS {C_LIN*} IG_pair->first
   WHERE Mut_Sat( *xy_segment, Fairfax )          // Note: MUT_SAT 
                                                  // on C_LIN
   //
   DEFINE trajectories_of_xy_segment AS {Set<DC_LIN*>*} IG_pair->second
   FROM  *trajectories_of_xy_segment AS traj


presentation created by Victor E. Segal