Re: Traveling Salesman
- To: mathgroup at smc.vnet.net
- Subject: [mg35516] Re: [mg35497] Traveling Salesman
- From: Andrzej Kozlowski <andrzej at yhc.att.ne.jp>
- Date: Wed, 17 Jul 2002 02:09:09 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
It depends which version of the Combinatorica package you have. If it is
the one which comes with Mathematica 4.1 and earlier you have to do
something like this. First write your matrix using the proper
Mathematica syntax.
m = {{0 , 1, 3, 4}, {1, 0, 2, 6}, {3, 2 , 0 , 5}, {4 , 6, 5 , 0}};
What you need to do is to create a graph with m as its adjacency matrix
and apply the TravelingSalesman function to it. Here is one way to do
this:
In[3]:=
TravelingSalesman[Graph[m,CircularVertices[4]]]
Out[4]=
{1,2,3,4,1}
If you have the new Combinatorica package which comes with version 4.2
of Mathematica or the pre-released version that I am using (assuming
that they are the same in this respect!) then the answer by evaluating:
In[3]:=
TravelingSalesman[FromAdjacencyMatrix[m,EdgeWeight]]
Out[4]=
{1,2,3,4,1}
Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
On Tuesday, July 16, 2002, at 04:50 AM, Nathan Given wrote:
> I am looking for some help with the Traveling Salesman problem.
>
> I have one matrix that has the distances in miles between cities, it
> looks like this...
>
>
> [0 1 3 4]
> [1 0 2 6]
> [3 2 0 5]
> [4 6 5 0]
>
> Now, how do I use the traveling salesman algorithm in mathematica to
> help me with this?
>
> (I am new to mathematica)
>
> Thus far, here is what I have accomplished...
>
> << DiscreteMath`Combinatorica`
>
> that's about it.
>
> Thanks!
> --
> Nathan
>
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~
> Nathan G. Given
> ngiven at lanl.gov
> (505) 662 - 5919 x201
> (505) 663 - 3406
> X-5, Applied Physics
> MS F663
> ~~~~~~~~~~~~~~~~~~~~~~~
>
>
>