标签: jenetics

为什么每个解决方案(或基因型)多于一条染色体?

我正在尝试开始使用Jenetics JAVA库进行遗传算法,而且我的GA有限背景中有一些我不理解的东西;

据我所知,GA生成了一组m元素阵列,其中每个数组都是一个可以评估的潜在解决方案,一旦评估,潜在的解决方案就会被排序,最好的选择是为了创建一个新的人口,等等.但我发现Jenetics中的解决方案(基因型)是一个数组列表,其中每个数组都是我理解的潜在解决方案,每个数组也可以有不同的长度,我不明白为什么要使用这个结构而不是基因载体.

参见手册第6页,第3.1.3节.

如果可能的话我想知道为什么会这样.我希望这个问题足够明确.

java genetic-algorithm jenetics

5
推荐指数
1
解决办法
266
查看次数

相当于 Kotlin 不变类型的 Haskell

在科特林我可以做

sealed class Substance {
    object Uranus : Substance()
    object Mercury: Substance()
    object Ammonia : Substance()
}

data class DangerousBox<T : Substance>(val item: T)

fun main() {
    val uranus = DangerousBox<Substance.Uranus>(Substance.Uranus)
    val mercury: DangerousBox<Substance.Mercury> = uranus
}
Run Code Online (Sandbox Code Playgroud)

现在我有不变的类型DangerousBox<Substance.Uranus>, DangerousBox<Substance.Mercury>等,所以上面的示例将无法编译。

如何在 Haskell 中做到这一点?

理想情况下我想要类型

uranus :: DangerousBox Uranus
uranus = DangerousBox Mercury
Run Code Online (Sandbox Code Playgroud)

这个样本也不能符合。

我尝试通过以下方式来实现:

  1. 模块化约束。我有模块
module Sample.Types.Boxes
  ( Substance(..)
  , dangerousBox
  , VDangerousBox {- no Con-}
  ) where

data Substance
  = Uranus
  | Mercury
  | Ammonia
  deriving (Show)

data …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming kotlin data-kinds jenetics

1
推荐指数
1
解决办法
308
查看次数