[pgrouting-users] suspected bug in TSP distance matrix pgRouting RC1 released[SOLUTION]

sanak geosanak at gmail.com
Fri Jul 19 07:00:41 PDT 2013


Hi Dave,

Yes, it is also necessary.
https://github.com/sanak/pgrouting4w/commit/fa8c5ff559344653a464f2c3416de0ef8c4ce393

By the way, in my environment(currently use MacOSX),
your 2nd result was as follows, and it is not same as 1st one.
====
pgrouting-workshop=# SELECT seq, id FROM
pgr_tsp('{{0,0.1,0.3,0.3},{0.1,0,0.2,0.2},{0.3,0.2,0,0.2},{0.3,0.2,0.2,0}}'::float8[],1);
 seq | id
-----+----
   0 |  1
   1 |  0
   2 |  3
   3 |  2
(4 rows)
====

In your environment, is there no problem?

Regards,



2013/7/19 Dave Potts <dave.potts at pinan.co.uk>

>  On 19/07/13 15:08, Dave Potts wrote:
> I have found the problem, in the function int findEulerianPath(TSP *tsp)
> in the file src/tsp/src/tsplib.c
>
>
> the code  says something like
> int d,i,j,k,l,a
>
> The varible  d is used to compare against a variable of type DTYPE, with
> the result that there seems to be an underflow/overflow issue
>
> so the code needs to be changed to
>
>     int *mst, *arc;
>     DTYPE d;
>     int i, j, k, l, a;
>     int n, *iorder, *jorder;
>
> having done,  I now get the expected result.
>
> Dave.
>
> On 19/07/13 13:02, sanak wrote:
> Hi Sanak
>
> Thanks for your help
>
> I had the float version in my source base I changed it to a double, I have
> done a make clean, install restarted the service, still have the same
> problem :-(
>
> Dave
>
> Hi Dave, Stephen,
>
>  I encountered the same issue(
> https://github.com/pgRouting/pgrouting/issues/159 ),
>  so, I sent the pull request(
> https://github.com/pgRouting/pgrouting/pull/160 ).
>
>  > Stephen
> Could you check my pull request?
>
>  Thanks,
>
>
> 2013/7/19 Dave Potts <dave.potts at pinan.co.uk>
>
>> I have been trying to do some work which requires the tsp, some of my
>> values have values of 0.1 in the dataset, I keep getting odd results.
>>
>> So I tried a well known example from the  pgr _tsp distance page and it
>> work as expected.
>>
>> I then repeated the same example but reduced all of the distance by a
>> factor off 10 and got an error.  Unless I have make a mistake in my
>> understanding of the manual page, I think we might a problem where
>>
>> -- version used
>> select pgr_version();
>>                    pgr_version
>> -------------------------------------------------
>>  (2.0.0-dev,v2.0.0-rc1,0,bf13fd7,develop,1.48.0)
>> -- Use a example get a result set
>> SELECT seq, id FROM
>> pgr_tsp('{{0,1,3,3},{1,0,2,2},{3,2,0,2},{3,2,2,0}}'::float8[],1);
>>  seq | id
>> -----+----
>>    0 |  1
>>    1 |  2
>>    2 |  3
>>    3 |  0
>> (4 rows)
>> -- repeat for reduce everything by  scale factor of 10  ie 1.0 becomes
>> 0.1 etc
>>
>> SELECT seq, id FROM
>> pgr_tsp('{{0,0.1,0.3,0.3},{0.1,0,0.2,0.2},{0.3,0.2,0,0.2},{0.3,0.2,0.2,0}}'::float8[],1);
>>
>> ERROR:  Error TSP fail to findEulerianPath, check your distance matrix is
>> valid.
>>
>> As far as I understand it my matrix has 0's on the leading diangonal  and
>> [a,b] == [b,a]
>>
>> Dave.
>> _______________________________________________
>> Pgrouting-users mailing list
>> Pgrouting-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>
>
>
>  --
>  Ko Nagase (sanak)
> Georepublic Japan
> mail: geosanak at gmail.com
>         nagase at georepublic.co.jp
>
>
> _______________________________________________
> Pgrouting-users mailing listPgrouting-users at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
>
>
>
> _______________________________________________
> Pgrouting-users mailing listPgrouting-users at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
>
>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
>


-- 
Ko Nagase (sanak)
Georepublic Japan
mail: geosanak at gmail.com
        nagase at georepublic.co.jp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20130719/00511d9f/attachment.html>


More information about the Pgrouting-users mailing list