Fractional cascading

In computer science, fractional cascading is a technique to speed up a sequence of binary searches for the same value in a sequence of related data structures. The first binary search in the sequence takes a logarithmic amount of time, as is standard for binary searches, but successive searches in the sequence are faster. The original version of fractional cascading, introduced in two papers by Chazelle and Guibas in 1986 (Chazelle & Guibas 1986a; Chazelle & Guibas 1986b), combined the idea of cascading, originating in range searching data structures of Lueker (1978) and Willard (1978), with the idea of fractional sampling, which originated in Chazelle (1983). Later authors introduced more complex forms of fractional cascading that allow the data structure to be maintained as the data changes by a sequence of discrete insertion and deletion events.

Example

As a simple example of fractional cascading, consider the following problem. We are given as input a collection of ordered lists of numbers, such that the total length of all lists is , and must process them so that we can perform binary searches for a query value in each of the lists. For instance, with and ,

= 24, 64, 65, 80, 93
= 23, 25, 26
= 13, 44, 62, 66
= 11, 35, 46, 79, 81

The simplest solution to this searching problem is just to store each list separately. If we do so, the space requirement is , but the time to perform a query is , as we must perform a separate binary search in each of lists. The worst case for querying this structure occurs when each of the lists has equal size , so each of the binary searches involved in a query takes time .

A second solution allows faster queries at the expense of more space: we may merge all the lists into a single big list , and associate with each item of a list of the results of searching for in each of the smaller lists . If we describe an element of this merged list as where is the numerical value and , , , and are the positions (the first number has position 0) of the next element at least as large as in each of the original input lists (or the position after the end of the list if no such element exists), then we would have

= 11[0,0,0,0], 13[0,0,0,1], 23[0,0,1,1], 24[0,1,1,1], 25[1,1,1,1], 26[1,2,1,1],
35[1,3,1,1], 44[1,3,1,2], 46[1,3,2,2], 62[1,3,2,3], 64[1,3,3,3], 65[2,3,3,3],
66[3,3,3,3], 79[3,3,4,3], 80[3,3,4,4], 81[4,3,4,4], 93[4,3,4,5]

This merged solution allows a query in time : simply search for in and then report the results stored at the item found by this search. For instance, if , searching for in finds the item 62[1,3,2,3], from which we return the results , (a flag value indicating that is past the end of ), , and . However, this solution pays a high penalty in space complexity: it uses space as each of the items in must store a list of search results.

Fractional cascading allows this same searching problem to be solved with time and space bounds meeting the best of both worlds: query time , and space . The fractional cascading solution is to store a new sequence of lists . The final list in this sequence, , is equal to ; each earlier list is formed by merging with every second item from . With each item in this merged list, we store two numbers: the position resulting from searching for in and the position resulting from searching for in . For the data above, this would give us the following lists:

= 24[0, 1], 25[1, 1], 35[1, 3], 64[1, 5], 65[2, 5], 79[3, 5], 80[3, 6], 93[4, 6]
= 23[0, 1], 25[1, 1], 26[2, 1], 35[3, 1], 62[3, 3], 79[3, 5]
= 13[0, 1], 35[1, 1], 44[1, 2], 62[2, 3], 66[3, 3], 79[4, 3]
= 11[0, 0], 35[1, 0], 46[2, 0], 79[3, 0], 81[4, 0]

Suppose we wish to perform a query in this structure, for . We first do a standard binary search for in , finding the value 64[1,5]. The "1" in 64[1,5], tells us that the search for in should return . The "5" in 64[1,5] tells us that the approximate location of in is position 5. More precisely, binary searching for in would return either the value 79[3,5] at position 5, or the value 62[3,3] one place earlier. By comparing to 62, and observing that it is smaller, we determine that the correct search result in is 62[3,3]. The first "3" in 62[3,3] tells us that the search for in should return , a flag value meaning that is past the end of list . The second "3" in 62[3,3] tells us that the approximate location of in is position 3. More precisely, binary searching for in would return either the value 62[2,3] at position 3, or the value 44[1,2] one place earlier. A comparison of with the smaller value 44 shows us that the correct search result in is 62[2,3]. The "2" in 62[2,3] tells us that the search for in should return , and the "3" in 62[2,3] tells us that the result of searching for in is either 79[3,0] at position 3 or 46[2,0] at position 2; comparing with 46 shows that the correct result is 79[3,0] and that the result of searching for in is . Thus, we have found in each of our four lists, by doing a binary search in the single list followed by a single comparison in each of the successive lists.

More generally, for any data structure of this type, we perform a query by doing a binary search for in , and determining from the resulting value the position of in . Then, for each , we use the known position of in to find its position in . The value associated with the position of in points to a position in that is either the correct result of the binary search for in or is a single step away from that correct result, so stepping from to requires only a single comparison. Thus, the total time for a query is

In our example, the fractionally cascaded lists have a total of 25 elements, less than twice that of the original input. In general, the size of in this data structure is at most as may easily be proven by induction. Therefore, the total size of the data structure is at most as may be seen by regrouping the contributions to the total size coming from the same input list together with each other.

The general problem

In general, fractional cascading begins with a catalog graph, a directed graph in which each vertex is labeled with an ordered list. A query in this data structure consists of a path in the graph and a query value q; the data structure must determine the position of q in each of the ordered lists associated with the vertices of the path. For the simple example above, the catalog graph is itself a path, with just four nodes. It is possible for later vertices in the path to be determined dynamically as part of a query, in response to the results found by the searches in earlier parts of the path.

To handle queries of this type, for a graph in which each vertex has at most d incoming and at most d outgoing edges for some constant d, the lists associated with each vertex are augmented by a fraction of the items from each outgoing neighbor of the vertex; the fraction must be chosen to be smaller than 1/d, so that the total amount by which all lists are augmented remains linear in the input size. Each item in each augmented list stores with it the position of that item in the unaugmented list stored at the same vertex, and in each of the outgoing neighboring lists. In the simple example above, d = 1, and we augmented each list with a 1/2 fraction of the neighboring items.

A query in this data structure consists of a standard binary search in the augmented list associated with the first vertex of the query path, together with simpler searches at each successive vertex of the path. If a 1/r fraction of items are used to augment the lists from each neighboring item, then each successive query result may be found within at most r steps of the position stored at the query result from the previous path vertex, and therefore may be found in constant time without having to perform a full binary search.

Dynamic fractional cascading

In dynamic fractional cascading, the list stored at each node of the catalog graph may change dynamically, by a sequence of updates in which list items are inserted and deleted. This causes several difficulties for the data structure.

First, when an item is inserted or deleted at a node of the catalog graph, it must be placed within the augmented list associated with that node, and may cause changes to propagate to other nodes of the catalog graph. Instead of storing the augmented lists in arrays, they should be stored as binary search trees, so that these changes can be handled efficiently while still allowing binary searches of the augmented lists.

Second, an insertion or deletion may cause a change to the subset of the list associated with a node that is passed on to neighboring nodes of the catalog graph. It is no longer feasible, in the dynamic setting, for this subset to be chosen as the items at every dth position of the list, for some d, as this subset would change too drastically after every update. Rather, a technique closely related to B-trees allows the selection of a fraction of data that is guaranteed to be smaller than 1/d, with the selected items guaranteed to be spaced a constant number of positions apart in the full list, and such that an insertion or deletion into the augmented list associated with a node causes changes to propagate to other nodes for a fraction of the operations that is less than 1/d. In this way, the distribution of the data among the nodes satisfies the properties needed for the query algorithm to be fast, while guaranteeing that the average number of binary search tree operations per data insertion or deletion is constant.

Third, and most critically, the static fractional cascading data structure maintains, for each element x of the augmented list at each node of the catalog graph, the index of the result that would be obtained when searching for x among the input items from that node and among the augmented lists stored at neighboring nodes. However, this information would be too expensive to maintain in the dynamic setting. Inserting or deleting a single value x could cause the indexes stored at an unbounded number of other values to change. Instead, dynamic versions of fractional cascading maintain several data structures for each node:

  • A mapping of the items in the augmented list of the node to small integers, such that the ordering of the positions in the augmented list is equivalent to the comparison ordering of the integers, and a reverse map from these integers back to the list items. The order-maintenance technique of Dietz (1982) allows this numbering to be maintained efficiently.
  • An integer searching data structure such as a van Emde Boas tree for the numbers associated with the input list of the node. With this structure, and the mapping from items to integers, one can efficiently find for each element x of the augmented list, the item that would be found on searching for x in the input list.
  • For each neighboring node in the catalog graph, a similar integer searching data structure for the numbers associated with the subset of the data propagated from the neighboring node. With this structure, and the mapping from items to integers, one can efficiently find for each element x of the augmented list, a position within a constant number of steps of the location of x in the augmented list associated with the neighboring node.

These data structures allow dynamic fractional cascading to be performed at a time of O(log n) per insertion or deletion, and a sequence of k binary searches following a path of length k in the catalog graph to be performed in time O(log n + k log log n).

Applications

The convex layers of a point set, part of an efficient fractionally cascaded data structure for half-plane range reporting.

Typical applications of fractional cascading involve range search data structures in computational geometry. For example, consider the problem of half-plane range reporting: that is, intersecting a fixed set of n points with a query half-plane and listing all the points in the intersection. The problem is to structure the points in such a way that a query of this type may be answered efficiently in terms of the intersection size h. One structure that can be used for this purpose is the convex layers of the input point set, a family of nested convex polygons consisting of the convex hull of the point set and the recursively-constructed convex layers of the remaining points. Within a single layer, the points inside the query half-plane may be found by performing a binary search for the half-plane boundary line's slope among the sorted sequence of convex polygon edge slopes, leading to the polygon vertex that is inside the query half-plane and farthest from its boundary, and then sequentially searching along the polygon edges to find all other vertices inside the query half-plane. The whole half-plane range reporting problem may be solved by repeating this search procedure starting from the outermost layer and continuing inwards until reaching a layer that is disjoint from the query halfspace. Fractional cascading speeds up the successive binary searches among the sequences of polygon edge slopes in each layer, leading to a data structure for this problem with space O(n) and query time O(log n + h). The data structure may be constructed in time O(n log n) by an algorithm of Chazelle (1985). As in our example, this application involves binary searches in a linear sequence of lists (the nested sequence of the convex layers), so the catalog graph is just a path.

Another application of fractional cascading in geometric data structures concerns point location in a monotone subdivision, that is, a partition of the plane into polygons such that any vertical line intersects any polygon in at most two points. As Edelsbrunner, Guibas & Stolfi (1986) showed, this problem can be solved by finding a sequence of polygonal paths that stretch from left to right across the subdivision, and binary searching for the lowest of these paths that is above the query point. Testing whether the query point is above or below one of the paths can itself be solved as a binary search problem, searching for the x coordinate of the points among the x coordinates of the path vertices to determine which path edge might be above or below the query point. Thus, each point location query can be solved as an outer layer of binary search among the paths, each step of which itself performs a binary search among x coordinates of vertices. Fractional cascading can be used to speed up the time for the inner binary searches, reducing the total time per query to O(log n) using a data structure with space O(n). In this application the catalog graph is a tree representing the possible search sequences of the outer binary search.

Beyond computational geometry, Lakshman & Stiliadis (1998) and Buddhikot, Suri & Waldvogel (1999) apply fractional cascading in the design of data structures for fast packet filtering in internet routers. Gao et al. (2004) use fractional cascading as a model for data distribution and retrieval in sensor networks.

References

Read other articles:

The Turkish Air Force operates a diverse fleet of aircraft, supported by a domestic aerospace industry, such as Turkish Aerospace Industries, that has made contributions to locally produce license-built aircraft and indigenous Unmanned aerial vehicle. The following is a list of currently active military aircraft in the Turkish Air Force. Aircraft Current inventory An F-16 on takeoff from Konya Air Base, during Exercise Anatolian Eagle A Turkish Bell UH-1H helicopter doing a pass at Çiğli A...

 

Bupati TeboPetahanaH. Aspan, S.T. (Pj.)sejak 22 Mei 2022Masa jabatan5 tahun (definitif)Dibentuk1999Pejabat pertamaAbdul Madjid Mu'azSitus webPemkab Tebo Berikut ini adalah Daftar Bupati Tebo yang menjabat sejak pembentukannya pada tahun 1999. No Bupati Mulai Menjabat Selesai Menjabat Periode Ket. Wakil Bupati * Abdul Madjid Mu'az 18 Oktober 1999 25 Mei 2001 — Penjabat Bupati[1] lowong 1 25 Mei 2001 12 Juni 2006 1 Bupati definitif pertama[2] Pemilihan melalui DPRD[1&...

 

Gunung Ararat, dilihat dari Khor Virap, Armenia Pemandangan Alpen Prancis di Haute-Savoie dengan La Tournette di latar belakang Gunung tertinggi di Indonesia kawasan lautan, Piramida Carstensz, atau kini dikenal dengan Puncak Jaya, Papua Zugspitze, gunung tertinggi Jerman, dilihat dari Eibsee Gunung adalah bagian kerak bumi yang lebih tinggi dari area di sekitarnya. Gunung biasanya memiliki sisi curam yang secara signifikan menyingkap batuan dasarnya. Gunung berbeda dari dataran tinggi karena...

Stasiun Cilacap Pelabuhan Cilacap Pelabuhan Cilacap Pelabuhan, 1942LokasiJalan Selat MaduraTambakreja, Cilacap Selatan, Cilacap, Jawa Tengah 53213IndonesiaKoordinat{{WikidataCoord}} – missing coordinate dataOperator Kereta Api IndonesiaDaerah Operasi V Purwokerto Letakkm 22+730 lintas Maos-Cilacapkm 1+955 lintas Cilacap-Cilacap Pelabuhan[1] Layanan-KonstruksiJenis strukturAtas tanahInformasi lainKode stasiun CPH 2301[2] SejarahDibuka1911DitutupTidak diketahuiNama sebelumnyaT...

 

Putri ImpianAlbum studio karya 3CDirilis2011Direkam2010 - 2011GenrePopDurasi45.14LabelSwara Sangkar Emas Putri Impian merupakan sebuah album musik pertama karya 3C. Dirilis pada tahun 2011. Lagu utamanya di album ini ialah Putri Impian.[1][2][3][4] Daftar lagu Putri Impian Chaki Kids Club Kereta Apiku 3C Cita-Cita Naik Naik Ke Puncak Gunung Jagoan Sejati (ft. Umay) Balonku Chaki Birthday Papa Mama Ok Medley Ondel-Ondel, Rek Ayo Rek, Ampar-Ampar Pisang (ft. ...

 

American college basketball season 1982–83 Houston Cougars men's basketballSWC tournament championsSWC regular season championsNCAA tournament, Runner-upConferenceSouthwest ConferenceRankingCoachesNo. 1APNo. 1Record31–3 (16–0 SWC)Head coachGuy Lewis (27th season)Assistant coaches Terry Kirkpatrick Don Schverak Home arenaHofheinz PavilionSeasons← 1981–821983–84 → 1982–83 Southwest Conference men's basketball standings vte Conf Overall Team ...

  لمعانٍ أخرى، طالع محمد فارس (توضيح). محمد فارس معلومات شخصية الميلاد 26 مايو 1951   حلب  الوفاة 19 أبريل 2024 (72 سنة) [1]  عينتاب[2]  مواطنة الجمهورية السورية الأولى (1951–1958) الجمهورية العربية المتحدة (1958–1961) سوريا (1961–2024)  عدد الأولاد 5   الحياة العملية ال�...

 

André Morell nel film Il drago degli abissi (1959) André Morell, vero nome Cecil André Mesritz (Londra, 20 agosto 1909 – Londra, 28 novembre 1978), è stato un attore britannico. Indice 1 Biografia 2 Filmografia 2.1 Cinema 2.2 Televisione 3 Doppiatori italiani 4 Altri progetti 5 Collegamenti esterni Biografia Di origini olandesi, figlio di André Mesritz, prima di intraprendere la carriera di attore professionista lavorò come meccanico e nel tempo libero recitò da dilettante in alcune ...

 

1969 film by Robert Sparr Once You Kiss a StrangerTheatrical release posterDirected byRobert SparrScreenplay byFrank TarloffNorman KatkovBased onStrangers on a Trainby Patricia HighsmithProduced byHarold A. GoldsteinStarring Paul Burke Carol Lynley Martha Hyer Peter Lind Hayes Philip Carey Stephen McNally Whit Bissell CinematographyJacques R. MarquetteEdited byMarjorie FowlerMusic byJimmie FagasProductioncompanyWarner Bros.-Seven ArtsDistributed byWarner Bros.-Seven ArtsRelease date November&...

密西西比州 哥伦布城市綽號:Possum Town哥伦布位于密西西比州的位置坐标:33°30′06″N 88°24′54″W / 33.501666666667°N 88.415°W / 33.501666666667; -88.415国家 美國州密西西比州县朗兹县始建于1821年政府 • 市长罗伯特·史密斯 (民主党)面积 • 总计22.3 平方英里(57.8 平方公里) • 陸地21.4 平方英里(55.5 平方公里) • ...

 

Native American group in Southern California, United States For the language, see Tataviam language. TataviamThe general area where the Tataviam language was spoken prior to European colonization (shown in red)Regions with significant populations United States ( California)LanguagesEnglish, Spanish formerly TataviamReligionTraditional tribal religion, ChristianityRelated ethnic groupsTongva, Chumash, Serrano, Kitanemuk, Luiseño, Vanyume The Tataviam (Kitanemuk: people on the south slope) are...

 

Historic home museum in Barcelona, SpainGaudí House MuseumView of the Gaudí House Museum from the Park GüellEstablished28 September 1963; 60 years ago (1963-09-28)LocationPark Güell, Barcelona, SpainCoordinates41°24′48.78″N 2°9′7.78″E / 41.4135500°N 2.1521611°E / 41.4135500; 2.1521611Typehistoric home museumWebsitewww.casamuseugaudi.org The Gaudí House Museum (Catalan: Casa Museu Gaudí), located within the Park Güell in Barcelona, ...

Election for the 57th Parliament of Queensland For the local government elections held in March, see 2024 Queensland local elections. 2024 Queensland state election ← 2020 26 October 2024 2028 → ← outgoing membersAll 93 seats in the Legislative Assembly47 seats needed for a majorityOpinion polls   Leader Steven Miles David Crisafulli Robbie Katter Party Labor Liberal National Katter's Australian Leader since 15 December 2023 12 November 2020 2 F...

 

Clean Sky Joint UndertakingCSJUJoint Undertaking overviewFormed2008; 16 years ago (2008)HeadquartersAvenue de la Toison d’Or 56-60, 4th Floor 1060 Brussels Belgium50°50′06″N 4°21′17″E / 50.835070°N 4.354600°E / 50.835070; 4.354600MottoInnovation Takes OffAnnual budget€1.6bn (Clean Sky), €4bn (Clean Sky 2)Joint Undertaking executiveAxel Krein, Executive DirectorKey documentCouncil Regulation (EU) 558/2014Websitecleansky.eu The Clean S...

 

Werner StengelWerner Stengel en 2017.BiographieNaissance 22 août 1936 (87 ans)BochumNationalité allemandeFormation Université Louis-et-Maximilien de MunichUniversité de CasselActivité IngénieurAutres informationsDistinctions Chevalier de l'ordre du Mérite de la République fédérale d'Allemagne (2009)Docteur honoris causa de l'université de Göteborgmodifier - modifier le code - modifier Wikidata Werner Stengel, né le 22 août 1936 à Bochum[1], est un designer et ingénieur al...

La neutralità di questa voce o sezione sull'argomento aziende è stata messa in dubbio. Motivo: La voce è, di fatto, strutturata come un curriculum vitae aziendale. Andrebbe sfoltita lasciando le informazioni essenziali e riorganizzando i paragrafi evitando titoli come crescita ed espansione, diversificazioni, nuove collaborazioni che fanno pensare a un intento promozionale. Per contribuire, correggi i toni enfatici o di parte e partecipa alla discussione. Non rimuovere questo avviso ...

 

This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (January 2015) (Learn how and when to remove this message) MI 19 redirects here. The term may also refer to M-19 (Michigan highway). Michigan's 19th congressional districtObsolete districtCreated1965Eliminated1980Years active1965-1983 Michigan's 19th congressional district is a...

 

Alphabets used for Albanian For the alphabet formerly used in the Caucasus, see Caucasian Albanian script. The Albanian alphabet (Albanian: alfabeti shqip) is a variant of the Latin alphabet used to write the Albanian language. It consists of 36 letters:[1] Capital letters A B C Ç D Dh E Ë F G Gj H I J K L Ll M N Nj O P Q R Rr S Sh T Th U V X Xh Y Z Zh Lower case letters a b c ç d dh e ë f g gj h i j k l ll m n nj o p q r rr s sh t th u v x xh y z zh IPA value a b ts tʃ d ð e ə...

Les provinces de l'Ouzbékistan sont divisées en districts (tuman). Ces districts sont listés ci-dessous par province, en suivant approximativement une direction d'ouest en est (soit en suivant les repères du plan ci-contre : 14, 13, 7 , 3, 8, 9, 5, 11, 10, 12,6, 4, 2). Les noms sont généralement obtenus par translittération du russe. Provinces d'Ouzbékistan République du Karakalpakstan Districts du Karakalpakstan Ref. Nom du district Capitale du district 1 District d'Amudaryo Ma...

 

Pour les articles homonymes, voir Olivier Carré et Carré (homonymie). Olivier Carré Olivier Carré en 2017. Fonctions Président d'Orléans Métropole 22 juin 2017 – 16 juillet 2020(3 ans et 24 jours) Élection 22 juin 2017 Prédécesseur Charles-Éric Lemaignen Successeur Christophe Chaillou Maire d'Orléans 28 juin 2015 – 29 juin 2020(5 ans et 1 jour) Élection 28 juin 2015 Prédécesseur Serge Grouard Successeur Serge Grouard Député français 20 juin 2007 – ...