.
Разрабатываем экспертную систему. Урок 14. Улучшаем интерфейс ЭС.
Автор megabax   
29.05.2021 г.
unit AIObj

Разрабатываем экспертную систему. Урок 14. Улучшаем интерфейс ЭС.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


На прошлом уроке мы с вами сформулировали постановку задачи по улучшению интерфейса нашей экспертной системы. Сегодня начнем эту постановку задачи выполнять. Начнем с того, что напишем иерархическую структуру классификатора исходных признаков, что бы признаки можно было группировать в группы признаков, примерно как то так:

Разрабатываем экспертную систему. Урок 14. Улучшаем интерфейс ЭС.

Начтем с того, что доработаем класс ObjectProperty...

...

...

...Этот другой компонент мы назовем tvProperties. В связи с этим нам предстоит переделать ряд методов главной формы, в частности  tsmiEditProperty_Click (редактировать признак),

        private void tsmiEditProperty_Click(object sender, EventArgs e)

        {

            //если выбран узел, то редактируем его

            if (tvProperties.SelectedNode != null)

            {

                //Получим свойство объекта ЭС, которые мы будем хранить в свойстве Tag узла

                ObjectProperty prop = tvProperties.SelectedNode.Tag as ObjectProperty;

 

                InputString form = new InputString();

                form.Text = "Введите имя признака (свойства)";

                form.tbEdit.Text = prop.name;

                if (form.ShowDialog() == DialogResult.OK)

                {

                    prop.name = form.tbEdit.Text;

                    Library.refresh_properties(tvProperties,data);

                }

 

            }

            else

            {

                MessageBox.Show("Выберите свойство");

            }

        }

...

...

...Это у нас новая форма, ее надо создать. Она предназначена для связывания признаков со входами нейросети:

Разрабатываем экспертную систему. Урок 14. Улучшаем интерфейс ЭС.

На картинке пример для медицинской экспертной системы. Признаки - это симптомы заболеваний, а искомые объекты - это сами болезни...

..

..

...В обработчике этого пункта меню просто откроем диалог редактирования настроек:

        private void tsmiOptions_Click(object sender, EventArgs e)

        {

            OptionsForm form = new OptionsForm(data);

            form.ShowDialog();

        }

...

...

...И все, программа готова. Теперь вы сможете редактировать список признаков в виде дерева. Мы еще хотели создать редактор обучающих матриц и контроль, чтобы пользователь не ввел один и тот же признак дважды (см. прошлый урок). Но этим мы займемся на будущих уроках.