c# - 为了解决 GA 问题而构建可靠的服务与 Actor

标签 c# azure actor genetic-algorithm azure-service-fabric

目前,我们有一个运行了相当长一段时间的遗传算法 (GA),我认为我们可以使用 Fabric 分发它,因为理论上它非常适合作为微服务。这是我第一次尝试 Fabric。

我们应该怎么做呢?我们应该有一个 stateful service运行并聚合其他 actors任务 ?它有点类似于这个项目:https://github.com/Azure-Samples/service-fabric-dotnet-data-streaming-websockets

我不太确定该怎么做,而且关于这个主题的记录也很少。这个 GA 非常广泛,我们的目标是分布它的计算。

最佳答案

我使用 Service Fabric 实现了一个基本的遗传算法应用程序作为应用程序构建练习。不确定我的方法是否是适合您场景的最佳方法,但我可以描述我所做的事情。

我的应用程序仅包含有状态和无状态的参与者。我有一个处理器有状态参与者,它提供所有管理任务并驱动算法。因为它是有状态的,所以它保留了所产生的每一代的所有遗传状态的历史。我还有一个 FitnessEvalTask​​ 无状态 Actor 。该任务仅负责评估实体的适应性。它的输入是基因表示,输出是适应度值。这个想法是,你会以很高的速度旋转这个 Actor 的实例,并且它们会被适本地分配。负责驱动算法的处理器应用程序将创建 FitnessEvalTask​​ actor 的必要实例并提供其输入,让它们报告其适应度值,然后进行必要的处理。我的客户端进程只是一个简单的控制台应用程序,它将与处理器参与者通信以启动算法并执行任何必要的管理任务。

关于c# - 为了解决 GA 问题而构建可靠的服务与 Actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36453485/

相关文章:

scala - 在接收方法中调用 Future 并在此之后停止 actor

c# - 在静态类中存储用户信息

c# - FileStream: used by another process错误

azure - 如何使用 AAD 身份验证在 powershell 中调用 Azure CosmosDB REST API

debugging - "perfect error": untraceable, 未命名,来自梦幻岛

scala - 使用 Scala Actor 和 receiveWithin 的 Stackoverflow 异常

scala - 如何使用 actor 重写具有共享依赖项的 for 循环

C#:泛型类中的嵌套类是否应该被视为泛型?

c# - 获取/设置为不同的类型

c# - 获取 Azure Blob 存储中的图像