## Abstract

Visibility computation is critical in spatial databases for realizing various interesting and diverse applications such as defence-related surveillance, identifying interesting spots in tourist places and online warcraft games. Existing works address the problem of identifying individual locations for maximizing the visibility of a given target object. However, in case of many applications, a set of locations may be more effective than just individual locations towards maximizing the visibility of the given target object. In this paper, we introduce the Multi-Location Visibility (MLV) query. An MLV query determines the top-*k* query locations from which the visibility of a given target object can be maximized. We propose a portion-based transactional framework and coverage pattern mining based algorithm to process MLV queries. Our performance evaluation with real datasets demonstrates the effectiveness of the proposed scheme in terms of query processing time, pruning efficiency and target object visibility w.r.t. a recent existing scheme.

This is a preview of subscription content, log in to check access.

## References

Agrawal R, Srikant R (1994) Fast algorithms for mining association rules in large databases. In: Proceedings of VLDB, pp 487–499

Ali D, Eunus M et al (2017) Efficient processing of maximum visibility facility selection query in spatial databases. Masters Thesis, BUET

Asano T, Asano T, Guibas L, Hershberger J, Imai H (1986) Visibility of disjoint polygons. Algorithmica 1(1):49–63

Beckmann N, Kriegel HP, Schneider R, Seeger B (1990) The R*-tree: an efficient and robust access method for points and rectangles. In: Proceedings of ACM SIGMOD

Bentley JL, Ottmann TA (1979) Algorithms for reporting and counting geometric intersections. IEEE Trans Comput 28(9):643–647

Bentley JL, Wood D (1980) An optimal worst case algorithm for reporting intersections of rectangles. IEEE Trans Comput 29(7):571–577

Chvatal V (1979) A greedy heuristic for the set-covering problem. Math Oper Res 4(3):233–235

Floriani L, Magillo P (2003) Algorithms for visibility computation on terrains: a survey. Environ Plan B Plan Des 30(5):709–728

Gangumalla L (2019) Datasets used in the paper. https://github.com/lakshmi9414/Datasets.git. Accessed 20 June 2019

Gao Y, Liu Q, Miao X, Yang J (2015) Reverse k-nearest neighbor search in the presence of obstacles. Inf Sci 330:274–292

Gao Y, Zheng B (2009) Continuous obstructed nearest neighbor queries in spatial databases. In: Proceedings of ACM SIGMOD, pp 577–590

Gao Y, Zheng B, Chen G, Lee WC, Lee KCK, Li Q (2009a) Visible reverse k-nearest neighbor queries. In: Proceedings ICDE, pp 1203–1206

Gao Y, Zheng B, Lee WC, Chen G (2009b) Continuous visible nearest neighbor queries. In: Proceedings of EDBT, pp 144–155

Garey MR, Johnson DS, Stockmeyer L (1974) Some simplified NP-complete problems. In: Proceedings of ACM symposium on theory of computing, pp 47–63

Goodchild MF, Lee J (1990) Coverage problems and visibility regions on topographic surfaces. Ann Oper Res 18(1–4):175–186

Gowtham Srinivas P et al (2015) Mining coverage patterns from transactional databases. J Intell Inf Syst 45(3):423–439

Haider CMR, Arman A, Ali ME, Choudhury FM (2016) Continuous maximum visibility query for a moving target. In: Proceedings of ADC, pp 82–94

Han J, Cheng H, Xin D, Yan X (2007) Frequent pattern mining: current status and future directions. Data Min Knowl Discov 15(1):55–86

Han J, Pei J, Yin Y (2000) Mining frequent patterns without candidate generation. SIGMOD Rec. 29(2):1–12

Irtiza Tripto N, Nahar M, Ali ME, Choudhury F, Culpepper J, Sellis T (2019) Top-k trajectories with the best view. GeoInformatica 141:1–41. https://doi.org/10.1007/s10707-019-00343-4

Liu B, Hsu W, Ma Y (1999) Mining association rules with multiple minimum supports. In: Proceedings of ACM SIGKDD, pp 337–341

Masud S, Choudhury FM, Ali ME, Nutanong S (2013) Maximum visibility queries in spatial databases. In: Proc. ICDE, pp. 637–648

Morling K (2010) Geometric and engineering drawing 3E. Routledge, London

Mount DM (2004) Geometric intersection. Citeseer

Nutanong S, Tanin E, Zhang R (2010) Incremental evaluation of visible nearest neighbor queries. IEEE TKDE 22(5):665–681

Seeds MA, Backman D (2015) Stars and galaxies. Cengage Learning, Boston

Shou L, Huang Z, Tan KL (2003) HDoV-tree: the structure, the storage, the speed. In: Proceedings of ICDE, pp 557–568

Srinivas PG et al (2012) Discovering coverage patterns for banner advertisement placement. In: Proceedings of PAKDD, pp 133–144

Tanton J (2005) Encyclopedia of mathematics. In: Tanton 2005 encyclopedia. Facts On File, inc

Tao Y, Papadias D, Shen Q (2002) Continuous nearest neighbor search. In: Proceedings of VLDB, pp 287–298

Xu H, Li Z, Lu Y, Deng K, Zhou X (2010) Group visible nearest neighbor queries in spatial databases. In: Proceedings of WAIM, pp 333–344

Zhang J, Papadias D, Mouratidis K, Zhu M (2004) Spatial queries in the presence of obstacles. In: Proceedings of EDBT, pp 366–384

## Author information

### Affiliations

### Corresponding author

## Additional information

### Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Responsible editor: Po-ling Loh, Evimaria Terzi, Antti Ukkonen, Karsten Borgwardt and Katharina Heinrich.

## Appendices

### Appendix: A coverage patterns

The concept of *coverage* has been used to the solve set cover problem in set theory (Chvatal 1979) and node cover problem in graph theory (Garey et al. 1974). By extending the notion of coverage, a model for extracting the knowledge of coverage patterns (CPs) (Srinivas et al. 2012) was proposed to extract coverage value of distinct sets of data items or patterns from a transactional database.

Now we shall explain the concept of coverage patterns. Given a transactional database *D*, each transaction is a subset of a set *I* of *m* items \(\{i_{1},i_{2},i_{3},\ldots , i_{m}\}\). A pattern *P* is a subset of items in *I* i.e., \(P\subseteq I\) where \(P=\{i_{p},i_{q},\ldots ,i_{r}\}\) and \(1\le p\le q\le r \le m\) and *p*, *q*, *r* are integers. \(T^{i_{r}}\) is the set of transactions in which item \(i_{r}\) is present, hence \(|T^{i_{r}}|\) is the cardinality of \(T^{i_{r}}\).

The fraction of transactions containing a given item \(i_{r}\) is designated as *Relative Frequency*\(RF(i_{r})\) of \(i_{r}\). \(RF(i_{r})=|T^{i_{r}}|/|D|\). A given item is considered as *frequent* if its relative frequency is greater than that of a threshold value, which we designate as *minRF*. *Coverage Set* CSet(*P*) of a pattern \(P=\{i_{p},i_{q},\ldots ,i_{r}\}\) is the set of all the transactions that contain at least one item from the pattern *P* i.e., \(CSet(P)=T^{i_{p}} \cup T^{i_{q}},\ldots ,\cup T^{i_{r}}\). *Coverage Support* CS(*P*) is the ratio of the size of CSet(*P*) to the size of *D* i.e., \(CS(P)=|CSet(P)| / |\textit{D}|\).

In order to add a new item to the pattern *P* such that the coverage support increases significantly, the notion of overlap ratio is introduced. (This is possible in the case when the number of transactions, which are common to the new item and the pattern *P*, is low.) *Overlap ratio*\(OR(\textit{P})\) of a pattern *P* is the ratio of the number of transactions that are common between CSet(\(P-i_{r}\)) and \(T^{i_{r}}\) to the number of transactions in \(T^{i_{r}}\), i.e., \(OR(P)=(|CSet(P-i_{r}) \cap (T^{i_{r}})|) /(|T^{i_{r}}|)\). A high CS value indicates more number of transactions and a low OR value means less repetitions among the transactions. A pattern is *interesting* if its CS is greater than or equal to the user-specified minimum CS threshold value (i.e., *minCS*) and its OR is less than or equal to user-specified maximum OR threshold value (i.e., *maxOR*). Given *minRF*, *minCS* and *maxOR*, pattern \(P=\{{i_{p}},{i_{q}},\ldots ,i_{r}\}\) is regarded as a *coverage pattern CP* if \(RF({i_{k}})\ge minRF \, \forall i_{k} \in P, CS({P}) \ge minCS\) and \(OR(P) \le maxOR\).

For example, consider *D* depicted in Table 2 to understand the notion of coverage patterns. In *D*, the set of items \(I=\{a,b,c,d,e,f,g,h\}\) and the number of transactions i.e., \(|\textit{D}|=10\) with \(\hbox {TIDs}=1,2,3,\ldots ,10\). Let \(minRF=0.3\), \(minCS =0.6\), \(maxOR=0.8\). Consider pattern \(P=\{b,c,d\}\); \(T^{b}=\{1,2,4,7\}\), \(T^{c}=\{1,2,5,7,9,10\}\), \(T^{d}=\{5,7,8\}\). \(|T^{b}|=4\), \(|T^{c}|=6\), \(|T^{d}|=3\); \(RF(b)=4/10=0.4\), \(RF(c)=6/10=0.6\), \(RF (d)=3/10=0.3\). \(\hbox {CSet}(P)=\{1,2,4,5, 7,8,9,10\}\). \(RF(b)\ge minRF\), \(RF(c) \ge minRF\), \(RF(d) \ge minRF\); \(CS(P)=8/10= 0.8\ge minCS\); \(OR(P)=(|(T^{b}\cup T^{c})\cap (T^{d})|)/ (|T^{d}|)\); \(OR(P)=2/3=0.6 \le maxOR\). Hence, \(\{b,c,d\}\) is a coverage pattern.

An apriori-like approach to extract complete sets of CPs from transactional database has been proposed in Srinivas et al. (2012). A pattern growth-like approach (Gowtham Srinivas 2015) has also been proposed to extract the complete set of CPs in an efficient manner.

### Appendix: B Illustrative example of our approach

Figure 8 depicts an illustrative example of the proposed approach. Consider the target object *ABCD* having four sides \(\{AB,BC,CD,DA\}\) with query locations (\(q_{1}\) to \(q_{10}\)) and obstacles (\(o_{1}\) to \(o_{4}\)). *ABCD* is divided into portions (\(p_{1}\) to \(p_{10}\)).

We compute the *VRs* corresponding to each query location, as shown in Table 3. Observe that \(p_{1}\) is visible from query location \(q_{1}, p_{5}\) is visible from \(\{q_{4},q_{6}\}\) and \(p_{7}\) is visible from \(\{q_{6},q_{7},q_{8}\}\). Now using the computed *VRs*, we generate portion transactions. Hence, the query location in portion transaction \(p_{1}\) is \(q_{1}\). Similarly, in the portion transaction \(p_{7}\), the query locations are \(\{q_{6},q_{7},q_{8}\}\), as depicted in Table 4.

Now let us consider a candidate set \(c_{i}=\{q_{4},q_{6},q_{9}\}\). Let the values of *minV* and *maxO* be 0.7 and 0.4 respectively. \(VR(q_{4},T)=\{p_{3},p_{4}, p_{5}\}\), \(VR(q_{6},T)=\{p_{5}, p_{6},p_{7}\}\), \(VR(q_{9},T)=\{p_{8},p_{9}\}\). \(vis(c_{i},T)=|VR(q_{4},T)\cup VR(q_{6},T)\cup VR(q_{9},T)|/|S| =\{p_{3},p_{4}, p_{5}, p_{6}, p_{7},p_{8},p_{9}\} /10\) i.e., \(vis(c_{i},T)=0.8\). \(|VR(q_{4},T)|\ge |VR(q_{6},T)| \ge |VR(q_{9},T)|\). Thus, \(overlap(c_{i},T)= |(VR(q_{4},T)\cup VR(q_{6},T))\cap VR(q_{9},T)| / |VR(q_{9},T)| =0/2\) i.e., \(overlap(c_{i},T)=0\). Here, \(continuity(c_{i},T)=true\) since portions \(p_{3}\) to \(p_{9}\) from the *VRs* of query locations in \(c_{i}\) are continuous. Since \(vis(c_{i},T)\ge minV, overlap(c_{i},T) \le maxO\) and \(continuity (c_{i},T)=true, c_{i}\) qualifies as a candidate set.

Now let us consider \(c_{i} =\{q_{6},q_{8}\}\). \(VR(q_{6},T) =\{p_{5},p_{6},p_{7}\}\), \(VR (q_{8},T) =\{p_{7}\}\). \(vis(c_{i},T)=|VR(q_{6},T)\cup VR(q_{8},T)|/|S|=\{p_{5},p_{6},p_{7}\}\) /10 i.e., \(vis(c_{i},T)=0.3.|VR(q_{6},T)| \ge |VR(q_{8},T)|\).

Thus, \(overlap(c_{i},T)=|(VR(q_{6},T) \cap VR(q_{8},T)| / |VR(q_{8},T)|= 1/1\) i.e., \(overlap(c_{i},T)=1\). Here, \(continuity(c_{i},T)=true\) since portions \(p_{5}\) to \(p_{7}\) from the *VRs* of query locations in \(c_{i}\) are continuous. Since \(vis(c_{i},T)\) and \(overlap(c_{i},T)\) do not satisfy the *minV* and *maxO* constraints, \(c_{i}\) would not qualify as a candidate set.

## Rights and permissions

## About this article

### Cite this article

Gangumalla, L., Reddy, P.K. & Mondal, A. Multi-location visibility query processing using portion-based transactional modeling and pattern mining.
*Data Min Knowl Disc* **33, **1393–1416 (2019). https://doi.org/10.1007/s10618-019-00641-3

Received:

Accepted:

Published:

Issue Date:

### Keywords

- Visibility query
- Transaction-modeling
- Pattern-mining
- Portion based transactional framework