001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.penguin.math.ga; 017 018/** 019 * HybsGeneticAlgorithmで取り扱うデータ用の実装クラスです。 020 * 021 * ある程度標準的に利用できるようにで、名称、属性値(実数)、属性値(文字列)、属性値配列(実数)、属性値配列(文字列)を持ちます。 022 * 023 */ 024public class HybsGAObjectImpl implements HybsGAObject { 025 private String name; // 名称 026 private double attr; // 属性値(実数) 027 private String attrStr; // 属性値(文字列) 028 private double[] attrArray; // 属性値配列(実数) 029 private String[] attrStrArray; // 属性値配列(文字列) 030 031 /** 032 * コンストラクタ。 033 * 034 * @param name 名称 035 * @param attr 属性値(実数) 036 */ 037 public HybsGAObjectImpl (final String name, final double attr){ 038 this( name, attr, null, null,null); 039 } 040 041 /** 042 * コンストラクタ。 043 * 044 * @param name 名称 045 * @param attr 属性値(実数) 046 * @param attrArray 属性値配列(実数) 047 */ 048 public HybsGAObjectImpl (final String name, final double attr, final double[] attrArray){ 049 this( name, attr, null, attrArray, null); 050 } 051 052 /** 053 * コンストラクタ。 054 * 055 * @param name 名称 056 * @param attr 属性値(実数) 057 * @param attrStr 属性値(文字) 058 * @param attrArray 属性値配列(実数) 059 */ 060 public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final double[] attrArray){ 061 this( name, attr, attrStr, attrArray, null); 062 } 063 064 /** 065 * コンストラクタ。 066 * 067 * @param name 名称 068 * @param attr 属性値(実数) 069 * @param attrStr 属性値(文字) 070 * @param attrStrArray 属性値配列(文字) 071 */ 072 public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final String[] attrStrArray){ 073 this( name, attr, attrStr, null, attrStrArray); 074 } 075 076 /** 077 * コンストラクタ。 078 * 079 * @param name 名称 080 * @param attr 属性値(実数) 081 * @param attrStr 属性値(文字) 082 * @param attrArray 属性値配列(実数) 083 * @param attrStrArray 属性値配列(文字) 084 */ 085 public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final double[] attrArray, final String[] attrStrArray){ 086 this.name = name; 087 this.attr = attr; 088 this.attrStr = attrStr; 089 this.attrArray = attrArray; 090 this.attrStrArray = attrStrArray; 091 } 092 093 // インタフェイスによる必須メソッド。 094 /** 095 * フィットネス用に利用する値。 096 * 097 * 属性値(実数)を返す 098 * 099 * @return フィットネス用に利用する値 100 */ 101 @Override // HybsGAObject 102 public double getFitness(){ 103 return attr; 104 } 105 106 /** 107 * 文字列表現。 108 * 109 * [名称]([属性値(実数)]) 110 * 111 * @return 文字列表現 112 */ 113 @Override 114 public String toString(){ 115 return name + "(" + attr + ")"; 116 } 117 118 /** 119 * 名称セット。 120 * 121 * @param name 名称 122 */ 123 public void setName (final String name ){ 124 this.name = name; 125 } 126 127 /** 128 * 名称取得。 129 * 130 * @return 名称 131 */ 132 public String getName (){ 133 return this.name; 134 } 135 136 /** 137 * 属性値セット。 138 * 139 * @param attr 属性値 140 */ 141 public void setAttr (final double attr ){ 142 this.attr = attr; 143 } 144 145 /** 146 * 属性値取得。 147 * 148 * @return 属性値(数値) 149 */ 150 public double getAttr (){ 151 return this.attr; 152 } 153 154 /** 155 * 属性値(文字)セット。 156 * 157 * @param attrStr 属性値(文字) 158 */ 159 public void setAttrStr (final String attrStr ){ 160 this.attrStr = attrStr; 161 } 162 163 /** 164 * 属性値(文字)取得。 165 * 166 * @return 属性値(文字) 167 */ 168 public String getAttrStr (){ 169 return this.attrStr; 170 } 171 172 /** 173 * 属性値配列セット。 174 * 175 * @param attrArray 属性値配列 176 */ 177 public void setAttrArray (final double[] attrArray ){ 178 this.attrArray = attrArray; 179 } 180 181 /** 182 * 属性値配列取得。 183 * 184 * @return 属性値配列 185 */ 186 public double[] getAttrArray (){ 187 return this.attrArray; 188 } 189 190 /** 191 * 属性値配列(文字)セット。 192 * 193 * @param attrStrArray 属性値配列(文字) 194 */ 195 public void setAttrStrArray (final String[] attrStrArray ){ 196 this.attrStrArray = attrStrArray; 197 } 198 199 /** 200 * 属性値配列(文字)取得。 201 * 202 * @return 属性値配列(文字) 203 */ 204 public String[] getAttrStrArray (){ 205 return this.attrStrArray; 206 } 207}