#author("2018-12-06T16:48:38+09:00","","")
#author("2018-12-06T17:10:53+09:00","","")
[[卒論]]

#ref(frm0-1_pos_P_A1-1.c)
#ref(data.txt)

 /* 引数のエラー処理 */
	if(argc != 2) {
		printf("\n引数を正しく設定して下さい.\n\n");
		return(0);
	}
	printf("\n実行プログラム名:%s  入力データファイル:%s\n\n", argv[0], argv[1]);

	st_ptr = fopen(argv[1], "r"); /* ファイルオープン */
	if(st_ptr == NULL) {
		printf("ファイル%sは存在しません.\n\n", argv[1]);
		return(0);
	}
	input_probrem(st_ptr, &k, &m, &n, &n_int, &a, &b, &d1, &d2, &beta1, &beta2, &gamma1, &gamma2, &t_E, &t_V, &sign, &h, &mu_bar, &g0,
		&g1, &L_inv, &mu_G_inv, &p0, &p1, &x, &mu); /* 領域の確保とデータ読み込み */
	fclose(st_ptr); /* ファイルクローズ */
	print_probrem(k, m, n, n_int, a, b, d1, d2, beta1, beta2, gamma1, gamma2, t_E, t_V, sign); /* 問題の表示 */

	system("pause"); /* 一時停止 */

	status = set_g0g1(k, m, n, a, b, d1, d2, t_E, sign, g0, g1); /* ファジィ目標Gのg0, g1を設定する(Zimmermannの方法) */

	print_result_set_g0g1(k, g0, g1, status); /* 結果表示 */

	/* ファジィ目標Gが設定できた場合 */
	if(status == 1)
		while(1) {
			input_h(k, h, g0, g1, L_inv, mu_G_inv); /* 満足基準h_lを入力 */

			system("pause"); /* 一時停止 */

			status = set_p0p1(k, m, n, a, b, d1, d2, beta1, beta2, t_E, t_V, sign, L_inv, mu_G_inv, p0, p1); /* ファジィ目標のp0, p1を設定する(Zimmermannの方法) */

			print_result_set_p0p1(k, p0, p1, status); /* 結果表示 */

			/* ファジィ目標が設定できた場合 */
			if(status == 1)
				while(1) {
					input_mu_bar(k, mu_bar); /* 基準メンバシップ値μ_bar_lを入力 */

					system("pause"); /* 一時停止 */

					start_clock = clock();

					status = enumeration_method(k, m, n, a, b, d1, d2, beta1, beta2, t_E, t_V, sign, mu_bar, L_inv, mu_G_inv, p0, p1, x, 
						mu, &v); /* 完全列挙法による満足解導出 */

					end_clock = clock();

					print_result_enumeration_method(k, n, x, mu, v, status); /* 結果表示 */
					printf("実行時間:%f[s]\n", (double)(end_clock - start_clock) / CLOCKS_PER_SEC);

					printf("基準メンバシップ値μ_bar_lを変更しますか?\n");
					input_ans(&ans); /* 対話の判断 */
					if(ans == 1) /* 変更 */
						continue;
					else if(ans == 0) /* 終了 */
						break;
				}

			printf("満足基準h_lを変更しますか?\n");
			input_ans(&ans); /* 対話の判断 */
			if(ans == 1) /* 変更 */
				continue;
			else if(ans == 0) /* 終了 */
				break;
		}

	/* 領域解放(入力データ用) */
	for(i = 0; i < m; ++i)
		free(a[i]);
	free(a);
	free(b);
	for(l = 0; l < k; ++l) {
		free(d1[l]);
		free(d2[l]);
		free(beta1[l]);
		free(beta2[l]);
		free(gamma1[l]);
		free(gamma2[l]);
	}
	free(d1);
	free(d2);
	free(beta1);
	free(beta2);
	free(gamma1);
	free(gamma2);
	free(t_E);
	free(t_V);
	free(sign);
	/* 領域解放(対話用) */
	free(h);
	free(mu_bar);
	/* 領域解放(作成データ用) */
	free(g0);
	free(g1);
	free(L_inv);
	free(mu_G_inv);
	free(p0);
	free(p1);
	/* 領域解放(出力データ用) */
	free(x);
	free(mu);

	return(0);
 }



トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS