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 * @return フィットネス用に利用する値 099 */ 100 @Override // HybsGAObject 101 public double getFitness(){ 102 return attr; 103 } 104 105 /** 106 * 文字列表現。 107 * 108 * [名称]([属性値(実数)]) 109 * 110 * @return 文字列表現 111 */ 112 @Override 113 public String toString(){ 114 return name + "(" + attr + ")"; 115 } 116 117 /** 118 * 名称セット。 119 * 120 * @param name 名称 121 */ 122 public void setName (final String name ){ 123 this.name = name; 124 } 125 126 /** 127 * 名称取得。 128 * 129 * @return 名称 130 */ 131 public String getName (){ 132 return this.name; 133 } 134 135 /** 136 * 属性値セット。 137 * 138 * @param attr 属性値 139 */ 140 public void setAttr (final double attr ){ 141 this.attr = attr; 142 } 143 144 /** 145 * 属性値取得。 146 * 147 * @return 属性値(数値) 148 */ 149 public double getAttr (){ 150 return this.attr; 151 } 152 153 /** 154 * 属性値(文字)セット。 155 * 156 * @param attrStr 属性値(文字) 157 */ 158 public void setAttrStr (final String attrStr ){ 159 this.attrStr = attrStr; 160 } 161 162 /** 163 * 属性値(文字)取得。 164 * 165 * @return 属性値(文字) 166 */ 167 public String getAttrStr (){ 168 return this.attrStr; 169 } 170 171 /** 172 * 属性値配列セット。 173 * 174 * @param attrArray 属性値配列 175 */ 176 public void setAttrArray (final double[] attrArray ){ 177 this.attrArray = attrArray; 178 } 179 180 /** 181 * 属性値配列取得。 182 * 183 * @return 属性値配列 184 */ 185 public double[] getAttrArray (){ 186 return this.attrArray; 187 } 188 189 /** 190 * 属性値配列(文字)セット。 191 * 192 * @param attrStrArray 属性値配列(文字) 193 */ 194 public void setAttrStrArray (final String[] attrStrArray ){ 195 this.attrStrArray = attrStrArray; 196 } 197 198 /** 199 * 属性値配列(文字)取得。 200 * 201 * @return 属性値配列(文字) 202 */ 203 public String[] getAttrStrArray (){ 204 return this.attrStrArray; 205 } 206}