Off Topic Self Modifying Programs

Discussion in 'General Subjects' started by smakmeharder, Feb 13, 2015.

By smakmeharder on Feb 13, 2015 at 10:20 AM
  1. smakmeharder

    smakmeharder Administrator

    Joined:
    Mar 3, 2014
    Messages:
    4,825
    Likes Received:
    3,096
    One of the things that i have always wondered about and hope to create in some basic form in the future is self modifying program code. Not programs that change within memory space but programs which actually write their own code/recompile based upon the outcome of events.

    Now for this to occur your firstly you have to create some form of conscious model - IE allow some logic so the program can decide what event it acts on and judge what is desirable/good as opposed to bad/not desirable. This initially would be set by the programmer. Then you also need some way to sample the environment which the program exists in - ie sensors if it were to act in the physical world or someway to reach out and sample data if it were to live just as a program entity on the web.

    This is akin to living organisms. The feedback mechanism is essentially pleasure and pain at its most basic level. If things are good, our brains hardwire the event into the neuron structure. And likewise if the event is non desirable. And we have parents and education systems as well who guide us and let us identify false postives - ie we might think that drugs feel good but our parents and education system allows us to identify these false positives and signal them as dangerous.

    Also most living things need sleep. Well the self modifying program as well would need time to recompile its decisions and test them before going live again.

    Now If one could create a very basic model that was very sensitive to the environment it exists in - and made decisions of good/bad during its runtime - we could theoretically create a learning program that could continue to become smarter.

    Its not really that simple however but the basic principles are there. For example you need some method of modifying the conscious model - so the decisions of right and wrong can evolve based on experience.

    So then if the conscious model/balance is right your program could evolve and learn based on its experience and how it perceives what is good/bad. The limit for such an entity would primarily be restricted by its hardware and its sensory input - throw more cpu cycles at it, add more memory - more storage space, create a new for of sensor for feedback and the program can continue to grow. What would be the potential of such an application?

    Thoughts?


    NOTE! For RC Helicopters think of the gyro. This application would not necessarily be self modifying but could set parameters based upon the pilots feedback of good/bad.

    For example.. to determine best flying feel, a gyro could adjust the settings of parameters based upon the pilots input while flying. For example - two buttons on your transmitter - yes, no. You select roll rate. As you fly the helicopter you give feedback to the program YES or NO as the program makes incremental changes one way or the other - until you get to the perfect setting.
     

Comments

Discussion in 'General Subjects' started by smakmeharder, Feb 13, 2015.

    1. simon

      simon Well-Known Member

      Joined:
      Mar 19, 2014
      Messages:
      3,053
      Likes Received:
      2,403
      This to me sounds like an optimization program (ie the FBL is optimizing the parameters to give you the feel of flight that you like, and as you improve, it would automatically recode to adjust to your flying style). This sort of optimization is normally fairly tricky (usually) requiring a simplex method (no partial derivatives). There are several biologically inspired methods, a favorite of mine is GA's or genetic algorithms, which optimize (or minimize) the function using a population of sets of parameters. These strings (or genomes) encompass the solution space of the problem. They are evaluated, mated, with similar 'individuals', until a global minimum is found which represents the optimum solution to the problem (smallest error between the observed data and the function). Other methods exist like ACO -Ant colony optimization and simulated annealing too - all worth a look for the computer curious
      GA's are being used to write programs where you start with a high level statement of what you want, and the program writes itself using types of GA's (I have no experience in this type of GA work AT ALL) . GA's are a fairly new method, I think they came about in the 80's.
      Check out the wiki on GA's and the link on self writing programs. (Which I never knew they could do until about the middle of last year!).
      http://en.wikipedia.org/wiki/Genetic_algorithm
      http://www.genetic-programming.org/

      Simon
       
    2. simon

      simon Well-Known Member

      Joined:
      Mar 19, 2014
      Messages:
      3,053
      Likes Received:
      2,403
      On another off thread / off topic note, I am charging my 7S packs (well cycling them) ready for the weekend, so my office sounds like a server room. I have to turn up Tool really loud to get on top of the drone of th power supplies
      Simon
      Tool Ænima
       
      Last edited: Feb 13, 2015
    3. smakmeharder

      smakmeharder Administrator

      Joined:
      Mar 3, 2014
      Messages:
      4,825
      Likes Received:
      3,096
      Hey... I like it!! I wondered what was tool AENIMA , googled it and this came up...



      Very cool....

      RE the GAs i was trying to get my head around a GA model and how you could build it - still spinning and trying to absorp the wiki article. I am a strong believer in nature, or models of nature - having the optimum tools and methods required to achieve most of what we need to engineer/build. Designing Genetic Algoritnm program code could create fascinating results. When you start to break it down and realize the complexities, I really appreciate how fantastic the structure of living organisms are. Look at any living thing... they are incredible machines by comparison to what we can program/manufacture at this stage.

      This is interesing...

       
    4. simon

      simon Well-Known Member

      Joined:
      Mar 19, 2014
      Messages:
      3,053
      Likes Received:
      2,403
      We'll rave about at HH15, I'll bring a book for you if I remember, pm me closer to the day. Regarding Tool, the guy is a true genius. Check this out, written around the Fibonacci sequence
      Simon (but don't over analyse this!)
       
    5. marcust

      marcust Member

      Joined:
      May 5, 2014
      Messages:
      36
      Likes Received:
      12
      sounds like a question that needs to posted to 'ask slashdot'
       
    6. simon

      simon Well-Known Member

      Joined:
      Mar 19, 2014
      Messages:
      3,053
      Likes Received:
      2,403
      or Google
       
    7. Beaver

      Beaver Well-Known Member

      Joined:
      Oct 22, 2014
      Messages:
      2,219
      Likes Received:
      996
      Interesting concept. Imagine a radio linked to a computer that is running "self-learning" software that reads real-time telemetry from a heli, anticipates impending maneuvers and makes optimal adjustments to your settings while flying. Give em another 10 years or so and someone will figure out how to mass-produce such a thing....... given the way technology seems to be advancing these days.;)
       

Share This Page

test

    About Us

    Just like you, Heligods staff are regular everyday fliers. Join our forum and participate in what will become the worlds greatest rc helicopter forum..

    Credits:

    A big thank you to the following people who helped us put together this site:

    Pope Francis

    Deli Lama

    George Bush

    Gene Simmons (aka Crash)