问题可能很棘手(因为它的性质或我描述它的方式),所以在回答之前真的要读这个.
我有这个应用程序写:
a)桌面应用程序;
b)没有数据库,文件或任何其他存储库意义上的数据层(无需保存,存储或加载数据);
c)app将实现一些计算算法(遗传算法);
b)提供GUI,显示对app和计算结果的控制.
我正在考虑使用MVC模式,但我怀疑如何使用它.由于我没有(例如)数据库意义上的数据层(基于用户输入在执行期间生成数据),我担心在此实现中使用MVC的方式.到目前为止,我提出了两种方法:
GUI是View.GeneticAlgorithm是Controller.GeneticAlgorithmResults是Model(作为只存储数据的类).基本流程:
GUI是View.AppEngine是控制器.GeneticAlgorithm和GeneticAlgorithmResults是模型.现在我们有:
第一种方法似乎更直接,更像MVC.问题是某些逻辑必须在模型中 - 决定何时通知模型,因为不会显示所有数据更新,或者显示将使用数据集更新,而不是每次更改.这些决定将基于用户输入.在实际显示之前,可能需要对数据进行一些额外的处理.这将在视图中.
另一方面,第二种方法似乎更复杂,看起来传递了很多消息来完成任务.但它完全控制了Controller的逻辑控制,并分离了View,Controller和Model(这是MVC的主要目的)的职责.
你会推荐哪种方法?或者也许我应该混合它们并使用第一种方法架构与第二种方法的通信流程?还是一些不同的设计?
我正在建立一个遗传算法来解决旅行商问题.不幸的是,我发现可以持续超过一千代的峰值,然后突变它们并获得更好的结果.在这种情况下,交叉和变异算子通常做得好吗?
python algorithm traveling-salesman genetic-algorithm evolutionary-algorithm
我想知道卡尔曼滤波器和指数滤波器有哪些优点和缺点?我有一个多传感器融合问题,我正在尝试决定选择哪种方法.
我认为,卡尔曼滤波器在计算上更复杂,但它具有系统的更详细的模型,从而更准确的(?)在多传感器融合.
而指数滤波器是一个简单的等式,但它是由阿尔法的选择(过滤器的较高级α-=>少"记忆",从而较小的平滑的,但多个权重对测量的,而较低的α具有更高程度的平滑化,但突然的变化的限制没有正确反映.
当存在抖动等时,指数滤波器在噪声消除中更有用,而卡尔曼滤波器对于实际的多传感器融合是有用的.它是否正确?
此外,遗传算法对传感器融合有多大用处?我正在尝试将磁罗盘和陀螺仪结合起来估算真实的方向.
谢谢!
我正在使用一系列教程在javascript中构建我的第一个遗传算法.
我正在为这个调度教程http://www.codeproject.com/KB/recipes/GaClassSchedule.aspx#Chromosome8构建一个稍微简单的结构,但是我遇到了育种问题.
我得到了60个人口,现在我正在挑选前两个人来繁殖,然后选择一些随机的其他个体与前两个人一起繁殖,我不会最终得到相当少的父母相当快?
我想如果我在接下来的20个赛季中分别获得前两个成绩,我将不会在解决方案方面取得很大进展.
那是对的吗?有一个普遍接受的方法吗?
我知道人工智能领域非常庞大,并且有许多书籍.但我只想知道任何资源,我可以简单地生成所有Artificail Intelligence技术,如
它希望有1或2页的所有技术介绍以及它们如何应用或用于何种目的的示例.我对感兴趣
现在有许多变种和更多AI技术.每个人都写了很多书.除非我知道他们能做什么,否则我无法决定我可以使用哪些算法.
因此,我可以通过应用程序示例找到1-2页的产品
所以,这与标准的梦幻足球有点不同.我所拥有的是球员名单,他们的平均"每场比赛得分"(PPG)和他们的薪水.我想在我的球队没有超过工资帽的限制下最大化每场比赛得分.一个团队由1个QB,1个TE,3个WR和2个RB组成.所以,如果我们有15个每个位置,我们有15X15 X(15 c 3)X(15 c 2)= 10749375个可能的团队.
漂亮的计算复杂.我可以使用一些分支和绑定,即一旦团队超过工资帽我可以修剪树,但即使这样算法仍然很慢.我尝试了另一个选项,我使用了一个"遗传算法",即制作了10个随机团队,选择了最好的一个团队并"突变"它(随机改变一些玩家)进入另外10个团队,然后选择那些然后通过一堆循环直到"最佳阵容"的每场比赛停止变得更好的时间.
必须有更好的方法来做到这一点.我不是计算机科学家,我只参加过算法学的入门课程.程序员 - 你有什么想法?我觉得动态编程的某种应用可能会有所帮助.
谢谢
我有一个优化问题,我试图用遗传算法解决.基本上,有一个10个绑定实值变量的列表(-1 <= x <= 1),我需要最大化该列表的某些功能.问题是列表中最多只有4个变量!= 0(子集条件).
数学上说:对于某些函数f:[ - 1,1] ^ 10 - > R min f(X)st | {var in X with var!= 0} | <= 4
关于f的一些背景:该函数与任何类型的背包物镜函数(如Sum x*weight或类似物)不相似.
到目前为止我尝试了什么:
只是基因组的基本遗传算法[-1,1] ^ 10,在变量上有1点交叉和一些高斯变异.我尝试通过仅使用前4个非零(零,因为足够接近0)值来对适应度函数中的子集条件进行编码.这种方法不能很好地工作,并且算法停留在4个第一个变量上,并且从不使用超出该值的值.我看到了01-knapsack问题的某种GA,这种方法运行良好,但显然这只适用于二进制变量.
你会建议我接下来尝试什么?
algorithm math mathematical-optimization genetic-algorithm evolutionary-algorithm
我的问题与这个问题有关: 遗传算法中的轮盘赌选择.人口需要先排序? 如果我们不对人口进行排序,那么为它组织轮盘赌选择的方式是什么?当然,我们现在必须以线性方式进行搜索.在这种情况下,您是否获得了C++或Java的任何代码片段?
如何在Encog 3.4(Github目前正在开发的版本)中暂停遗传算法?
我使用的是Encog的Java版本.
我正在尝试修改Encog附带的Lunar示例.我想暂停/序列化遗传算法,然后在稍后阶段继续/反序列化.
当我调用train.pause();它只是返回null- 这在代码中非常明显,因为该方法总是返回null.
我认为它会非常直接,因为可能存在一种情况,我想训练神经网络,将其用于某些预测,然后继续使用遗传算法进行训练,因为我在恢复之前获得更多数据并进行更多预测 - 无需从头重新开始培训.
请注意,我不是试图序列化或持久化神经网络,而是整个遗传算法.
我对算法很新,现在正在处理一些路由优化问题,并且遇到了一些关于以下方法的论文:
元启发式方法 基于种群(遗传算法,蚁群优化等)基于单一解决方案(迭代本地搜索)
基于图的方法 ,例如A*算法
混合整数线性规划方法
我对这些方法之间的关系有点困惑,我们是否使用例如使用GA来解决MILP,或者它们都只是单独的方法?
提前致谢!!
algorithm genetic-algorithm ant-colony mixed-integer-programming
algorithm ×5
ant-colony ×1
architecture ×1
c++ ×1
encog ×1
exponential ×1
filter ×1
java ×1
math ×1
python ×1
r ×1
sensor ×1