使用人工智能进行自动编程的搜索技术属于什么类别?
我正在研究文献中可用的自动编程技术,但仅限于那些使用人工智能的技术。我能找到的唯一这样的技术是遗传编程。
是否有其他技术可以将程序员不需要知道如何解决的高级问题规范转换为工作程序?这些搜索技术属于什么类别?
I'm doing research on automatic programming techniques available in the literature but only those which use AI. The only such technique I can find is genetic programming.
Are there any other techniques which transform a high level problem specification, which the programmer need not know how to solve, into a working program? What's the category of these search techiques called?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
该类别实际上并没有一个具体的名称,尽管术语“遗传编程”通常不仅用于表示使用表示为树的 lisp S 表达式的原始遗传编程,而且更广泛地指使用进化算法的所有自动编程技术。这当然不包括非进化方法,但它占研究文献的很大一部分。
您可能想考虑的其他技术往往属于这个广泛的“遗传编程”类别,包括语法进化、基因表达编程、线性 GP 和 笛卡尔 GP。
还有进化编程,它与遗传编程不同(尽管在某些方面相似)。人们已经对使用蚁群优化进行自动编程进行了少量研究。虽然,我不认为这是非常成功的。您可以使用 Google Scholar 找到最好的信息。
There isn't really a specific name for the category, although the term genetic programming is often used not just to mean the original genetic programming using lisp S-expressions represented as trees, but more widely to refer to all automatic programming techniques using evolutionary algorithms. That of course does not include non-evolutionary methods, but it is a large proportion of the research literature.
Other techniques that tend to come under this broad "Genetic Programming" category that you might like to consider include Grammatical Evolution, Gene-Expression Programming, Linear GP and Cartesian GP.
There is also Evolutionary Programming, which is distinct from (although in some regards similar to) genetic programming. A small amount of research has been done on using Ant Colony Optimisation for automatic programming. Although, I don't think it was very successful. You can find this best using Google Scholar.
据我所知,遗传编程是目前自动编程技术的主要方法。除此之外,您可能需要查看
To my knowledge, genetic programming is currently the dominant approach to automatic programming techniques. Outside of this you may want to look at
一般类别是机器学习。其他技术包括提升,我相信您现在知道在哪里可以自己找到更多技术看看。
您可能还想研究神经网络。
The general caegory would be machine learning. Other techniques include boosting, I'm sure you can find more on your own now that you know where to look.
You may also want to look into neural networks.
其他搜索技术包括禁忌搜索和模拟退火。在我参加过的规划竞赛中,它们通常甚至优于遗传算法< /em>:例如 ITC2007 轨道中的 1 入围者 1、2、3 和 4 使用禁忌搜索和/或模拟退火,而入围者 5 使用遗传算法。
然而,我还没有看到它们应用于自动编程技术,可能它们不适合这样做。
Other search techniques include Tabu Search and Simulated Annealing. In the planning competitions I've entered, they generally even outperform Genetic Algorithms: for example in ITC2007 track 1 finalist 1, 2, 3 and 4 used Tabu Search and/or Simulated Annealing, while finalist 5 used Genetic Algorithms.
However, I haven't seen them applied for automatic programming techniques yet, it might be they are unsuited for that.