Loading ...
Sorry, an error occurred while loading the content.

Re: [neat] Soccerbots

Expand Messages
  • German Viscuso
    Dear Shimon, In a previous message Kenneth noted that in robots and robot simulators the inputs and outputs are not necessarily in a format that is natural or
    Message 1 of 15 , Mar 1, 2004
    • 0 Attachment
      Dear Shimon,
      In a previous message Kenneth noted that in robots and robot simulators the
      inputs and outputs are not necessarily in a format that is natural or useful
      to an NN. I quote him here:

      ------begin quote-----
      One thing to keep in mind about robots and robot simulators is that
      their inputs and outputs are not necessarily in a format that is
      natural or useful to an NN. In many cases, it is worth converting
      from the coordinate system of the robot to an alternative coordinate
      system that is better for an NN.

      For example, we have found that having two outputs for two wheel
      powers is not the best format for a neural network to express
      movements. Rather, the best seems to be a single outputs for
      forward/back, and another for left/right. So like this:

      Output 1:
      -1 0 1
      Backward Don't Move Forward

      Output 2:
      -1 0 1
      Left Forward Right

      So the move is a combination of the 2: move forward or backward
      and turn the requested angle.

      This coordinate frame can easily be converted into the left
      motor/right motor frame, so the right signals can be given to the
      robot.

      Similarly, cartesian coordinates are not necessarily the best.
      (Although you should try them to see if they do work) But an
      alernative is to set up several radar sensors surrounding the
      robot and let the radars light up if e.g. the ball is within
      their arc of sensitivity (the closer the higher the activation).
      This may be more natural for the NN than cartesian coordinates. If
      the simulator gives you cartesian coordinates, they can easily be
      converted in the more natural radar sensor format.

      These suggestions are not guaranteed to work best, but my main point
      is that you should try a variety of sensor/motor configurations and
      not assume that just because the simulator offers a particular
      configuration that that is necessarily the best for the NN.

      ken
      ------end quote------

      I would like to hear your comments about this topic (if that in not much to
      ask ;-)

      Thanks a lot!

      German Viscuso

      ----- Original Message -----
      From: "Shimon Whiteson" <shimon@...>
      To: <neat@yahoogroups.com>
      Sent: Sunday, February 29, 2004 10:12 PM
      Subject: Re: [neat] Soccerbots


      > > Perhaps in the future we'll be able to see evolved monolithic
      controllers
      > > for soccer players, have you tried this before?
      >
      > In both the GECCO and the journal papers we try monolithic approaches and
      > they fail abysmally. These experiments were done on keepaway, an
      important
      > subtask of robot soccer. In a full soccer domain, I think a monolithic
      > approach would do even worse. Of course, NEAT might do much better than
      ESP
      > but I think it would still have a lot of trouble learning a monolithic
      > controller.
      >
      > I am optimistic that yet-to-be-developed learning algorithms will reduce
      the
      > need for manual decomposition. However, even humans, the best learning
      > systems in the world, do not learn soccer by simply playing games
      > repeatedly. They do drills, practice basic skills, and decide on
      > higher-level strategies in a fashion that is relatively independent of how
      > they carry out lower-level actions. Hence, they benefit from the "task
      > decomposition" that their coaches, based on domain expertise, know will
      help
      > them learn.
      >
      > I think it is an important goal to develop learning systems that do not
      > require human designers to have a lot of domain expertise. But I think it
      > is even more important to find algorithms that can easily and reliably
      > exploit the domain expertise that we *do* have. No matter how difficult a
      > problem your algorithm can master from a tabula rasa approach, I think you
      > will always be able to go even further if you exploit human expertise too.
      >
      > -Shimon
      >
      > > ----- Original Message -----
      > > From: "Shimon Whiteson" <shimon@...>
      > > To: <neat@yahoogroups.com>
      > > Cc: "Nate Kohl" <nate@...>
      > > Sent: Sunday, February 29, 2004 8:51 PM
      > > Subject: Re: [neat] Soccerbots
      > >
      > >
      > > > Hi,
      > > >
      > > > My name is Shimon Whiteson. I'm a PhD student at UT (Ken is one of my
      > > > officemates). Nate Kohl and I have done a lot of research applying
      > > > neuroevolution to the SoccerBots domain over the past couple years.
      If
      > > > anyone is planning to work in this domain, they might be interested in
      > > > checking out our papers on the subject:
      > > >
      > > > http://www.cs.utexas.edu/users/shimon/school.html
      > > >
      > > > We also have a journal paper (not yet published) that discusses some
      > > > coevolutionary approaches, which I'd be happy to send to anyone who's
      > > > interested. All this work was done with ESP and not NEAT so obviously
      > its
      > > > relevance in somewhat limited. But it does describe the input and
      > output
      > > > representations that we found useful. It focuses primarily on the
      issue
      > > of
      > > > task decomposition: how to break a hard task like robot soccer into
      > > smaller
      > > > pieces that our learning algorithms can tackle.
      > > >
      > > > From doing this research I have become convinced that trying to learn
      > > > monolithic controllers for soccer players is completely infeasible
      using
      > > > current methods. I would strongly recommend that anyone who works in
      > this
      > > > domain consider using some of the decomposition approaches we describe
      > in
      > > > the papers or even developing your own.
      > > >
      > > > Please don't hesitate to drop me a line if you want to discuss any
      > > > Soccerbots-related issues.
      > > >
      > > > Cheers,
      > > > Shimon
      > > >
      > > > ----- Original Message -----
      > > > From: "Derek James" <blue5432@...>
      > > > To: <neat@yahoogroups.com>
      > > > Sent: Friday, February 27, 2004 9:31 AM
      > > > Subject: [neat] Soccerbots
      > > >
      > > >
      > > > > --- German Viscuso <netquake@...> wrote:
      > > > > > My name is German Viscuso and I would like to
      > > > > > introduce myself to the group
      > > > > > members.
      > > > >
      > > > > Hi German...welcome to the group. :)
      > > > >
      > > > > > I have a degree in Computer Science and I 'm now
      > > > > > researching neuroevolution
      > > > > > techniques for application in the robotic soccer
      > > > > > domain. I'm planning to
      > > > > > apply NEAT to evolve a full team of players
      > > > > > [*](using a robot soccer
      > > > > > simulator).
      > > > >
      > > > > Do you plan to do work solely in simulation, or at
      > > > > some point upload ANN controllers into physical
      > > > > hardware?
      > > > >
      > > > > Interestingly enough, Philip and I decided to go ahead
      > > > > and integrate a robot control domain into the Java
      > > > > implementation of NEAT we're working on, and we went
      > > > > with Soccerbots:
      > > > >
      > > > > http://www-2.cs.cmu.edu/~trb/TeamBots/Domains/SoccerBots/
      > > > >
      > > > > It's part of the Teambots package (which includes
      > > > > other robot control domains, such as foraging). It
      > > > > was primarily architected for hand-coded controllers,
      > > > > and was not especially suited for evolving ANN
      > > > > controllers, but we've already adapted it for that
      > > > > purpose (I've already done a couple of test runs with
      > > > > it).
      > > > >
      > > > > It simulates the small robot competition of Robocup,
      > > > > played on a ping-pong table sized area with an orange
      > > > > golf ball as the "soccer ball". It supports teams of
      > > > > up to 5 players, and teams can either be homogenous
      > > > > (all use the same controller), or heterogenous (the
      > > > > goalie can have a different controller than a
      > > > > forward).
      > > > >
      > > > > If this sounds like a good testbed for the kind of
      > > > > stuff you want to do, let me know. We'd be more than
      > > > > happy to share our implementation. If not, good
      > > > > luck...and keep us up-to-date on your progress.
      > > > >
      > > > > > [*] It is considered a very difficult task to fully
      > > > > > evolve a team that can
      > > > > > play the whole game of soccer (not only subtasks)
      > > > > > but I seriously think
      > > > > > complexification can help me here. I'm still not
      > > > > > sure if I should evolve the
      > > > > > team from sensors to actuators or use some of my
      > > > > > predefined movement
      > > > > > primitives to accelerate the task.
      > > > >
      > > > > Soccerbots robots have an array of sensors which
      > > > > return 2d vectors to various objects on the field.
      > > > > Each has a method (e.g., getBall()) that returns a
      > > > > vector object, which contains both the x and y
      > > > > coordinates of the sensed object, and distance and
      > > > > angle in radians to the object. There are methods
      > > > > that return position of both goals and each player.
      > > > > For my test implementation, I'm inputting the sensor
      > > > > information for the ball, friendly goal, opponent
      > > > > goal, closest teammate, and closest opponent.
      > > > >
      > > > > There are only three actuators in Soccerbots:
      > > > >
      > > > > --Set heading in radians.
      > > > > --Set speed (from 0 m/s to 3 m/s)
      > > > > --Kick the ball
      > > > >
      > > > > Currently I'm just using the first actuator. Speed is
      > > > > clamped at max and the kick actuator is in repeat mode
      > > > > (basically always kicking).
      > > > >
      > > > > Since each sensor reading is essentially two inputs
      > > > > (angle and distance), and I'm inputting information
      > > > > about five objects every timestep, there are 11 total
      > > > > inputs (including a bias node) and 1 output.
      > > > >
      > > > > We've implemented runs which evolve the ANNs directly
      > > > > against hand-coded AIs that came with the Soccerbots
      > > > > package (there are about 20, of various skill levels).
      > > > > Within the next couple of days we'll have it set up
      > > > > for coevolutionary runs as well.
      > > > >
      > > > > Anyway, it's nice to hear there's crossover in
      > > > > interest in this domain. Anybody else have
      > > > > experiences or thoughts on robot control domains?
      > > > > Robot soccer? Multi-agent systems?
      > > > >
      > > > > Derek
      > > > >
      > > > > __________________________________
      > > > > Do you Yahoo!?
      > > > > Get better spam protection with Yahoo! Mail.
      > > > > http://antispam.yahoo.com/tools
      > > > >
      > > > >
      > > > >
      > > > > Yahoo! Groups Links
      > > > >
      > > > >
      > > > >
      > > > >
      > > > >
      > > > >
      > > >
      > > >
      > > >
      > > >
      > > >
      > > > Yahoo! Groups Links
      > > >
      > > >
      > > >
      > > >
      > > >
      > > >
      > >
      > >
      > >
      > >
      > >
      > > Yahoo! Groups Links
      > >
      > >
      > >
      > >
      > >
      > >
      >
      >
      >
      >
      >
      > Yahoo! Groups Links
      >
      >
      >
      >
      >
      >
    • Shimon Whiteson
      German, Ken s suggestions sound good to me. In our project, Nate and I did not consider these kind of inputs representations so I don t have any data that can
      Message 2 of 15 , Mar 1, 2004
      • 0 Attachment
        German,

        Ken's suggestions sound good to me. In our project, Nate and I did not
        consider these kind of inputs representations so I don't have any data that
        can confirm or disconfirm the usefulness of such alternatives. The one
        principle that I have found to be very important is this: always make the
        input representation as ego-centric as possible. For example, the position
        of other players and objects should be represented relative to the agent.
        The goal is to exploit symmetry whenever possible: if two input scenarios
        are symmetrical and you can find a way to represent them the same way, then
        the agent will have to do less redundant learning.

        -Shimon

        ----- Original Message -----
        From: "German Viscuso" <netquake@...>
        To: <neat@yahoogroups.com>
        Sent: Monday, March 01, 2004 7:23 AM
        Subject: Re: [neat] Soccerbots


        > Dear Shimon,
        > In a previous message Kenneth noted that in robots and robot simulators
        the
        > inputs and outputs are not necessarily in a format that is natural or
        useful
        > to an NN. I quote him here:
        >
        > ------begin quote-----
        > One thing to keep in mind about robots and robot simulators is that
        > their inputs and outputs are not necessarily in a format that is
        > natural or useful to an NN. In many cases, it is worth converting
        > from the coordinate system of the robot to an alternative coordinate
        > system that is better for an NN.
        >
        > For example, we have found that having two outputs for two wheel
        > powers is not the best format for a neural network to express
        > movements. Rather, the best seems to be a single outputs for
        > forward/back, and another for left/right. So like this:
        >
        > Output 1:
        > -1 0 1
        > Backward Don't Move Forward
        >
        > Output 2:
        > -1 0 1
        > Left Forward Right
        >
        > So the move is a combination of the 2: move forward or backward
        > and turn the requested angle.
        >
        > This coordinate frame can easily be converted into the left
        > motor/right motor frame, so the right signals can be given to the
        > robot.
        >
        > Similarly, cartesian coordinates are not necessarily the best.
        > (Although you should try them to see if they do work) But an
        > alernative is to set up several radar sensors surrounding the
        > robot and let the radars light up if e.g. the ball is within
        > their arc of sensitivity (the closer the higher the activation).
        > This may be more natural for the NN than cartesian coordinates. If
        > the simulator gives you cartesian coordinates, they can easily be
        > converted in the more natural radar sensor format.
        >
        > These suggestions are not guaranteed to work best, but my main point
        > is that you should try a variety of sensor/motor configurations and
        > not assume that just because the simulator offers a particular
        > configuration that that is necessarily the best for the NN.
        >
        > ken
        > ------end quote------
        >
        > I would like to hear your comments about this topic (if that in not much
        to
        > ask ;-)
        >
        > Thanks a lot!
        >
        > German Viscuso
        >
        > ----- Original Message -----
        > From: "Shimon Whiteson" <shimon@...>
        > To: <neat@yahoogroups.com>
        > Sent: Sunday, February 29, 2004 10:12 PM
        > Subject: Re: [neat] Soccerbots
        >
        >
        > > > Perhaps in the future we'll be able to see evolved monolithic
        > controllers
        > > > for soccer players, have you tried this before?
        > >
        > > In both the GECCO and the journal papers we try monolithic approaches
        and
        > > they fail abysmally. These experiments were done on keepaway, an
        > important
        > > subtask of robot soccer. In a full soccer domain, I think a monolithic
        > > approach would do even worse. Of course, NEAT might do much better than
        > ESP
        > > but I think it would still have a lot of trouble learning a monolithic
        > > controller.
        > >
        > > I am optimistic that yet-to-be-developed learning algorithms will reduce
        > the
        > > need for manual decomposition. However, even humans, the best learning
        > > systems in the world, do not learn soccer by simply playing games
        > > repeatedly. They do drills, practice basic skills, and decide on
        > > higher-level strategies in a fashion that is relatively independent of
        how
        > > they carry out lower-level actions. Hence, they benefit from the "task
        > > decomposition" that their coaches, based on domain expertise, know will
        > help
        > > them learn.
        > >
        > > I think it is an important goal to develop learning systems that do not
        > > require human designers to have a lot of domain expertise. But I think
        it
        > > is even more important to find algorithms that can easily and reliably
        > > exploit the domain expertise that we *do* have. No matter how difficult
        a
        > > problem your algorithm can master from a tabula rasa approach, I think
        you
        > > will always be able to go even further if you exploit human expertise
        too.
        > >
        > > -Shimon
        > >
        > > > ----- Original Message -----
        > > > From: "Shimon Whiteson" <shimon@...>
        > > > To: <neat@yahoogroups.com>
        > > > Cc: "Nate Kohl" <nate@...>
        > > > Sent: Sunday, February 29, 2004 8:51 PM
        > > > Subject: Re: [neat] Soccerbots
        > > >
        > > >
        > > > > Hi,
        > > > >
        > > > > My name is Shimon Whiteson. I'm a PhD student at UT (Ken is one of
        my
        > > > > officemates). Nate Kohl and I have done a lot of research applying
        > > > > neuroevolution to the SoccerBots domain over the past couple years.
        > If
        > > > > anyone is planning to work in this domain, they might be interested
        in
        > > > > checking out our papers on the subject:
        > > > >
        > > > > http://www.cs.utexas.edu/users/shimon/school.html
        > > > >
        > > > > We also have a journal paper (not yet published) that discusses some
        > > > > coevolutionary approaches, which I'd be happy to send to anyone
        who's
        > > > > interested. All this work was done with ESP and not NEAT so
        obviously
        > > its
        > > > > relevance in somewhat limited. But it does describe the input and
        > > output
        > > > > representations that we found useful. It focuses primarily on the
        > issue
        > > > of
        > > > > task decomposition: how to break a hard task like robot soccer into
        > > > smaller
        > > > > pieces that our learning algorithms can tackle.
        > > > >
        > > > > From doing this research I have become convinced that trying to
        learn
        > > > > monolithic controllers for soccer players is completely infeasible
        > using
        > > > > current methods. I would strongly recommend that anyone who works
        in
        > > this
        > > > > domain consider using some of the decomposition approaches we
        describe
        > > in
        > > > > the papers or even developing your own.
        > > > >
        > > > > Please don't hesitate to drop me a line if you want to discuss any
        > > > > Soccerbots-related issues.
        > > > >
        > > > > Cheers,
        > > > > Shimon
        > > > >
        > > > > ----- Original Message -----
        > > > > From: "Derek James" <blue5432@...>
        > > > > To: <neat@yahoogroups.com>
        > > > > Sent: Friday, February 27, 2004 9:31 AM
        > > > > Subject: [neat] Soccerbots
        > > > >
        > > > >
        > > > > > --- German Viscuso <netquake@...> wrote:
        > > > > > > My name is German Viscuso and I would like to
        > > > > > > introduce myself to the group
        > > > > > > members.
        > > > > >
        > > > > > Hi German...welcome to the group. :)
        > > > > >
        > > > > > > I have a degree in Computer Science and I 'm now
        > > > > > > researching neuroevolution
        > > > > > > techniques for application in the robotic soccer
        > > > > > > domain. I'm planning to
        > > > > > > apply NEAT to evolve a full team of players
        > > > > > > [*](using a robot soccer
        > > > > > > simulator).
        > > > > >
        > > > > > Do you plan to do work solely in simulation, or at
        > > > > > some point upload ANN controllers into physical
        > > > > > hardware?
        > > > > >
        > > > > > Interestingly enough, Philip and I decided to go ahead
        > > > > > and integrate a robot control domain into the Java
        > > > > > implementation of NEAT we're working on, and we went
        > > > > > with Soccerbots:
        > > > > >
        > > > > > http://www-2.cs.cmu.edu/~trb/TeamBots/Domains/SoccerBots/
        > > > > >
        > > > > > It's part of the Teambots package (which includes
        > > > > > other robot control domains, such as foraging). It
        > > > > > was primarily architected for hand-coded controllers,
        > > > > > and was not especially suited for evolving ANN
        > > > > > controllers, but we've already adapted it for that
        > > > > > purpose (I've already done a couple of test runs with
        > > > > > it).
        > > > > >
        > > > > > It simulates the small robot competition of Robocup,
        > > > > > played on a ping-pong table sized area with an orange
        > > > > > golf ball as the "soccer ball". It supports teams of
        > > > > > up to 5 players, and teams can either be homogenous
        > > > > > (all use the same controller), or heterogenous (the
        > > > > > goalie can have a different controller than a
        > > > > > forward).
        > > > > >
        > > > > > If this sounds like a good testbed for the kind of
        > > > > > stuff you want to do, let me know. We'd be more than
        > > > > > happy to share our implementation. If not, good
        > > > > > luck...and keep us up-to-date on your progress.
        > > > > >
        > > > > > > [*] It is considered a very difficult task to fully
        > > > > > > evolve a team that can
        > > > > > > play the whole game of soccer (not only subtasks)
        > > > > > > but I seriously think
        > > > > > > complexification can help me here. I'm still not
        > > > > > > sure if I should evolve the
        > > > > > > team from sensors to actuators or use some of my
        > > > > > > predefined movement
        > > > > > > primitives to accelerate the task.
        > > > > >
        > > > > > Soccerbots robots have an array of sensors which
        > > > > > return 2d vectors to various objects on the field.
        > > > > > Each has a method (e.g., getBall()) that returns a
        > > > > > vector object, which contains both the x and y
        > > > > > coordinates of the sensed object, and distance and
        > > > > > angle in radians to the object. There are methods
        > > > > > that return position of both goals and each player.
        > > > > > For my test implementation, I'm inputting the sensor
        > > > > > information for the ball, friendly goal, opponent
        > > > > > goal, closest teammate, and closest opponent.
        > > > > >
        > > > > > There are only three actuators in Soccerbots:
        > > > > >
        > > > > > --Set heading in radians.
        > > > > > --Set speed (from 0 m/s to 3 m/s)
        > > > > > --Kick the ball
        > > > > >
        > > > > > Currently I'm just using the first actuator. Speed is
        > > > > > clamped at max and the kick actuator is in repeat mode
        > > > > > (basically always kicking).
        > > > > >
        > > > > > Since each sensor reading is essentially two inputs
        > > > > > (angle and distance), and I'm inputting information
        > > > > > about five objects every timestep, there are 11 total
        > > > > > inputs (including a bias node) and 1 output.
        > > > > >
        > > > > > We've implemented runs which evolve the ANNs directly
        > > > > > against hand-coded AIs that came with the Soccerbots
        > > > > > package (there are about 20, of various skill levels).
        > > > > > Within the next couple of days we'll have it set up
        > > > > > for coevolutionary runs as well.
        > > > > >
        > > > > > Anyway, it's nice to hear there's crossover in
        > > > > > interest in this domain. Anybody else have
        > > > > > experiences or thoughts on robot control domains?
        > > > > > Robot soccer? Multi-agent systems?
        > > > > >
        > > > > > Derek
        > > > > >
        > > > > > __________________________________
        > > > > > Do you Yahoo!?
        > > > > > Get better spam protection with Yahoo! Mail.
        > > > > > http://antispam.yahoo.com/tools
        > > > > >
        > > > > >
        > > > > >
        > > > > > Yahoo! Groups Links
        > > > > >
        > > > > >
        > > > > >
        > > > > >
        > > > > >
        > > > > >
        > > > >
        > > > >
        > > > >
        > > > >
        > > > >
        > > > > Yahoo! Groups Links
        > > > >
        > > > >
        > > > >
        > > > >
        > > > >
        > > > >
        > > >
        > > >
        > > >
        > > >
        > > >
        > > > Yahoo! Groups Links
        > > >
        > > >
        > > >
        > > >
        > > >
        > > >
        > >
        > >
        > >
        > >
        > >
        > > Yahoo! Groups Links
        > >
        > >
        > >
        > >
        > >
        > >
        >
        >
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
        >
      • Shimon Whiteson
        ... This sounds very similar to the results we got before we started using task decompositions. I think the problem is that soccer is a task with *very*
        Message 3 of 15 , Mar 1, 2004
        • 0 Attachment
          > My initial fitness function was based on friendly
          > goals scored, minus opponent goals scored, and
          > included a computed average, throughout the game, of
          > the ball's distance from the target goal. This
          > fitness function seems to produce slightly better
          > defensive players, but I have yet to evolve a team
          > that exhibits scoring behavior.

          This sounds very similar to the results we got before we started using task
          decompositions. I think the problem is that soccer is a task with *very*
          sparse reinforcement. The only time you ever get positive or negative
          feedback is when a goal is scored. Even if there is only one agent on the
          field and there are no opponents, scoring a goal is a *very* complicated
          control problem. The agent has to locate the ball, approach it, kick it in
          the right direction repeatedly, and then kick it into the goal. It's very
          unlikely that any network in your initial population will be able to execute
          the right sequence of actions to score a goal. Hence, there is no
          reinforcement at all, the whole population gets a fitness of zero, and
          selective pressure is nonexistent.

          With opponents who already know how to play, you can expect at least
          negative reinforcement (i.e. they will get scored on). Hence, it is easier
          to learn simple defensive strategies. We found that it is not hard for a
          team of agents to learn to crowd in front of their own goal to prevent
          scoring, but this is not exactly a step towards a promising soccer strategy.
          Task decomposition can help enormously because you can set tangible subgoals
          (e.g. learn to shoot on goal, learn to pass to a teammate, etc.) and then
          you can artificially supply much more immediate reinforcement (e.g. award
          points for how close the ball gets to the goal or how quickly a pass is
          received by another player). The details of how we did this in our ESP
          project are explained in the papers I mentioned before.

          Cheers,
          Shimon
        • Derek James
          Hi all, A couple of weeks ago I wrote a small Java application that takes Ken s network text output and converts it into an XML file, which can then be parsed
          Message 4 of 15 , Apr 16, 2004
          • 0 Attachment
            Hi all,

            A couple of weeks ago I wrote a small Java application
            that takes Ken's network text output and converts it
            into an XML file, which can then be parsed into SVG
            for viewing.

            I've uploaded it in the Files>NEAT XML section. The
            file is called graphingTools.zip, and it contains:

            --XmlConverter.java (the source for the Java command
            line utility I wrote to convert genomes into our
            format for network.xml)
            --XmlConverter.class (the compiled Java utility)
            --kens_genome.txt (just a text file containing the
            genome in Ken's format)
            --format.xsl (an XSL style sheet that converts our
            network.xml into a layer-based network.xml for
            drawing)
            --draw.xsl (an XSL style sheet that takes the
            formatted xml and produces an SVG document)
            --draw.bat (a .bat file that takes an xml file and
            automatically parses it with both format.xsl and
            draw.xsl, producing network.svg)

            You'll need to have a JRE installed to run the
            XmlConverter. But these tools should be usable by
            anyone who is using Ken's original implementation and
            would like an alternative visual layout option.

            If you have any questions about how to use any of
            these files, just let me know.

            Thanks,
            Derek





            __________________________________
            Do you Yahoo!?
            Yahoo! Tax Center - File online by April 15th
            http://taxes.yahoo.com/filing.html
          Your message has been successfully submitted and would be delivered to recipients shortly.