ファジィ推論テーブルの生成
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static FHANDLE fnFIE_fuzzy_open( int rule_num, F_FUZZY_SPEC_PTR antec_cond, int antec_num, F_FUZZY_SPEC_PTR concl_cond, int concl_num ) |
Visual Basic |
---|
Public Shared Function fnFIE_fuzzy_open ( rule_num As Integer, antec_cond As F_FUZZY_SPEC_PTR, antec_num As Integer, concl_cond As F_FUZZY_SPEC_PTR, concl_num As Integer ) As FHANDLE |
Parameters
- rule_num
- Type: System..::..Int32
ファジィルール数( [1,MAX_RULE_N=30] )
- antec_cond
- Type: fvalgcli..::..F_FUZZY_SPEC_PTR
前提条件の台集合生成条件配列。antec_num で指定した前提個数分の条件を指定します。
- antec_num
- Type: System..::..Int32
1ファジィルールあたりの前提条件の数( [1,MAX_ANTEC_N=5] )
- concl_cond
- Type: fvalgcli..::..F_FUZZY_SPEC_PTR
結論の台集合生成条件配列。concl_num で指定した結論個数分の条件を指定します。
- concl_num
- Type: System..::..Int32
1ファジィルールあたりの結論の数( [1,MAX_CONCL_N=2] )
Return Value
Type: FHANDLE正常に終了した場合は、ファジィのハンドルを返します。 ライセンスエラー、メモリ不足、又はパラメータ不正により異常終了した場合には、IntPtr.Zero を返します。
Remarks
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { // pal_fzlib.h で定義されている定数. private const int MAX_RULE_N = 30; // 最大ファジィルール数. private const int MAX_ANTEC_N = 5; // 最大前提条件数/ファジィルール. private const int MAX_CONCL_N = 2; // 最大結果数/ファジィルール. [FvPluginExecute] public void fnFIE_fuzzy_open() { // オブジェクトの宣言. FHANDLE hFuzzy = FHANDLE.Zero; // Descriptor of fuzzy F_FUZZY_SPEC_PTR pAntecCond = F_FUZZY_SPEC_PTR.Zero; // Predicate condition F_FUZZY_SPEC_PTR pConclCond = F_FUZZY_SPEC_PTR.Zero; // Conclusion condition int iRuleN = 3; int iAntecN = 1; int iConclN = 1; try { pAntecCond = F_FUZZY_SPEC_PTR.alloc(iAntecN); pConclCond = F_FUZZY_SPEC_PTR.alloc(iConclN); /* Set the predicate platform */ int iAntecNo = 0; pAntecCond[iAntecNo] = F_FUZZY_SPEC.init(-1.0, 1.0, 0.01, 0.005); iAntecNo++; /* Set the conclusion platform */ int iConclNo = 0; pConclCond[iConclNo] = F_FUZZY_SPEC.init(-1.0, 1.0, 0.01, 0.005); iConclNo++; // Fuzzy open hFuzzy = api.fnFIE_fuzzy_open(iRuleN, pAntecCond, iAntecN, pConclCond, iConclN); Assert.IsTrue(hFuzzy != FHANDLE.Zero, "エラーが発生しました。"); // 以下、関連関数のテスト. fnFIE_fuzzy_generate_rule(hFuzzy, iRuleN, iAntecN, iConclN); fnFIE_fuzzy_inference(hFuzzy, iAntecN, iConclN); fnFIE_fuzzy_clear_rule(hFuzzy, iRuleN); } finally { hFuzzy.Dispose(); pAntecCond.Dispose(); pConclCond.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ' pal_fzlib.h で定義されている定数. Private Const MAX_RULE_N As Integer = 30 ' 最大ファジィルール数. Private Const MAX_ANTEC_N As Integer = 5 ' 最大前提条件数/ファジィルール. Private Const MAX_CONCL_N As Integer = 2 ' 最大結果数/ファジィルール. <FvPluginExecute> _ Public Sub fnFIE_fuzzy_open() ' オブジェクトの宣言. Dim hFuzzy As FHANDLE = FHANDLE.Zero ' Descriptor of fuzzy Dim pAntecCond As F_FUZZY_SPEC_PTR = F_FUZZY_SPEC_PTR.Zero ' Predicate condition Dim pConclCond As F_FUZZY_SPEC_PTR = F_FUZZY_SPEC_PTR.Zero ' Conclusion condition Dim iRuleN As Integer = 3 Dim iAntecN As Integer = 1 Dim iConclN As Integer = 1 Try pAntecCond = F_FUZZY_SPEC_PTR.alloc(iAntecN) pConclCond = F_FUZZY_SPEC_PTR.alloc(iConclN) ' Set the predicate platform Dim iAntecNo As Integer = 0 pAntecCond(iAntecNo) = F_FUZZY_SPEC.init(-1.0, 1.0, 0.01, 0.005) iAntecNo += 1 ' Set the conclusion platform Dim iConclNo As Integer = 0 pConclCond(iConclNo) = F_FUZZY_SPEC.init(-1.0, 1.0, 0.01, 0.005) iConclNo += 1 ' Fuzzy open hFuzzy = api.fnFIE_fuzzy_open(iRuleN, pAntecCond, iAntecN, pConclCond, iConclN) Assert.IsTrue(hFuzzy <> FHANDLE.Zero, "エラーが発生しました。") ' 以下、関連関数のテスト. fnFIE_fuzzy_generate_rule(hFuzzy, iRuleN, iAntecN, iConclN) fnFIE_fuzzy_inference(hFuzzy, iAntecN, iConclN) fnFIE_fuzzy_clear_rule(hFuzzy, iRuleN) Finally hFuzzy.Dispose() pAntecCond.Dispose() pConclCond.Dispose() End Try End Sub End Class |