Here is some example data (hopefully the monospace formatting is preserved):

    a   b   c   d   e
    -   -   -   -   -
1 | F | T | F | T | F |
    -   -   -   -   -
2 | T | F | T | F | T |
    -   -   -   -   -
3 | T | T | F | F | F |
    -   -   -   -   -
4 | F | T | F | T | F |
    -   -   -   -   -
5 | F | T | F | F | T |
    -   -   -   -   -

So, for cell b1, the shortest possible path to a true value in row 5 is
b1-a2-a3-b4-b5 (distance: sqrt(2) + 1 + sqrt(2) + 1).

* Shortest paths are not necessarily unique, but I just need to find the
length.

* If it's computationally hard to guarantee the absolute shortest path, I
can probably live with "nearly" shortest paths.

* Paths can "backtrack", so the shortest path from cell e2 to row 4 is
e2-d1-c2-b3-b4-b5.

I need to calculate the shortest path for all true cells to all rows
further down the matrix. I'm afraid I'm going to have to write some sort of
recursive path-tracing algorithm, but I'm hoping there's a package already
in existence that accomplishes this already...

-bryan

On Tue, Mar 4, 2014 at 1:13 PM, McCloskey, Bryan <bmcclos...@usgs.gov>wrote:

> I have a binary rectangular T/F matrix; I need to be able to calculate the
> shortest path (i.e., Pythagorean distance) between a populated cell in row
> j and any populated cell in some row j+n.
>
> For instance, if I have a chessboard with random black/white square
> colors, I need the shortest distance (linear distance, not number of steps)
> for a king to get from a specified black space on the first row, to _any_
> black space in a specified further row, traveling only on black spaces.
>
> Any idea? Thanks,
>
> -bryan
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to