algebraic metalanguages for routing policy specification
play

Algebraic metalanguages for routing policy specification Alexander - PowerPoint PPT Presentation

Algebraic metalanguages for routing policy specification Alexander Gurney Computer Laboratory, University of Cambridge Multi-Service Networks 2006 Coseners House, Abingdon, UK The Metarouting Idea A language for policy Build up


  1. Algebraic metalanguages for routing policy specification Alexander Gurney Computer Laboratory, University of Cambridge Multi-Service Networks 2006 Cosener’s House, Abingdon, UK

  2. The Metarouting Idea • A language for policy • Build up complex protocol descriptions, as simple algebras combined in known ways • Susceptible to proof • Suitable for implementation • One language, many meanings

  3. Meanwhile, in the world of mathematics • The shortest path problem, with numbers (Dijkstra, Bellman / Ford, Moore / Shannon; and related works back to at least 1871) • Generalised shortest paths (Gondran / Minoux; Carré; Berge; ...) • All kinds of fun algebra: monoids, semirings, semilattices and other ordered structures, actions, representations • “If the algebra has property X then we can use algorithm Y to find an optimal solution” for various values of “X”, “Y”, and “optimal”

  4. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ )

  5. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 4 0 2 5 1 9

  6. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 0+2+4+6+4 4 0 2 5 1 9

  7. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 2 5 1 9

  8. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 0+5+2+6+4 2 5 1 9

  9. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 17 2 5 1 9

  10. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 17 2 5 1 9 0+5+9+1

  11. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 17 2 5 1 9 15

  12. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 6 4 16 4 0 17 2 5 1 9 15

  13. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ )

  14. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 4 ∞ 2.3 5 1 9.1

  15. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 {2, 4, 5.8, 4.5} 4 ∞ 2.3 5 1 9.1

  16. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ 2.3 5 1 9.1

  17. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ {5, 2.3, 5.8, 4.5} 2.3 5 1 9.1

  18. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ 2.3 2.3 5 1 9.1

  19. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ 2.3 2.3 5 1 9.1 {5, 9.1, 1}

  20. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ 2.3 2.3 5 1 9.1 1

  21. Model I: Path algebra • Monoid (M, +, 0): closed, associative, identity • Semiring (S, ∧ , ⊕ , ⊤ , 0): two monoids (S, ∧ , ⊤ ), (S, ⊕ , 0) on the same set • Path algebra: has commutativity, distributivity, idempotence ( a + a = a ) • Examples: ( N ∞ , min, +, ∞ , 0), ( ℘ (A), ∩ , ∪ , A, ∅ ), ( R + , max, min, 0, ∞ ) 2 5.8 4.5 2 4 ∞ 2.3 2.3 5 1 9.1 1

  22. Combining operations • D = ( N ∞ , min, +, ∞ , 0), B = ( R + , max, min, 0, ∞ ) • D × B = ( N ∞ × R + , ∧ , ⊕ , ( ∞ , 0), (0, ∞ )), where ( d , b ) ∧ ( e , c ) = (min( d , e ), max( b , c )) ( d , b ) ⊕ ( e , c ) = ( d + e , min( b , c )) • D × lex B = ( N ∞ × R + , ∧ lex , ⊕ , ( ∞ , 0), (0, ∞ )), where ( d , b ) ∧ lex ( e , c ) = ( d , b ) if d < e or [ d = e and b > c ]; ( b , c ) otherwise ⊕ is as before We obtain < from min by defining a ≤ b iff a = min( a , b )

  23. Dijkstra’s algorithm and the prefix property • To get the right answer out of Dijkstra, we need each prefix of a shortest path to also be a shortest path • In semiring language: a = a ∧ b ⇒ ( m + a ) = ( m + a ) ∧ ( m + b ), for all a , b , m a m b • This is the case when we have distributivity: ( m + a ) ∧ ( m + b ) = m + ( a ∧ b )

  24. Property preservation • If A and B are distributive, then so is A × B; but A × lex B may not be • So if we have a whole load of distributive semirings A, B, C, and D, then we know we can run Dijkstra correctly on A × B × C × D • Similar rules exist for other properties and other operations – so we can deduce facts like “we can’t do Dijkstra, but we can do Bellman-Ford”

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend