Difference between revisions of "Brachistochrones - Jacob Slack"

From WeKey
Jump to navigationJump to search
(Created page with "PHYS 210 PROJECTS --> here My project is tentatively on determining various brachistochrone curves using a genetic algorithm. I say tentatively because the genetic algori...")
 
 
Line 35: Line 35:
==possible extensions not related to brachistochrones==
==possible extensions not related to brachistochrones==
I have discussed with Philip the possibility of using my genetic algorithm for calculating equilibrium configurations for his Dyson Spheres/Rings. This would be done by using a genetic algorithm to optimize gravitational potential.
I have discussed with Philip the possibility of using my genetic algorithm for calculating equilibrium configurations for his Dyson Spheres/Rings. This would be done by using a genetic algorithm to optimize gravitational potential.

Genetic algorithms have applications to an incredible myriad of optimization problems. If you are interested contact me. I will also be uploading the (incomplete at the moment) javadocs for my project to my course webpage (See External Links).

<FONT COLOR=darkgreen> You are right, genetic algorithms can be used for almost anything! It may be that they are not the most ''efficient'' algorithms for every type of problem, but ''"When you have a hammer, use it for everything you can. When you encounter nuts & bolts, you can invent a wrench."'' --- </FONT> [[User:Jess|Jess]] 16:09, 18 October 2008 (PDT)

<FONT COLOR=blue>As per the suggestion by professor Brewer, it would also be good to consider habitation outside the dyson sphere. Rather than having to traverse the incredible distances on the surface, a spacecraft on a string attached from within (a 'bead' if you will) could travel with minimized time between sectors of the sphere (on the outside). In the case of outside habitation, we'd save having to accelerate the sphere, but at the same time, banish humanity to billions of years without a proper star. So I think two interesting possible extensions for application to dyson spheres would be to first consider how 'brachistochrone lines' would be shaped without a gravitational field inside (except for the star), then a gravitational field inside. This may or may not be useful to you, but page 353 of the 8th edition of the Elementary Differential equations and boundary value problems textbook has some stuff on tautochrones. </FONT> [[User:Philip Mar|Philip Mar]]

==Links==
[http://www.physics.ubc.ca/~jslack/p210/javadoc/index.html Javadoc] of project so far --[[User:S90584079|S90584079]] 22:46, 22 October 2008 (PDT)

Latest revision as of 15:17, 31 August 2022

PHYS 210 PROJECTS --> here

My project is tentatively on determining various brachistochrone curves using a genetic algorithm. I say tentatively because the genetic algorithm I am developing is going to be very general, and I may have time to tackle other problems (see possible extensions)

brachistochrones

A brachistochrone means "shortest time". It is a curve that minimizes the travel time between two points for a point particle along it subject to certain forces (e.g. gravity). For a particle subject only to constant gravity in the vertical direction, the brachistochrone connecting two points is a portion of a cycloid. This can be shown precisely by solving the Euler-Lagrange equation. For more complex situations\ (e.g. with non-conservative forces), the solution cannot be easily obtained analytically and we must turn to numerical techniques.

Ooooh, I just thought of a neat application: as I'm sure you know, a straight tunnel between any two points on the surface of a uniform sphere (e.g. the Earth, approximately) will yield the same transit time to a frictionless capsule (e.g. train) without any added energy. For the Earth (treated as a uniform sphere) the transit time is 42 minutes (Doug Adams, are you listening?). The question is, can you do any better than a straight line? I.e. is there a faster path than a "chord" for such a tunnel train going between two points not on opposite sides of the Earth? I suspect not, but it would be cool to prove this. --- Jess 21:46, 18 October 2008 (PDT)

genetic algorithm

A genetic algorithm uses darwin's principle to optimize some function. As applied to brachistochrones, here are the steps:

  1. Generate initial population of candidate curves randomly (i.e. picking random connecting points and representing this curve by some encoding.This encoding is the curve's "DNA")
  2. Rank all of the functions according to some fitness value (for brachistochrones, the travel time along the curve). I will actually need to experiment with different forms of this fitness value. It may be necessary to, for instance, add penalties for certain qualities that wouldn't show up in a straight cost calculation (like false "convergence viruses" other types of false convergence) --S90584079 22:56, 22 October 2008 (PDT)
  3. Eliminate the weakest (i.e. longest travel time)
  4. Pick pairs of the surviving elite curves, and mate them (cross over sections of their DNA to produce two elite offspring with a mix of DNA from the two parents)
  5. mutate the offspring DNA (typically by a small amount just to make sure new genes are introduced and the gene pool doesn't stagnate)
  6. repeat steps 1-5 an arbitrary number of times.

details of implementation

This problem lends itself to a highly object oriented programming language. I chose java because of the portability and my familiarity with it. Here are steps I see myself completing the project in:

  1. Create general environment for the genetic algorithm
  2. Test genetic algorithm on a few base cases (e.g. try to recreate cycloid)
  3. Investigate other brachistochrones
  4. Possible Extensions.

progress

Into step 2. Compiling some benchmark data for very simple cases (like finding a straight line) and how the population dynamics respond to changes in various conditions (i.e. mutation rate, mating success rate, various forms of fitness expressions, inserting good and bad chromosomes, initial conditions, etc..). I will post some fancy graphs soon somewhere (maybe here isn't appropriate). Javadocs have also been updated --S90584079 22:49, 22 October 2008 (PDT)

I am in the thick of stage two, and my program generates better than optimal solutions! Tune in for more! --S90584079 19:57, 27 October 2008 (PDT)

possible extensions not related to brachistochrones

I have discussed with Philip the possibility of using my genetic algorithm for calculating equilibrium configurations for his Dyson Spheres/Rings. This would be done by using a genetic algorithm to optimize gravitational potential.

Genetic algorithms have applications to an incredible myriad of optimization problems. If you are interested contact me. I will also be uploading the (incomplete at the moment) javadocs for my project to my course webpage (See External Links).

You are right, genetic algorithms can be used for almost anything! It may be that they are not the most efficient algorithms for every type of problem, but "When you have a hammer, use it for everything you can. When you encounter nuts & bolts, you can invent a wrench." --- Jess 16:09, 18 October 2008 (PDT)

As per the suggestion by professor Brewer, it would also be good to consider habitation outside the dyson sphere. Rather than having to traverse the incredible distances on the surface, a spacecraft on a string attached from within (a 'bead' if you will) could travel with minimized time between sectors of the sphere (on the outside). In the case of outside habitation, we'd save having to accelerate the sphere, but at the same time, banish humanity to billions of years without a proper star. So I think two interesting possible extensions for application to dyson spheres would be to first consider how 'brachistochrone lines' would be shaped without a gravitational field inside (except for the star), then a gravitational field inside. This may or may not be useful to you, but page 353 of the 8th edition of the Elementary Differential equations and boundary value problems textbook has some stuff on tautochrones. Philip Mar

Links

Javadoc of project so far --S90584079 22:46, 22 October 2008 (PDT)