Re: [PP] Duplicates with :p*

There is now reworked definitions for :p* and :p+ in rq25.  The 
formatting needs improving but the content is there.

1/ There are specific operators for each case ("ZeroOrMorePath" and 
"OneOrMorepath")

2/ The main algorithm ALP is path tracing (AKA node tracing for each 
path possibility)

3/ :p+ is defined as one step of the path, without recording the 
results, then as :p*


Test results that change: pp16 & pp25


pp16::

Got: 16 --------------------------------
## i.e. new algorithm
-------------------
| X      | Y      |
===================
| :a     | :a     |
| :a     | :b     |
| :a     | :c     |
| :a     | :c     |
| :b     | :b     |
| :b     | :c     |
| :c     | :c     |
| :d     | :d     |
| :d     | :e     |
| :d     | :f     |
| :e     | :e     |
| :e     | :f     |
| :f     | :e     |
| :f     | :f     |
| :h     | :h     |
| "test" | "test" |
-------------------

There are two (:a :c) results because there are two different routes 
:a->:b->:c
:a->:c

Expected: 19 -----------------------------
# test case manifest results
-------------------
| X      | Y      |
===================
| :a     | :a     |
| :a     | :b     |
| :a     | :c     |
| :a     | :c     |
| :b     | :b     |
| :b     | :c     |
| :c     | :c     |
| :d     | :d     |
| :d     | :e     | # Lost - was from * => {0} UNION +
| :d     | :e     |
| :d     | :f     |
| :e     | :e     |
| :e     | :e     | # Lost - was from * => {0} UNION +
| :e     | :f     |
| :f     | :e     |
| :f     | :f     |
| :f     | :f     | # Lost - was from * => {0} UNION +
| :h     | :h     |
| "test" | "test" |
-------------------

pp25:

Got: 4 --------------------------------
------
| z  |
======
| :b |
| :z | # because of :a->b->:z
| :c |
| :z | # because of :a->c->:z
------
Expected: 5 -----------------------------
------
| z  |
======
| :c | # Lost by :a->:c->:z suppressing :c->:c
| :c |
| :z |
| :b |
| :z |
------
 
 Andy

Received on Monday, 14 February 2011 20:50:12 UTC