Top-nodes Algorithm - Principle

Principle

The calendar is stored as a binary tree where leafs represent elementary time periods. Other nodes represent the period of time covered by all their descendants.

Example of a 7-hour calendar (with elementary periods of one hour)

The period of time covered by a reservation is represented by a set of "top-nodes". This set is the minimal set of nodes that exactly cover the reservation period of time.

A node of the binary tree is a "top-node" for a given reservation if

  • all its descendants are inside the reservation period of time,

and

  • it is the root node, or at least one descendant of the parent node is outside of the reservation period of time.
Top-nodes for a reservation from 1:00 to 5:59

The following value is stored in each node:

q(node) = max(q(left child), q(right child)) + total amount of reserved resource for all reservations having this node as a "top-node"

(for code optimization, the two parts of this sum are usually stored separately.)

Read more about this topic:  Top-nodes Algorithm

Famous quotes containing the word principle:

    I often wish for the end of the wretched remnant of my life; and that wish is a rational one; but then the innate principle of self-preservation, wisely implanted in our natures, for obvious purposes, opposes that wish, and makes us endeavour to spin out our thread as long as we can, however decayed and rotten it may be.
    Philip Dormer Stanhope, 4th Earl Chesterfield (1694–1773)

    Thanks to all. For the great republic—for the principle it lives by, and keeps alive—for man’s vast future,—thanks to all.
    Abraham Lincoln (1809–1865)

    Thus it seemed that this one hillside illustrated the principle of all the operations of Nature. The Maker of this earth but patented a leaf. What Champollion will decipher this hieroglyphic for us, that we may turn over a new leaf at last?
    Henry David Thoreau (1817–1862)