Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Software engineering is search.

The iterative approach described here to finding a 'good' borgizaf is simulated annealing. Make an initial guess to the solution, then start with changes that are large early on and which increasingly refine as you get closer to your goal.

Metropolis-Hastings algorithm works better for situations for which you know even less about what a good borgizaf looks like. Perform many experiments (code changes) and toss out all of the ones that don't work. Science works this way. An automated LLM coder would probably also go this route as the cost of trying many things would be more heavily automated.

Large systems tend to look more like the genetic algorithm. The space is diced up into individual components and then each 'gene' is optimized in parallel. For example if you were trying to build a Linux distribution you'd have several hundred packages and then for each release the packages could improve or be entirely replaced with better versions (or swap back and forth as they competed).

Of course there are other search strategies that can be employed. Search is still an important area of research.

https://en.wikipedia.org/wiki/Simulated_annealing https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_al... https://en.wikipedia.org/wiki/Genetic_algorithm



Sure, everything is an optimization problem, the hard part is defining your cost function, especially if the borgizaf is trying to solve an ill-formed business problem.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: