public Perceptron(){
			    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			    
				// ファイルから点を読み込み、配列に格納する。
				List<String[]> pointData = FileUtil.getStringsByQuot(inFileAddress);
				
				Hyouhonpoint[] hyouhonpoints = new Hyouhonpoint[pointData.size()];
				
				for(int i = 0; i < pointData.size(); i++){
					hyouhonpoints[i] = new Hyouhonpoint();
					if(pointData.get(i)[0].equals("a")){
						hyouhonpoints[i].groupId = GoupId.a;
					}else{
						hyouhonpoints[i].groupId = GoupId.b;
					}
					hyouhonpoints[i].x1 = Double.valueOf(pointData.get(i)[1]);
					hyouhonpoints[i].x2 = Double.valueOf(pointData.get(i)[2]);
				}
				value.hyouhonpoints = hyouhonpoints;
				
				boolean isAllRight = false;
				
				
				// 指定された点に対し重みを調節する処理を繰り返す
				// １回通して１度でも調節が発生したら再度同じ点たちを読み込んで調節を行う
				// 一度も調節が発生しない回になったら繰り返しをやめる
				
				while(!isAllRight){

					isAllRight = true;
					
					for(int k = 0; k < hyouhonpoints.length; k++){
						
						
						// 重みベクトルと入力ベクトルの内積を求める
						double g = value.w0 * hyouhonpoints[k].x0 + value.w1 * hyouhonpoints[k].x1 + value.w2 * hyouhonpoints[k].x2;
						
						if((g > 0 && hyouhonpoints[k].groupId == GoupId.a) || (g <= 0 && hyouhonpoints[k].groupId == GoupId.b)){
							
						}else{
							if(hyouhonpoints[k].groupId == GoupId.a){
								value.w0 = value.w0 + value.p * hyouhonpoints[k].x0;
								value.w1 = value.w1 + value.p * hyouhonpoints[k].x1;
								value.w2 = value.w2 + value.p * hyouhonpoints[k].x2;							
							}else{
								value.w0 = value.w0 - value.p * hyouhonpoints[k].x0;
								value.w1 = value.w1 - value.p * hyouhonpoints[k].x1;
								value.w2 = value.w2 - value.p * hyouhonpoints[k].x2;
							}

							
							isAllRight = false;
						}
						
					}
				}
				
		  }