Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能用Java创建一个能够改变自己的源代码的程序,或者一个随后要运行的数学函数?_Java_Functional Programming_Genetic Algorithm - Fatal编程技术网

我怎样才能用Java创建一个能够改变自己的源代码的程序,或者一个随后要运行的数学函数?

我怎样才能用Java创建一个能够改变自己的源代码的程序,或者一个随后要运行的数学函数?,java,functional-programming,genetic-algorithm,Java,Functional Programming,Genetic Algorithm,我想创建一个程序,使用随机优化算法来进化数学函数,将两个常量作为输入,并进化一个函数,以便从这两个数字生成特定的答案 假设输入是4和7,我希望答案是230,程序将生成一个函数,从原始输入生成这个答案 我能够生成进化算法,但我不知道如何存储函数信息,如何随机地对其进行变异,以及如何让变异后的函数由java程序执行。这就是所谓的元编程吗?在java中可能吗?我知道我可以存储可能在函数中用作变量的常量。那很容易。但是,如何将运算符和函数(如正弦余弦和tan)存储为可以更改的变量?请不要更改程序源代码,

我想创建一个程序,使用随机优化算法来进化数学函数,将两个常量作为输入,并进化一个函数,以便从这两个数字生成特定的答案

假设输入是4和7,我希望答案是230,程序将生成一个函数,从原始输入生成这个答案

我能够生成进化算法,但我不知道如何存储函数信息,如何随机地对其进行变异,以及如何让变异后的函数由java程序执行。这就是所谓的元编程吗?在java中可能吗?我知道我可以存储可能在函数中用作变量的常量。那很容易。但是,如何将运算符和函数(如正弦余弦和tan)存储为可以更改的变量?

请不要更改程序源代码,并在运行时重新编译。 评估功能的方法有很多种,有些是:

  • 你自己的评估者
  • 其他评估者,比如
你应该将方程存储在一棵树中(由许多库为你完成),在你的遗传算法中修改这棵树,并对其进行评估

您可以通过接口或子类轻松存储函数。。。反省会更容易

但是:您可能会找到更有效的方法来确定该函数。如果您为我们提供程序应该创建的函数,我们可以为您提供更多帮助。

请不要更改程序源代码并在运行时重新编译。 评估功能的方法有很多种,有些是:

  • 你自己的评估者
  • 其他评估者,比如
你应该将方程存储在一棵树中(由许多库为你完成),在你的遗传算法中修改这棵树,并对其进行评估

您可以通过接口或子类轻松存储函数。。。反省会更容易


但是:您可能会找到更有效的方法来确定该函数。如果您给我们程序应该创建的函数,我们可以为您提供更多帮助。

通常Java不支持元编程。但是会对您有所帮助。

一般来说,Java不支持元编程。但是会帮助你的。

这可能会有帮助

您可以使用java创建“真正的”插件。这篇文章谈到它:

基本上,创建一个主程序,它允许您编写和执行插件链。插件是你的功能,比如sin,cos。。。因为你可以动态加载真正的插件;您可以创建新的随机插件并将它们添加到您的链中

这可能会有帮助

您可以使用java创建“真正的”插件。这篇文章谈到它:


基本上,创建一个主程序,它允许您编写和执行插件链。插件是你的功能,比如sin,cos。。。因为你可以动态加载真正的插件;您可以创建新的随机插件并将它们添加到您的链中

Java对你来说是必须的吗?可以考虑使用另一种JVM语言,例如Groovy?@ ValtTin认为它们显然能够产生“进化算法”,因此,我怀疑代码>如果语句是解决它们的主要途径。此外,还有一些方法可以在没有if语句的情况下计算表达式,正如Ali和StackOverflowException所指出的。@Teeg我的意思是他不需要“修改源代码”这可以通过使用
if语句来实现
@Vallentin:但这会很糟糕,或者需要更多的if…@StackOverflowException仍然不是重点。重点是你不需要修改代码。Java对你来说是必须的吗?可以考虑使用另一种JVM语言,例如Groovy?@ ValtTin认为它们显然能够产生“进化算法”,因此,我怀疑代码>如果语句是解决它们的主要途径。此外,还有一些方法可以在没有if语句的情况下计算表达式,正如Ali和StackOverflowException所指出的。@Teeg我的意思是他不需要“修改源代码”这可以通过使用
if语句来实现
@Vallentin:但这会很糟糕,或者需要更多的if…@StackOverflowException仍然不是重点。重点是您不需要修改代码。