Software Evolution: Dr. Thompson's Results & Examples

In summary, the conversation discusses the use of Evolutionary Algorithms (EA) in computer science to solve mathematical optimization problems. These algorithms have been used for decades and have the advantage of being able to exploit trends in feature space to converge upon a solution more quickly. However, they are also inherently inefficient and not suitable for all problems. The conversation suggests looking into optimization problems as a more general approach.
  • #1
Pupil
165
0
So I was reading http://www.damninteresting.com/?p=870#more-870" and was astounded by the results Dr. Thompson produced. Basically, he used the principles of evolution to get the results he wanted. Is there a name for this type of research? Other examples? I'm very intrigued by it. I wonder how efficient one could make a computer algorithm using this technique.
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
These methods are called Evolutionary Algorithms (EA) have been used in computer science for decades to solve almost any problem imaginable. There are many variations upon the method,

See here
http://en.wikipedia.org/wiki/Evolutionary_algorithm

At a high level these EA's are just another method for solving mathematical optimization problems,

http://en.wikipedia.org/wiki/Optimization_(mathematics)

The major advantage of EA's is that they can sometimes be used to exploit certain trends in feature space to converge upon a minima or find a pareto front more quickly than other methods. However they are also inherently inefficient algorithms so they are not best suited for everything.
 
  • #3
more generally, you might want to look at optimization problems. it's a bit like finding minima and maxima on a curve, but once you add several dimensions, the problem quickly becomes intractable, so you just start heading off in random directions (Monte Carlo, anyone?) and try to follow paths that minimize or maximize your objective function.

"perfect individual" is rarely assured, though. the size of the space you're searching through gets huge and computing time is finite.
 

Related to Software Evolution: Dr. Thompson's Results & Examples

1. What is software evolution?

Software evolution refers to the process of the continuous development and change of a software system over time. It includes both intentional modifications, such as adding new features or fixing bugs, and unintentional changes due to external factors like changes in hardware or programming languages.

2. Who is Dr. Thompson and what are his results and examples?

Dr. Thompson is a renowned computer scientist who conducted a study on software evolution. His results showed that software systems evolve and change in a similar way to biological systems, through natural selection and mutation. He provided examples of software systems that have undergone significant evolution, such as the Linux operating system.

3. Why is software evolution important?

Software evolution is important because it allows software systems to adapt to changing environments and meet the needs of users. It also ensures the long-term sustainability and effectiveness of software systems. Understanding software evolution can also help developers make informed decisions about future changes and improvements to their software.

4. What factors contribute to software evolution?

Software evolution is influenced by a variety of factors, including changes in user needs and requirements, advancements in technology, and the availability of new programming languages or tools. External factors such as market demands and competition can also drive software evolution.

5. How can software evolution be managed and controlled?

Managing and controlling software evolution is a complex process, but it can be achieved through careful planning and implementation of software development methodologies, such as agile or DevOps. Regular testing and monitoring can also help identify potential issues and prevent them from causing major problems in the software system. Version control systems and documentation can also aid in managing and tracking software evolution.

Similar threads

  • General Discussion
Replies
1
Views
649
  • Programming and Computer Science
Replies
16
Views
1K
Replies
2
Views
982
Replies
1
Views
665
  • Atomic and Condensed Matter
Replies
9
Views
4K
  • Programming and Computer Science
Replies
10
Views
3K
  • Quantum Interpretations and Foundations
Replies
15
Views
2K
Replies
12
Views
3K
  • Programming and Computer Science
Replies
30
Views
4K
  • General Discussion
Replies
12
Views
1K
Back
Top