⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ruleseditorfrm.cpp

📁 人工智能中模糊逻辑算法 FuzzyLib 2.0 is a comprehensive C++ Fuzzy Logic library for constructing fuzzy logic sy
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                r8outComboBox->ItemIndex = VeryLow;
            else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "Low"))
                r8outComboBox->ItemIndex = Low;
            else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "Medium"))
                r8outComboBox->ItemIndex = Medium;
            else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "High"))
                r8outComboBox->ItemIndex = High;
            else if (!strcmp(FuzzyController->rules[7]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
                r8outComboBox->ItemIndex = VeryHigh;

            r8alphaCSpinEdit->Value  = 100 * FuzzyController->rules[7]->alphaCut;
            r8weightCSpinEdit->Value = 100 * FuzzyController->rules[7]->weight;
        }
        if (FuzzyController->rules[8] != NULL)
        {
            r9outComboBox->ItemIndex = -1;
            if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "VeryLow"))
                r9outComboBox->ItemIndex = VeryLow;
            else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "Low"))
                r9outComboBox->ItemIndex = Low;
            else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "Medium"))
                r9outComboBox->ItemIndex = Medium;
            else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "High"))
                r9outComboBox->ItemIndex = High;
            else if (!strcmp(FuzzyController->rules[8]->consequent->premise->fuzzyset->get_name(), "VeryHigh"))
                r9outComboBox->ItemIndex = VeryHigh;

            r9alphaCSpinEdit->Value  = 100 * FuzzyController->rules[8]->alphaCut;
            r9weightCSpinEdit->Value = 100 * FuzzyController->rules[8]->weight;
        }
    }
    else
    {
        Close();
    }
}
//---------------------------------------------------------------------------





void __fastcall TRulesEditorForm::r1weightCSpinEditChange(TObject *Sender)
{
    if (r1weightCSpinEdit->Value == 0)
    {
        r1in1ComboBox   ->Visible = false;
        r1opComboBox    ->Visible = false;
        r1in2ComboBox   ->Visible = false;
        r1outComboBox   ->Visible = false;
        r1alphaCSpinEdit->Visible = false;
    }
    else
    {
        r1in1ComboBox   ->Visible = true;
        r1opComboBox    ->Visible = true;
        r1in2ComboBox   ->Visible = true;
        r1outComboBox   ->Visible = true;
        r1alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r2weightCSpinEditChange(TObject *Sender)
{
    if (r2weightCSpinEdit->Value == 0)
    {
        r2in1ComboBox   ->Visible = false;
        r2opComboBox    ->Visible = false;
        r2in2ComboBox   ->Visible = false;
        r2outComboBox   ->Visible = false;
        r2alphaCSpinEdit->Visible = false;
    }
    else
    {
        r2in1ComboBox   ->Visible = true;
        r2opComboBox    ->Visible = true;
        r2in2ComboBox   ->Visible = true;
        r2outComboBox   ->Visible = true;
        r2alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r3weightCSpinEditChange(TObject *Sender)
{
    if (r3weightCSpinEdit->Value == 0)
    {
        r3in1ComboBox   ->Visible = false;
        r3opComboBox    ->Visible = false;
        r3in2ComboBox   ->Visible = false;
        r3outComboBox   ->Visible = false;
        r3alphaCSpinEdit->Visible = false;
    }
    else
    {
        r3in1ComboBox   ->Visible = true;
        r3opComboBox    ->Visible = true;
        r3in2ComboBox   ->Visible = true;
        r3outComboBox   ->Visible = true;
        r3alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r4weightCSpinEditChange(TObject *Sender)
{
    if (r4weightCSpinEdit->Value == 0)
    {
        r4in1ComboBox   ->Visible = false;
        r4opComboBox    ->Visible = false;
        r4in2ComboBox   ->Visible = false;
        r4outComboBox   ->Visible = false;
        r4alphaCSpinEdit->Visible = false;
    }
    else
    {
        r4in1ComboBox   ->Visible = true;
        r4opComboBox    ->Visible = true;
        r4in2ComboBox   ->Visible = true;
        r4outComboBox   ->Visible = true;
        r4alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r5weightCSpinEditChange(TObject *Sender)
{
    if (r5weightCSpinEdit->Value == 0)
    {
        r5in1ComboBox   ->Visible = false;
        r5opComboBox    ->Visible = false;
        r5in2ComboBox   ->Visible = false;
        r5outComboBox   ->Visible = false;
        r5alphaCSpinEdit->Visible = false;
    }
    else
    {
        r5in1ComboBox   ->Visible = true;
        r5opComboBox    ->Visible = true;
        r5in2ComboBox   ->Visible = true;
        r5outComboBox   ->Visible = true;
        r5alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r6weightCSpinEditChange(TObject *Sender)
{
    if (r6weightCSpinEdit->Value == 0)
    {
        r6in1ComboBox   ->Visible = false;
        r6opComboBox    ->Visible = false;
        r6in2ComboBox   ->Visible = false;
        r6outComboBox   ->Visible = false;
        r6alphaCSpinEdit->Visible = false;
    }
    else
    {
        r6in1ComboBox   ->Visible = true;
        r6opComboBox    ->Visible = true;
        r6in2ComboBox   ->Visible = true;
        r6outComboBox   ->Visible = true;
        r6alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r7weightCSpinEditChange(TObject *Sender)
{
    if (r7weightCSpinEdit->Value == 0)
    {
        r7in1ComboBox   ->Visible = false;
        r7opComboBox    ->Visible = false;
        r7in2ComboBox   ->Visible = false;
        r7outComboBox   ->Visible = false;
        r7alphaCSpinEdit->Visible = false;
    }
    else
    {
        r7in1ComboBox   ->Visible = true;
        r7opComboBox    ->Visible = true;
        r7in2ComboBox   ->Visible = true;
        r7outComboBox   ->Visible = true;
        r7alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r8weightCSpinEditChange(TObject *Sender)
{
    if (r8weightCSpinEdit->Value == 0)
    {
        r8in1ComboBox   ->Visible = false;
        r8opComboBox    ->Visible = false;
        r8in2ComboBox   ->Visible = false;
        r8outComboBox   ->Visible = false;
        r8alphaCSpinEdit->Visible = false;
    }
    else
    {
        r8in1ComboBox   ->Visible = true;
        r8opComboBox    ->Visible = true;
        r8in2ComboBox   ->Visible = true;
        r8outComboBox   ->Visible = true;
        r8alphaCSpinEdit->Visible = true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r9weightCSpinEditChange(TObject *Sender)
{
    if (r9weightCSpinEdit->Value == 0)
    {
        r9in1ComboBox   ->Visible = false;
        r9opComboBox    ->Visible = false;
        r9in2ComboBox   ->Visible = false;
        r9outComboBox   ->Visible = false;
        r9alphaCSpinEdit->Visible = false;
    }
    else
    {
        r9in1ComboBox   ->Visible = true;
        r9opComboBox    ->Visible = true;
        r9in2ComboBox   ->Visible = true;
        r9outComboBox   ->Visible = true;
        r9alphaCSpinEdit->Visible = true;
    }

}
//---------------------------------------------------------------------------

void __fastcall TRulesEditorForm::r1outComboBoxChange(TObject *Sender)
{
    FuzzyController->clear_rules();

    FuzzyController->add_rule(new TFuzzyRule(true, r1alphaCSpinEdit->Value/100.0, r1weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r2alphaCSpinEdit->Value/100.0, r2weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r3alphaCSpinEdit->Value/100.0, r3weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r4alphaCSpinEdit->Value/100.0, r4weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r5alphaCSpinEdit->Value/100.0, r5weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r6alphaCSpinEdit->Value/100.0, r6weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r7alphaCSpinEdit->Value/100.0, r7weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r8alphaCSpinEdit->Value/100.0, r8weightCSpinEdit->Value/100.0));
    FuzzyController->add_rule(new TFuzzyRule(true, r9alphaCSpinEdit->Value/100.0, r9weightCSpinEdit->Value/100.0));


    if (FuzzyController->rules[0] != NULL)
    {
    FuzzyController->rules[0]->predicate->clear_premises();
    FuzzyController->rules[0]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r1in1ComboBox->ItemIndex]));
    FuzzyController->rules[0]->predicate->clear_operators();
    FuzzyController->rules[0]->predicate->add_operator(r1opComboBox->ItemIndex);
    FuzzyController->rules[0]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r1in2ComboBox->ItemIndex]));
    FuzzyController->rules[0]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r1outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[1] != NULL)
    {
    FuzzyController->rules[1]->predicate->clear_premises();
    FuzzyController->rules[1]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r2in1ComboBox->ItemIndex]));
    FuzzyController->rules[1]->predicate->clear_operators();
    FuzzyController->rules[1]->predicate->add_operator(r2opComboBox->ItemIndex);
    FuzzyController->rules[1]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r2in2ComboBox->ItemIndex]));
    FuzzyController->rules[1]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r2outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[2] != NULL)
    {
    FuzzyController->rules[2]->predicate->clear_premises();
    FuzzyController->rules[2]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r3in1ComboBox->ItemIndex]));
    FuzzyController->rules[2]->predicate->clear_operators();
    FuzzyController->rules[2]->predicate->add_operator(r3opComboBox->ItemIndex);
    FuzzyController->rules[2]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r3in2ComboBox->ItemIndex]));
    FuzzyController->rules[2]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r3outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[3] != NULL)
    {
    FuzzyController->rules[3]->predicate->clear_premises();
    FuzzyController->rules[3]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r4in1ComboBox->ItemIndex]));
    FuzzyController->rules[3]->predicate->clear_operators();
    FuzzyController->rules[3]->predicate->add_operator(r4opComboBox->ItemIndex);
    FuzzyController->rules[3]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r4in2ComboBox->ItemIndex]));
    FuzzyController->rules[3]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r4outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[4] != NULL)
    {
    FuzzyController->rules[4]->predicate->clear_premises();
    FuzzyController->rules[4]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r5in1ComboBox->ItemIndex]));
    FuzzyController->rules[4]->predicate->clear_operators();
    FuzzyController->rules[4]->predicate->add_operator(r5opComboBox->ItemIndex);
    FuzzyController->rules[4]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r5in2ComboBox->ItemIndex]));
    FuzzyController->rules[4]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r5outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[5] != NULL)
    {
    FuzzyController->rules[5]->predicate->clear_premises();
    FuzzyController->rules[5]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r6in1ComboBox->ItemIndex]));
    FuzzyController->rules[5]->predicate->clear_operators();
    FuzzyController->rules[5]->predicate->add_operator(r6opComboBox->ItemIndex);
    FuzzyController->rules[5]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r6in2ComboBox->ItemIndex]));
    FuzzyController->rules[5]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r6outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[6] != NULL)
    {
    FuzzyController->rules[6]->predicate->clear_premises();
    FuzzyController->rules[6]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r7in1ComboBox->ItemIndex]));
    FuzzyController->rules[6]->predicate->clear_operators();
    FuzzyController->rules[6]->predicate->add_operator(r7opComboBox->ItemIndex);
    FuzzyController->rules[6]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r7in2ComboBox->ItemIndex]));
    FuzzyController->rules[6]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r7outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[7] != NULL)
    {
    FuzzyController->rules[7]->predicate->clear_premises();
    FuzzyController->rules[7]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r8in1ComboBox->ItemIndex]));
    FuzzyController->rules[7]->predicate->clear_operators();
    FuzzyController->rules[7]->predicate->add_operator(r8opComboBox->ItemIndex);
    FuzzyController->rules[7]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r8in2ComboBox->ItemIndex]));
    FuzzyController->rules[7]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r8outComboBox->ItemIndex]));
    }
    if (FuzzyController->rules[8] != NULL)
    {
    FuzzyController->rules[8]->predicate->clear_premises();
    FuzzyController->rules[8]->predicate->add_premise(new TPremise(FuzzyController->input_variables[0]->fuzzysets[r9in1ComboBox->ItemIndex]));
    FuzzyController->rules[8]->predicate->clear_operators();
    FuzzyController->rules[8]->predicate->add_operator(r9opComboBox->ItemIndex);
    FuzzyController->rules[8]->predicate->add_premise(new TPremise(FuzzyController->input_variables[1]->fuzzysets[r9in2ComboBox->ItemIndex]));
    FuzzyController->rules[8]->consequent->set_premise(new TPremise(FuzzyController->output_variable->fuzzysets[r9outComboBox->ItemIndex]));
	}

    MainForm->Update();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -