【问题标题】:What are the possibilities for self-modification of Java code?Java 代码的自我修改有哪些可能性?
【发布时间】:2014-12-07 02:22:35
【问题描述】:

您能否列出 Java 代码修改自身的可能性? 将要使用它的场景是一个学习程序。作为对用户输入的响应,程序会学习一种新算法:

  1. 它会在现有代码库中查找类似算法
  2. 如果代码库中没有类似的算法,程序只是添加一个新算法
  3. 如果存在类似的算法,则程序(可能在用户的帮助下)修改现有算法,使其能够同时服务于旧目的和新目的

存在类似的问题 Self modifying code in Java ,但当时可用的最新 Java 是 6,并且该问题因过于宽泛而被关闭。

【问题讨论】:

  • 这些场景都不意味着程序需要修改自身
  • 如果程序不修改自己,它必须解释新学习的算法,这至少很慢。
  • 正如其他问题的几个答案所建议的那样,您可以选择在运行时生成和加载字节码。无需口译。
  • 也许你对Genetic Programming感兴趣。它是进化算法的一个子领域,处理算法的创建,但与自我修改代码无关......
  • 我对遗传编程有点兴趣,谢谢,但这是一个单独的话题。在这个问题中,我尝试只关注 Java 中自我修改的工具。计算机程序的演进是另一种自我修改的使用场景。

标签: java algorithm machine-learning artificial-intelligence self-modifying


【解决方案1】:

Java 程序可以动态编译和加载自动生成的类(参见JavaCompiler),但我认为机器学习程序不会这样做。可以肯定的是,程序员会根据要估计的几个参数创建一个算法,并且运行程序只需找到这些参数的最佳值。

【讨论】:

  • 当前的机器学习算法还没有进行自我修改 - 是的。但是在程序学习算法的场景中,程序需要执行这些算法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
相关资源
最近更新 更多