SeedMatchMaker実装サービス jp.ossc.nimbus.service.ga.DefaultSeedMatchMakerService

jp.ossc.nimbus.service.ga.DefaultSeedMatchMakerServiceは、世代内の交配を行うjp.ossc.nimbus.service.ga.SeedMatchMakerデフォルト実装サービスです。

このサービスは、以下のような交配を行います。

  • 適応値の上位は、交配せずにそのまま次世代に生き残らせる。
  • 適応値の下位は、交配の対象から外す。
  • 乱数により発生した新種を一定率生む。
  • 交配のつがいの選択方法は、ルーレット方式と乱数方式を選択可能。

ルーレット方式とは、ルーレットの的のように、適応値が高い者ほど、選択される可能性が高くなる方式です。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- 交叉対象となる個体の選択方式 -->
  8. <service name="SeedMatchMaker"
  9. code="jp.ossc.nimbus.service.ga.DefaultSeedMatchMakerService">
  10. <!-- エリート率 -->
  11. <!-- 上位5%のSeedは、そのまま次の世代に引き継がれる。-->
  12. <attribute name="EliteRate">0.05</attribute>
  13. <!-- 落ちこぼれ率 -->
  14. <!-- 下位30%のSeedは、次世代の交叉に使われず、破棄される。-->
  15. <attribute name="DropRate">0.3</attribute>
  16. <!-- 新規率 -->
  17. <!-- 下位1%のSeedは、次世代に乱数発生した新規Seedが現れる。-->
  18. <attribute name="NewRate">0.01</attribute>
  19. <!-- 選択方式 -->
  20. <!-- ルーレット方式 -->
  21. <!-- 次世代の交叉対象として選ばれるシードは、より適応値の高いものが選ばれやすくなる -->
  22. <attribute name="MatchMakeMethod"><static-field-ref code="jp.ossc.nimbus.service.ga.DefaultSeedMatchMakerService" name="MATCH_MAKE_METHOD_ROULETTE"/></attribute>
  23. </service>
  24. </service>
  25. </manager>
  26. </server>


遺伝的アルゴリズム/SeedMatchMaker