diff --git a/docs/doc_agent_check_student_answer.md b/docs/doc_agent_check_student_answer.md new file mode 100644 index 0000000..c69393b --- /dev/null +++ b/docs/doc_agent_check_student_answer.md @@ -0,0 +1,46 @@ +

Агент проверки ответа студента

+Агент проверки ответа студента - один из агентов предметной области теории графов, реализованный на графовом языке программирования SCP. Агент является составной частью системы тестирования знаний студента, сверяя данный студентом ответ на задачу с ожидаемым, и, в случае неверного ответа, генерирующий структуру с элементами, которых не хватало в ответе студента. + +**Класс действий:** action_check_student_answer + +**Условие инициирования:** агент принимает на вход две структуры: первая, связанная отношением **rrel_1** - ответ, данный студентом на задачу. Вторая, связанная отношением **nrel_exprected_answer** - ожидаемый ответ. + + **Результат выполнения:** результатом выполнения агента является ссылка с текстовым содержимым **"Student gave right answer"**, если студент дал правильный ответ на задачу. В противном случае, результатом будет структура с теми элементами, которые есть в ожидаемом ответе, но нет в ответе студента. + + ## Процесс выполнения агента: +1. Агент берёт 2 входных параметра из узла действия - они представляют собой структуры. +2. Агент вызывает агента сравнения структур - тот, в свою очередь создаёт связку с двумя структурами: первая - то, что есть в ответе студента и нет в ожидаемом ответе, вторая - то, что есть в +ожидаемом ответе, но нет в ответе студента. +3. Агент берёт вторую структуру(в которой содержатся те элементы, которые отсутствуют в ответе студента). +4. Агент проверяет, пустая ли структура. +5. Если структура пустая, то агент создаёт ссылку с содержанием **"Student gave right answer"** и привязывает её к узлу действия. +6. Если структура не пустая, то агент создаёт структуру с теми элементами, которые отсутствуют в ответе студента и привязывает её к узлу действия отношением **nrel_answer**. + + ## Порядок действий при работе с агентом: + 1. Создать тестовый пример в формате .gwf или в формате .scs. Далее будет показан алгоритм для тестового примера .gwf: +![image](https://github.com/user-attachments/assets/a1e756ca-cfa4-4789-9c93-fd47e5125d23) + + 2. Поместить тестовый пример в директорию tests, лежащюю по пути **gt-knowledge-processing-machine/solver_gt/graph_agents/agent_check_student_answer/tests** + + 3. Пересобрать базу знаний, запустить sc-машину и открыть sc-web. + 4. Найти узел действия, который соответствует разработанному в пункте 1 тестовому примеру: +![image](https://github.com/user-attachments/assets/b17530dc-2212-4526-b1c2-4ad45f8fc6ad) + + + 5. Инициировать действие(создать узел **action_initiated** и провести из него в узел действия дугу принадлежности) и нажать на панели слева 'Синхронизировать с базой': +![image](https://github.com/user-attachments/assets/30963dca-f3e3-4247-88e0-bf5f730fcb5e) + + + 6. Перейти по узлу действия. Появилась структура, связанная с узлом действия отношением **результат***: + ![image](https://github.com/user-attachments/assets/e336cf3a-050e-4dc7-9988-48e323a69cfd) + + + 7. Если перейти по указанной структуре с помощью выбора опции **Какие элементы принадлежат указываемому множеству?**, то можно увидеть результат выполнения агента: +![image](https://github.com/user-attachments/assets/ae49821f-d11f-4e91-863d-335da5549a64) +![image](https://github.com/user-attachments/assets/c4f48949-eac7-48f5-afc1-e5e14d8ea425) +![image](https://github.com/user-attachments/assets/908805d1-dc06-40b9-9196-a50ed4d6e36a) + + + + + diff --git a/docs/doc_agent_gen_random_graph.md b/docs/doc_agent_gen_random_graph.md new file mode 100644 index 0000000..3702016 --- /dev/null +++ b/docs/doc_agent_gen_random_graph.md @@ -0,0 +1,58 @@ +

Агент генерации случайного графа

+Агент генерации случайного графа - один из агентов предметной области теории графов, реализованный на графовом языке программирования SCP. Агент является составной частью системы тестирования знаний студента, генерируя случайный шаблон, по которому впоследствии агентом генерации задания для студента будет сгенерировано задание для решения его студентом. + +**Класс действий:** action_generate_random_graph + +**Условие инициирования:** агент принимает на вход 2 ссылки с числовым содержимым: первая связывается с узлом действия отношением **rrel_1**, содержит произвольное число и представляет собой количество вершин в случайном графе; вторая - связана с узлом действия отношением **rrel_2**, содержит произвольное число в диапазоне от 0 до 100 и представляет собой вероятность связи между вершинами графа. + + **Результат выполнения:** результатом выполнения агента является структура, содержащая количество вершин равное числу, хранящемуся в первой ссылке. Так как результат выполнения агента - это шаблон, то вершины в нём являются константами, а дуги - переменными. + + ## Процесс выполнения агента: + 1. Агент берёт 2 входных параметра из узла действия. Параметры представляют собой ссылки с числовым содержимым. + 2. Программа генерирует структуру, в которую записывает такое количество вершин, которое равно содержимому первой ссылки. + 3. Создаётся множество из сгенерированных вершин. + 4. Выбирается вершина из созданного множества и сразу же из него удаляется. + 5. Для выбранной вершины создаётся ещё одно множество всех вершин сгенерированной в пункте 2 структуры. + 6. Из второго множества выбирается вершина и сразу же из него удаляется. + 7. Для текущей пары вершин генерируется случайное число. Если оно меньше, чем содержимое второго параметра, то в результат добавляется переменная дуга между соответствующей парой вершин. В противном случае, дуга не добавляется. + 8. Если текущая вершина из второго множества - последняя, то агент берёт следующую вершину из первого множества, в противном случае - берётся следующая вершина второго множества. Если в обоих множествах не осталось вершин, агент завершает свою работу. + + ## Порядок действий при работе с агентом: + 1. Создать тестовый пример в формате .gwf или в формате .scs. Далее будет показан алгоритм для тестового примера .gwf: + ![photo_5298670586249210089_x](https://github.com/user-attachments/assets/1e432450-de60-4725-b33b-4f2bf2f6287d) + + 2. Поместить тестовый пример в директорию tests, лежащюю по пути **gt-knowledge-processing-machine/solver_gt/graph_agents/agents_gen_random_graph/tests** + + 3. Пересобрать базу знаний, запустить sc-машину и открыть sc-web. + 4. Найти узел действия, который соответствует разработанному в пункте 1 тестовому примеру: + ![photo_5325803277637509094_y](https://github.com/user-attachments/assets/ceea7ed1-1b9f-4488-a26c-2e91c65ada0f) + + 5. Инициировать действие(создать узел **action_initiated** и провести из него в узел действия дугу принадлежности) и нажать на панели слева 'Синхронизировать с базой': + ![photo_5325803277637509103_y](https://github.com/user-attachments/assets/c4854c64-5b89-43a4-ba00-b2e206fe3de6) + + 6. Перейти по узлу действия. Появилась структура, связанная с узлом действия отношением **результат***: + ![photo_5325803277637509104_y](https://github.com/user-attachments/assets/dcd5afc8-3e2b-404b-91a9-67b12631b985) + + 7. Если перейти по указанной структуре с помощью выбора опции **Какие элементы принадлежат указываемому множеству?**, то можно увидеть результат выполнения агента: + ![photo_5325803277637509105_y](https://github.com/user-attachments/assets/ffffabb0-e14e-4997-87c2-7873e40ac3c1) + ![photo_5325803277637509106_y](https://github.com/user-attachments/assets/36669af9-2ddd-495c-bfe6-f91e30fbe141) + +## Примеры результатов работы агента для других наборов входных данных: +**Тестовый набор:** + +![photo_5298670586249210090_x](https://github.com/user-attachments/assets/5bf3c068-9551-4073-a4da-aead88deadb7) + + +**Результат:** + +![photo_5300922386062894624_x](https://github.com/user-attachments/assets/f71401b0-ab85-4217-af60-99c2d6e44104) + + +**Тестовый набор:** + +![photo_5300922386062894669_x](https://github.com/user-attachments/assets/e82cf7dd-5a60-4a5a-bb14-ef00461d25a7) + + +**Результат:** + +![photo_5300922386062894676_x](https://github.com/user-attachments/assets/957f6c29-0e0b-478b-9a61-bb9a0058ddad) diff --git a/menu/ui_menu_na_graph_theory.scs b/menu/ui_menu_na_graph_theory.scs index 95bfd67..6124d02 100755 --- a/menu/ui_menu_na_graph_theory.scs +++ b/menu/ui_menu_na_graph_theory.scs @@ -5,5 +5,6 @@ ui_menu_na_graph_theory => nrel_main_idtf: [Graph theory] (* <- lang_en;; *);; ui_menu_na_graph_theory <= nrel_ui_commands_decomposition: { - ui_menu_task_generation + ui_menu_task_generation; + ui_menu_gen_random_graph };; diff --git a/solver_gt/graph_agents/agent_check_student_answer/agent_check_student_answer.scs b/solver_gt/graph_agents/agent_check_student_answer/agent_check_student_answer.scs new file mode 100644 index 0000000..6605904 --- /dev/null +++ b/solver_gt/graph_agents/agent_check_student_answer/agent_check_student_answer.scs @@ -0,0 +1,217 @@ +agent_check_student_answer +=> nrel_main_idtf: + [агентная scp-программа проверки ответа студента] (* <- lang_ru;; *); + [agent scp-program for checking student answer] (* <- lang_en;; *); +<- scp_program; +<- agent_scp_program; +-> rrel_key_sc_element: .._process1;; + +agent_check_student_answer = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _event; +_-> rrel_2:: rrel_in:: _input_arc; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._agent_check_student_answer_operator_start (* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _temp;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _input_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_check_student_answer_operator1;; + *);; + + _-> .._agent_check_student_answer_operator1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_check_student_answer;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_check_student_answer_operator_message;; + _=> nrel_else:: .._agent_check_student_answer_operator_return;; + *);; + + _-> .._agent_check_student_answer_operator_return (* + _<- return;; + + *);; + + _-> .._agent_check_student_answer_operator_message (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Start work agent_check_student_answer];; + + _=> nrel_goto:: .._agent_check_student_answer_get_arg1;; + *);; + + _-> .._agent_check_student_answer_get_arg1 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _param1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_then:: .._agent_check_student_answer_get_arg2;; + _=> nrel_else:: .._agent_check_student_answer_unsuccess;; + *);; + + _-> .._agent_check_student_answer_unsuccess (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_unsuccessfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_check_student_answer_operator_return;; + *);; + + _-> .._agent_check_student_answer_get_arg2 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _param2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_expected_answer;; + + _=> nrel_then:: .._agent_check_student_answer_operator2;; + _=> nrel_else:: .._agent_check_student_answer_unsuccess;; + *);; + + _-> .._agent_check_student_answer_operator2 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_compare_structures;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _new_action;; + + _=> nrel_goto:: .._agent_check_student_answer_operator3;; + *);; + + _-> .._agent_check_student_answer_operator3 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action_new;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action;; + + _=> nrel_goto:: .._agent_check_student_answer_operator4;; + *);; + + _-> .._agent_check_student_answer_operator4 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_p1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _param1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc1;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_goto:: .._agent_check_student_answer_operator5;; + *);; + + _-> .._agent_check_student_answer_operator5 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_p2;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _param2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_2;; + + _=> nrel_goto:: .._agent_check_student_answer_gen;; + *);; + + _-> .._agent_check_student_answer_gen (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_time;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [99999];; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_time_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_max_customer_waiting_time_for_action_to_finish;; + + _=> nrel_goto:: .._agent_check_student_answer_operator6;; + *);; + + _-> .._agent_check_student_answer_operator6 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_initiated;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action2;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action;; + + _=> nrel_goto:: .._agent_check_student_answer_operator_wait;; + *);; + + _-> .._agent_check_student_answer_operator_wait (* + _<- sys_wait;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: sc_event_after_generate_outgoing_arc;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _new_action;; + + _=> nrel_goto:: .._agent_check_student_answer_operator_check_state;; + *);; + + _-> .._agent_check_student_answer_operator_check_state (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_result;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _result_structure;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc3;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_then:: .._agent_check_student_answer_call;; + _=> nrel_else:: .._agent_check_student_answer_operator_print;; + *);; + + _-> .._agent_check_student_answer_operator_print (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Can not find result node];; + + _=> nrel_goto:: .._agent_check_student_answer_unsuccess;; + *);; + + _-> .._agent_check_student_answer_call (* + _<- call;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: proc_check_student_answer;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: .._agent_check_student_answer_params (* + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result_structure;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_struct:: _result;; + *);; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_check_student_answer_wait;; + *);; + + _-> .._agent_check_student_answer_wait (* + _<- waitReturn;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_check_student_answer_check_result;; + *);; + + _-> .._agent_check_student_answer_check_result (* + _<- ifVarAssign;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_then:: .._agent_check_student_answer_get_result;; + _=> nrel_else:: .._agent_check_student_answer_unsuccess;; + *);; + + _-> .._agent_check_student_answer_get_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_result;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_goto:: .._agent_check_student_answer_success;; + *);; + + _-> .._agent_check_student_answer_success (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_successfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_check_student_answer_operator_return;; + *);; + +*);; + +*];; \ No newline at end of file diff --git a/solver_gt/graph_agents/agent_check_student_answer/proc/proc_check_student_answer.scs b/solver_gt/graph_agents/agent_check_student_answer/proc/proc_check_student_answer.scs new file mode 100644 index 0000000..b4531b8 --- /dev/null +++ b/solver_gt/graph_agents/agent_check_student_answer/proc/proc_check_student_answer.scs @@ -0,0 +1,126 @@ +proc_check_student_answer +=> nrel_main_idtf: + [Программа проверки ответа студента](* <- lang_ru;; *); + [Program for checking student answer](* <- lang_en;; *); +<- scp_program; +-> rrel_key_sc_element: .._process1;; + +proc_check_student_answer = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _structure; +_-> rrel_2:: rrel_out:: _result; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._create_result (* + _<- genEl;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_const:: rrel_node:: rrel_struct:: _result;; + + _=> nrel_goto:: .._find_forward_difference;; + *);; + + _-> .._find_forward_difference (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_forward_difference;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_diff;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _difference;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc4;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: _structure;; + + _=> nrel_goto:: .._check_forward_difference;; + *);; + + _-> .._check_forward_difference (* + _<- ifVarAssign;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _difference;; + + _=> nrel_then:: .._find_forward_structure;; + _=> nrel_else:: .._if_no_values;; + *);; + + _-> .._if_no_values (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_correct;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [Student gave right answer!];; + + _=> nrel_goto:: .._return_operator;; + *);; + + _-> .._find_forward_structure (* + _<- searchElStr5;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _structure_concept;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_diff_structure;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _graph_structure;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _difference;; + + _=> nrel_goto:: .._add_concept;; + *);; + + _-> .._add_concept (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_concept;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: concept_structure_with_elements_not_in_answer;; + + _=> nrel_goto:: .._add_new_structure;; + *);; + + _-> .._add_new_structure (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_new_structure;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _new_result;; + + _=> nrel_goto:: .._add_concept_structure;; + *);; + + _-> .._add_concept_structure (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_structure_with_elements_not_in_answer;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_from_concept;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_concept;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._add_concept_to_new_result;; + *);; + + _-> .._add_concept_to_new_result (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _structure_concept;; + + _=> nrel_goto:: .._add_structure_to_new_result;; + *);; + + _-> .._add_structure_to_new_result (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc2;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _graph_structure;; + + _=> nrel_goto:: .._add_arc_to_new_result;; + *);; + + _-> .._add_arc_to_new_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _structure_concept;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc3;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _graph_structure;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc4;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _new_result;; + + _=> nrel_goto:: .._return_operator;; + *);; + + _-> .._return_operator (* + _<- return;; + *);; + +*);; + +*];; diff --git a/solver_gt/graph_agents/agent_check_student_answer/sc_agent_check_student_answer.scs b/solver_gt/graph_agents/agent_check_student_answer/sc_agent_check_student_answer.scs new file mode 100644 index 0000000..6ceab36 --- /dev/null +++ b/solver_gt/graph_agents/agent_check_student_answer/sc_agent_check_student_answer.scs @@ -0,0 +1,47 @@ +sc_agent_check_student_answer +=> nrel_main_idtf: + [sc-агент проверки ответа студента](* <- lang_ru;; *); + [sc-agent for checking student answer](* <- lang_en;; *); +<- abstract_sc_agent; +=> nrel_primary_initiation_condition: + (sc_event_after_generate_outgoing_arc => action_initiated); +=> nrel_initiation_condition_and_result: + (..sc_agent_check_student_answer_initiation_condition + => ..sc_agent_check_student_answer_result_condition); +=> nrel_sc_agent_action_class: + action_check_student_answer + (* + <- sc_node_class;; + <= nrel_inclusion: + information_action;; + *); +<= nrel_sc_agent_key_sc_elements: +{ + action_initiated; + action_check_student_answer +}; +=> nrel_inclusion: + sc_agent_check_student_answer_implementation + (* + <- platform_independent_abstract_sc_agent;; + <= nrel_sc_agent_program: + { + agent_check_student_answer; + proc_check_student_answer + };; + -> sc_agent_check_student_answer_scp (* <- active_sc_agent;; *);; + *);; + +..sc_agent_check_student_answer_initiation_condition += [* + action_check_student_answer _-> .._action;; + action_initiated _-> .._action;; + action _-> .._action;; + .._action _-> rrel_1:: .._parameter1;; + .._action _=> nrel_expected_answer:: .._parameter2;; +*];; + +..sc_agent_check_student_answer_result_condition += [* + .._action _=> nrel_result:: .._result;; +*];; \ No newline at end of file diff --git a/solver_gt/graph_agents/agent_check_student_answer/tests/check_student_answer_test1.gwf b/solver_gt/graph_agents/agent_check_student_answer/tests/check_student_answer_test1.gwf new file mode 100644 index 0000000..348951c --- /dev/null +++ b/solver_gt/graph_agents/agent_check_student_answer/tests/check_student_answer_test1.gwf @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solver_gt/graph_agents/agent_compare_structures/agent_compare_structures.scs b/solver_gt/graph_agents/agent_compare_structures/agent_compare_structures.scs new file mode 100644 index 0000000..7fea89f --- /dev/null +++ b/solver_gt/graph_agents/agent_compare_structures/agent_compare_structures.scs @@ -0,0 +1,131 @@ +agent_compare_structures +=> nrel_main_idtf: + [агентная scp-программа сравнения структур] (* <- lang_ru;; *); + [agent scp-program for comparing structures] (* <- lang_en;; *); +<- scp_program; +<- agent_scp_program; +-> rrel_key_sc_element: .._process1;; + +agent_compare_structures = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _event; +_-> rrel_2:: rrel_in:: _input_arc; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._agent_compare_structures_operator_start (* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _temp;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _input_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_compare_structures_operator1;; + *);; + + _-> .._agent_compare_structures_operator1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_compare_structures;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_compare_structures_operator_message;; + _=> nrel_else:: .._agent_compare_structures_operator_return;; + *);; + + _-> .._agent_compare_structures_operator_return (* + _<- return;; + + *);; + + _-> .._agent_compare_structures_operator_message (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Start work agent for comparing structures];; + + _=> nrel_goto:: .._agent_compare_structures_get_arg1;; + *);; + + _-> .._agent_compare_structures_get_arg1 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _param1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_then:: .._agent_compare_structures_get_arg2;; + _=> nrel_else:: .._agent_compare_structures_operator_unsuccess;; + *);; + + _-> .._agent_compare_structures_operator_unsuccess (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_unsuccessfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_compare_structures_operator_return;; + *);; + + _-> .._agent_compare_structures_get_arg2 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _param2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_2;; + + _=> nrel_then:: .._agent_compare_structures_operator_call;; + _=> nrel_else:: .._agent_compare_structures_operator_unsuccess;; + *);; + + _-> .._agent_compare_structures_operator_call (* + _<- call;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: proc_compare_structures;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: .._agent_compare_structures_params (* + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _param1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _param2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _result;; + *);; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_compare_structures_wait_operator;; + *);; + + _-> .._agent_compare_structures_wait_operator (* + _<- waitReturn;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_compare_structures_check_result_value;; + *);; + + _-> .._agent_compare_structures_check_result_value (* + _<- ifVarAssign;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_then:: .._agent_compare_structures_take_result;; + _=> nrel_else:: .._agent_compare_structures_operator_unsuccess;; + *);; + + _-> .._agent_compare_structures_take_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_result;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_goto:: .._agent_compare_structures_operator_success;; + *);; + + _-> .._agent_compare_structures_operator_success (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_successfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_compare_structures_operator_return;; + *);; + +*);; + +*];; \ No newline at end of file diff --git a/solver_gt/graph_agents/agent_compare_structures/proc/proc_compare_structures.scs b/solver_gt/graph_agents/agent_compare_structures/proc/proc_compare_structures.scs new file mode 100644 index 0000000..1010354 --- /dev/null +++ b/solver_gt/graph_agents/agent_compare_structures/proc/proc_compare_structures.scs @@ -0,0 +1,611 @@ +proc_compare_structures +=> nrel_main_idtf: + [Программа сравнения структур](* <- lang_ru;; *); + [Program for comparing structures](* <- lang_en;; *); +<- scp_program; +-> rrel_key_sc_element: .._process1;; + +proc_compare_structures = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _structure1; +_-> rrel_2:: rrel_in:: _structure2; +_-> rrel_3:: rrel_out:: _result; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._create_result (* + _<- genEl;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_const:: rrel_node:: rrel_struct:: _result;; + + _=> nrel_goto:: .._add_concept1;; + *);; + + _-> .._add_concept1 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: concept_difference;; + + _=> nrel_goto:: .._add_concept_node;; + *);; + + _-> .._add_concept_node (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_const:: _diff;; + + _=> nrel_goto:: .._add_concept_arc;; + *);; + + _-> .._add_concept_arc (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_difference;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _diff;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._add_concept2;; + *);; + + _-> .._add_concept2 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: concept_reverse_difference;; + + _=> nrel_goto:: .._add_concept3;; + *);; + + _-> .._add_concept3 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: concept_forward_difference;; + + _=> nrel_goto:: .._add_reverse_structure;; + *);; + + _-> .._add_reverse_structure (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: rrel_const:: rrel_node:: _reverse_struct;; + + _=> nrel_goto:: .._add_arc_to_reverse_structure;; + *);; + + _-> .._add_arc_to_reverse_structure (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_reverse_difference;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_reverse;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _reverse_struct;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._add_forward_structure;; + *);; + + _-> .._add_forward_structure (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: rrel_const:: rrel_node:: _forward_struct;; + + _=> nrel_goto:: .._add_arc_to_forward_structure;; + *);; + + _-> .._add_arc_to_forward_structure (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_forward_difference;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_forward;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _forward_struct;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._add_arc_to_reverse;; + *);; + + _-> .._add_arc_to_reverse (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _diff;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_revers;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _reverse_struct;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_revers_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._add_arc_to_forward_struct;; + *);; + + _-> .._add_arc_to_forward_struct (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _diff;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_diff;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _forward_struct;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_diff_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_goto:: .._create_set1;; + *);; + + _-> .._create_set1 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_node:: _el_in_set1;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: _set_with_el1;; + + _=> nrel_goto:: .._create_set2;; + *);; + + _-> .._create_set2 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _el_in_set2;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: rrel_node:: _set_with_el2;; + + _=> nrel_goto:: .._take_el_from_set2;; + *);; + + _-> .._take_el_from_set2 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _set_with_el2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_in_set2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _el_in_set2;; + + _=> nrel_then:: .._delete_el_from_set2;; + _=> nrel_else:: .._create_new_set2;; + *);; + + _-> .._delete_el_from_set2 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _arc_in_set2;; + + _=> nrel_goto:: .._check_el_for_forward;; + *);; + + _-> .._check_el_for_forward (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _set_with_el1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_set_el1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _el_in_set2;; + + _=> nrel_then:: .._take_el_from_set2;; + _=> nrel_else:: .._add_to_forward;; + *);; + + _-> .._add_to_forward (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _forward_struct;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_el;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _el_in_set2;; + + _=> nrel_goto:: .._take_el_from_set2;; + *);; + + _-> .._create_new_set2 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_node:: _el_in_set2;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: _new_set_with_el2;; + + _=> nrel_goto:: .._create_new_set1;; + *);; + + _-> .._create_new_set1 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _el_in_set1;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: rrel_node:: _new_set_with_el1;; + + _=> nrel_goto:: .._take_el_from_new_set1;; + *);; + + _-> .._take_el_from_new_set1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_set_with_el1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_in_new_set1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _new_el_in_set1;; + + _=> nrel_then:: .._delete_el_from_new_set1;; + _=> nrel_else:: .._create_arc_set1;; + *);; + + _-> .._delete_el_from_new_set1 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _arc_in_new_set1;; + + _=> nrel_goto:: .._check_el_for_reverse;; + *);; + + _-> .._check_el_for_reverse (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_set_with_el2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_new_set_el1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_el_in_set1;; + + _=> nrel_then:: .._take_el_from_new_set1;; + _=> nrel_else:: .._add_to_reverse;; + *);; + + _-> .._add_to_reverse (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _reverse_struct;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_new_el;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_el_in_set1;; + + _=> nrel_goto:: .._take_el_from_new_set1;; + *);; + + _-> .._create_arc_set1 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_arc:: _arc_in_set1;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: _set_with_arc1;; + + _=> nrel_goto:: .._create_arc_set2;; + *);; + + _-> .._create_arc_set2 (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _structure2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _arc_in_set2;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: rrel_node:: _set_with_arc2;; + + _=> nrel_goto:: .._take_arc_from_set2;; + *);; + + _-> .._take_arc_from_set2 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _el1_arc_in_arc_set2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_in_arc_set2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _el2_arc_in_arc_set2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _con_arc_to_arc_set2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _set_with_arc2;; + + _=> nrel_then:: .._delete_arc_from_arc_set2;; + _=> nrel_else:: .._return_operator;; + *);; + + _-> .._delete_arc_from_arc_set2 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _con_arc_to_arc_set2;; + + _=> nrel_goto:: .._check_el1_in_arc_set2;; + *);; + + _-> .._check_el1_in_arc_set2 (* + _<- ifType;; + _-> rrel_1:: rrel_arc::rrel_fixed::rrel_scp_var:: _el1_arc_in_arc_set2;; + + _=> nrel_then:: .._check_el1_arc_as_arc_set2;; + _=> nrel_else:: .._check_el1_arc_as_node_set2;; + *);; + + _-> .._check_el1_arc_as_arc_set2 (* + _<- searchElStr5;; + _-> rrel_1::rrel_assign:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_fixed:: _el1_arc_in_arc_set2;; + _-> rrel_3::rrel_assign:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure2;; + + _=> nrel_goto:: .._check_el1_for_forward;; + *);; + + _-> .._check_el1_for_forward_1 (* + _<- searchElStr5;; + _-> rrel_1::rrel_fixed:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_assign:: _el1_arc_in_arc_set1;; + _-> rrel_3::rrel_fixed:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure1;; + + _=> nrel_then:: .._check_el1_for_forward_1_1;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + _-> .._check_el1_for_forward_1_1 (* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _el1_arc_in_arc_set2;; + _-> rrel_2::rrel_fixed:: _el1_arc_in_arc_set1;; + + _=> nrel_then:: .._check_el2_in_arc_set2;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + _-> .._check_el1_arc_as_node_set2(* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1_arc_in_arc_set2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_set_el1;; + _-> rrel_3:: rrel_fixed:: _structure1;; + + _=> nrel_then:: .._buf_operation_set2_el1;; + _=> nrel_else:: .._add_to_forward;; + *);; + + _-> .._buf_operation_set2_el1(* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_node:: _el1_arc_in_arc_set1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _arc_to_set_el1;; + _-> rrel_3:: rrel_fixed:: _structure1;; + + _=> nrel_goto:: .._check_el2_in_arc_set2;; + *);; + + _-> .._check_el2_in_arc_set2 (* + _<- ifType;; + _-> rrel_1:: rrel_arc::rrel_fixed::rrel_scp_var:: _el2_arc_in_arc_set2;; + + _=> nrel_then:: .._check_el2_for_forward_1_1;; + _=> nrel_else:: .._check_el2_arc_as_node_set2;; + *);; + + _-> .._check_el2_for_forward_1_1 (* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _el2_arc_in_arc_set2;; + _-> rrel_2::rrel_fixed:: _el2_arc_in_arc_set1;; + + _=> nrel_then:: .._check_arc_for_forward;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + + _-> .._check_el2_arc_as_arc_set2 (* + _<- searchElStr5;; + _-> rrel_1::rrel_assign:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_fixed:: _el2_arc_in_arc_set2;; + _-> rrel_3::rrel_assign:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure2;; + + _=> nrel_goto:: .._check_el2_for_forward_1;; + *);; + + _-> .._check_el2_for_forward_1 (* + _<- searchElStr5;; + _-> rrel_1::rrel_fixed:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_assign:: _el2_arc_in_arc_set1;; + _-> rrel_3::rrel_fixed:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure1;; + + _=> nrel_then:: .._check_el2_for_forward_1_1;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + _-> .._check_el2_arc_as_node_set2(* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el2_arc_in_arc_set2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_set_el2;; + _-> rrel_3:: rrel_fixed:: _structure1;; + + _=> nrel_then:: .._check_arc_for_forward;; + _=> nrel_else:: .._add_to_forward;; + *);; + + _-> .._buf_operation_set2_el2(* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_node:: _el2_arc_in_arc_set1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _arc_to_set_el2;; + _-> rrel_3:: rrel_fixed::_structure1;; + + _=> nrel_goto:: .._check_el1_in_arc_set2;; + *);; + + _-> .._check_arc_for_forward (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1_arc_in_arc_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _buf;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _el2_arc_in_arc_set1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _buf1;; + _-> rrel_5:: rrel_fixed::_structure1;; + + _=> nrel_then:: .._check_arc_for_forward1;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + + _-> .._check_arc_for_forward1(* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _arc_in_arc_set2;; + _-> rrel_2::rrel_fixed:: _buf;; + + _=> nrel_then:: .._take_arc_from_set2;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + + _-> .._add_arc_to_forward (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _forward_struct;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_el;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _arc_in_arc_set2;; + + _=> nrel_goto:: .._take_arc_from_set2;; + *);; + + _-> .._take_arc_from_set1 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _el1_arc_in_arc_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_in_arc_set1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _el2_arc_in_arc_set1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _con_arc_to_arc_set1;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _set_with_arc1;; + + _=> nrel_then:: .._delete_arc_from_arc_set1;; + _=> nrel_else:: .._return_operator;; + *);; + + _-> .._delete_arc_from_arc_set1 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _con_arc_to_arc_set1;; + + _=> nrel_goto:: .._check_el1_in_arc_set1;; + *);; + + _-> .._check_el1_in_arc_set1 (* + _<- ifType;; + _-> rrel_1:: rrel_arc::rrel_fixed::rrel_scp_var:: _el1_arc_in_arc_set1;; + + _=> nrel_then:: .._check_el1_arc_as_arc_set1;; + _=> nrel_else:: .._check_el1_arc_as_node_set1;; + *);; + + _-> .._check_el1_arc_as_arc_set1 (* + _<- searchElStr5;; + _-> rrel_1::rrel_assign:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_fixed:: _el1_arc_in_arc_set1;; + _-> rrel_3::rrel_assign:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure1;; + + _=> nrel_goto:: .._check_el1_for_reverce_2;; + *);; + + _-> .._check_el1_for_reverce_2 (* + _<- searchElStr5;; + _-> rrel_1::rrel_fixed:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_assign:: _el1_arc_in_arc_set2;; + _-> rrel_3::rrel_fixed:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure2;; + + _=> nrel_then:: .._check_el1_for_reverce_2_1;; + _=> nrel_else:: .._add_arc_to_reverce;; + *);; + + _-> .._check_el1_for_forward_2_1 (* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _el1_arc_in_arc_set2;; + _-> rrel_2::rrel_fixed:: _el1_arc_in_arc_set1;; + + _=> nrel_then:: .._check_el2_in_arc_set1;; + _=> nrel_else:: .._add_arc_to_reverce;; + *);; + + _-> .._check_el1_arc_as_node_set1(* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1_arc_in_arc_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_set_el1;; + _-> rrel_3:: rrel_fixed:: _structure2;; + + _=> nrel_then:: .._buf_operation_set1_el1;; + _=> nrel_else:: .._add_to_reverce;; + *);; + + _-> .._buf_operation_set1_el1(* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_node:: _el1_arc_in_arc_set2;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _arc_to_set_el1;; + _-> rrel_3:: rrel_fixed:: _structure2;; + + _=> nrel_goto:: .._check_el2_in_arc_set1;; + *);; + + _-> .._check_el2_in_arc_set1 (* + _<- ifType;; + _-> rrel_1:: rrel_arc::rrel_fixed::rrel_scp_var:: _el2_arc_in_arc_set1;; + + _=> nrel_then:: .._check_el2_arc_as_arc_set1;; + _=> nrel_else:: .._check_el2_arc_as_node_set2;; + *);; + + _-> .._check_el2_for_forward_1_2 (* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _el2_arc_in_arc_set2;; + _-> rrel_2::rrel_fixed:: _el2_arc_in_arc_set1;; + + _=> nrel_then:: .._check_el2_in_arc_set2;; + _=> nrel_else:: .._add_arc_to_reverce;; + *);; + + + _-> .._check_el2_arc_as_arc_set1 (* + _<- searchElStr5;; + _-> rrel_1::rrel_assign:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_fixed:: _el2_arc_in_arc_set1;; + _-> rrel_3::rrel_assign:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure1;; + + _=> nrel_goto:: .._check_el2_for_forward_1;; + *);; + + _-> .._check_el2_for_forward_1 (* + _<- searchElStr5;; + _-> rrel_1::rrel_fixed:: rrel_scp_var:: _buf_el1;; + _-> rrel_2::rrel_assign:: _el2_arc_in_arc_set2;; + _-> rrel_3::rrel_fixed:: rrel_scp_var:: _buf_el2;; + _-> rrel_4::rrel_assign:: rrel_scp_var:: _buf_arc;; + _-> rrel_5::rrel_fixed:: _structure2;; + + _=> nrel_then:: .._check_el2_for_forward_1_2 ;; + _=> nrel_else:: .._add_arc_to_reverce;; + *);; + + _-> .._check_el2_arc_as_node_set1(* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el2_arc_in_arc_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_set_el2;; + _-> rrel_3:: rrel_fixed:: _structure2;; + + _=> nrel_then:: .._buf_operation_set1_el2;; + _=> nrel_else:: .._add_to_reverce;; + *);; + + _-> .._buf_operation_set1_el2(* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_node:: _el2_arc_in_arc_set2;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _arc_to_set_el2;; + _-> rrel_3:: rrel_fixed::_structure2;; + + _=> nrel_goto:: .._check_arc_for_reverce;; + *);; + + _-> .._check_arc_for_reverce (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1_arc_in_arc_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _buf;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _el2_arc_in_arc_set1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _buf1;; + _-> rrel_5:: rrel_fixed::_structure2;; + + _=> nrel_then:: .._check_arc_for_reverce1;; + _=> nrel_else:: .._add_arc_to_forward;; + *);; + + + _-> .._check_arc_for_reverce1(* + _<- ifTypeCoin;; + _-> rrel_1::rrel_fixed:: _arc_in_arc_set1;; + _-> rrel_2::rrel_fixed:: _buf;; + + _=> nrel_then:: .._take_arc_from_set1;; + _=> nrel_else:: .._add_arc_to_reverce;; + *);; + + + _-> .._add_arc_to_reverce (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _reverse_struct;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_el;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _arc_in_arc_set1;; + + _=> nrel_goto:: .._take_arc_from_set2;; + *);; + + _-> .._return_operator (* + _<- return;; + *);; + +*);; + +*];; diff --git a/solver_gt/graph_agents/agent_compare_structures/sc_agent_compare_structures.scs b/solver_gt/graph_agents/agent_compare_structures/sc_agent_compare_structures.scs new file mode 100644 index 0000000..fe4f9ed --- /dev/null +++ b/solver_gt/graph_agents/agent_compare_structures/sc_agent_compare_structures.scs @@ -0,0 +1,47 @@ +sc_agent_compare_structures +=> nrel_main_idtf: + [sc-агент сравнения структур](* <- lang_ru;; *); + [sc-agent for comparing structures](* <- lang_en;; *); +<- abstract_sc_agent; +=> nrel_primary_initiation_condition: + (sc_event_after_generate_outgoing_arc => action_initiated); +=> nrel_initiation_condition_and_result: + (..sc_agent_compare_structures_initiation_condition + => ..sc_agent_compare_structures_result_condition); +=> nrel_sc_agent_action_class: + action_compare_structures + (* + <- sc_node_class;; + <= nrel_inclusion: + information_action;; + *); +<= nrel_sc_agent_key_sc_elements: +{ + action_initiated; + action_compare_structures +}; +=> nrel_inclusion: + sc_agent_compare_structures_answer_implementation + (* + <- platform_independent_abstract_sc_agent;; + <= nrel_sc_agent_program: + { + agent_compare_structures; + proc_compare_structures + };; + -> sc_agent_compare_structures_scp (* <- active_sc_agent;; *);; + *);; + +..sc_agent_compare_structures_initiation_condition += [* + action_compare_structures _-> .._action;; + action_initiated _-> .._action;; + action _-> .._action;; + .._action _-> rrel_1:: .._parameter1;; + .._action _-> rrel_2:: .._parameter2;; +*];; + +..sc_agent_compare_structures_result_condition += [* + .._action _=> nrel_result:: .._result;; +*];; diff --git a/solver_gt/graph_agents/agent_compare_structures/tests/compare_structures_test1.gwf b/solver_gt/graph_agents/agent_compare_structures/tests/compare_structures_test1.gwf new file mode 100644 index 0000000..2ec3cfe --- /dev/null +++ b/solver_gt/graph_agents/agent_compare_structures/tests/compare_structures_test1.gwf @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solver_gt/graph_agents/agent_compare_structures/tests/readme.md b/solver_gt/graph_agents/agent_compare_structures/tests/readme.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/solver_gt/graph_agents/agent_compare_structures/tests/readme.md @@ -0,0 +1 @@ + diff --git a/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/agent_determine_number_of_graphs_for_task.scs b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/agent_determine_number_of_graphs_for_task.scs new file mode 100644 index 0000000..ef32dee --- /dev/null +++ b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/agent_determine_number_of_graphs_for_task.scs @@ -0,0 +1,110 @@ +agent_determine_number_of_graphs_for_task +=> nrel_main_idtf: + [Агентная программа определения количества графов для задания] (* <- lang_ru;; *); + [Agent program for determining the number of graphs for a task] (* <- lang_en;; *); +<- scp_program; +<- agent_scp_program; +-> rrel_key_sc_element: .._process1;; + +agent_determine_number_of_graphs_for_task = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _event; +_-> rrel_2:: rrel_in:: _input_arc; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._agent_determine_number_of_graphs_for_task_operator_start (* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _temp;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _input_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_operator1;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_operator1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_determine_number_of_graphs_for_task_operator_message;; + _=> nrel_else:: .._agent_determine_number_of_graphs_for_task_operator_return;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_operator_return (* + _<- return;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_operator_message (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Start work agent_determine_number_of_graphs_for_task];; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_get_args;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_get_args (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _param;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_then:: .._agent_determine_number_of_graphs_for_task_call_operator;; + _=> nrel_else:: .._agent_determine_number_of_graphs_for_task_unsuccess;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_unsuccess (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_unsuccessfully;; + _-> rrel_2:: rrel_assign::rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_operator_return;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_call_operator (* + _<- call;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: proc_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: .._agent_determine_number_of_graphs_for_task_params (* + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _param;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: _result_link;; + *);; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_wait_operator;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_wait_operator (* + _<- waitReturn;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_take_result;; + *);; + + _-> .._agent_determine_number_of_graphs_for_task_take_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_result;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result_link;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_success;; + *);; + + + _-> .._agent_determine_number_of_graphs_for_task_success (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_successfully;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_determine_number_of_graphs_for_task_operator_return;; + *);; + +*);; + +*];; diff --git a/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/proc/proc_determine_number_of_graphs_for_task.scs b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/proc/proc_determine_number_of_graphs_for_task.scs new file mode 100644 index 0000000..d2a7f5a --- /dev/null +++ b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/proc/proc_determine_number_of_graphs_for_task.scs @@ -0,0 +1,109 @@ +proc_determine_number_of_graphs_for_task +=> nrel_main_idtf: + [Программа для определения количества графов для задания] (* <- lang_ru;; *); + [Program for determining the number of graphs for a task] (* <- lang_en;; *); +<- scp_program; +-> rrel_key_sc_element: .._process1;; + + +proc_determine_number_of_graphs_for_task = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _task_element; +_-> rrel_2:: rrel_out:: _result; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._operator_is_parameter_class (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: concept_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_concept_graph;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: _task_element;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc_to_concept_graph;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_inclusion;; + + _=> nrel_then:: .._operator_create_result_for_class;; + _=> nrel_else:: .._operator_find_arity_of_relation;; + *);; + + + _-> .._operator_find_arity_of_relation (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _task_element;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_arity;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _arity;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc_to_arity;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_arity_of_relations;; + + _=> nrel_then:: .._operator_get_arity_of_relation_link;; + _=> nrel_else:: .._operator_create_result_with_message_arity_not_found;; + *);; + + + _-> .._operator_create_result_with_message_arity_not_found (* + _<- varAssign;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [arity not found];; + + _=> nrel_goto:: .._operator_return;; + *);; + + + _-> .._operator_get_arity_of_relation_link (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _arity;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_arity_link;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _arity_link;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc_to_arity_link;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_system_identifier;; + + _=> nrel_then:: .._operator_calculate_result_for_relation;; + _=> nrel_else:: .._operator_create_result_with_message_arity_link_not_found;; + *);; + + + _-> .._operator_create_result_with_message_arity_link_not_found (* + _<- varAssign;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [arity link not found];; + + _=> nrel_goto:: .._operator_return;; + *);; + + + _-> .._operator_calculate_result_for_relation (* + _<- contSub;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _result_for_relation;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _arity_link;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [1];; + + _=> nrel_goto:: .._operator_create_result_for_relation;; + *);; + + + _-> .._operator_create_result_for_class (* + _<- varAssign;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [1];; + + _=> nrel_goto:: .._operator_return;; + *);; + + + _-> .._operator_create_result_for_relation (* + _<- varAssign;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _result_for_relation;; + + _=> nrel_goto:: .._operator_return;; + *);; + + + _-> .._operator_return (* + _<- return;; + *);; + + +*);; + +*];; diff --git a/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/sc_agent_determine_number_of_graphs_for_task.scs b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/sc_agent_determine_number_of_graphs_for_task.scs new file mode 100644 index 0000000..4571024 --- /dev/null +++ b/solver_gt/graph_agents/agent_determine_number_of_graphs_for_task/sc_agent_determine_number_of_graphs_for_task.scs @@ -0,0 +1,46 @@ +sc_agent_determine_number_of_graphs_for_task +=> nrel_main_idtf: + [sc-агент определения количества графов для задания](* <- lang_ru;; *); + [sc-agent of determining number of graphs for task](* <- lang_en;; *); +<- abstract_sc_agent; +=> nrel_primary_initiation_condition: + (sc_event_after_generate_outgoing_arc => action_initiated); +=> nrel_initiation_condition_and_result: + (..sc_agent_determine_number_of_graphs_for_task_initiation_condition + => ..sc_agent_determine_number_of_graphs_for_task_result_condition); +=> nrel_sc_agent_action_class: + action_determine_number_of_graphs_for_task + (* + <- sc_node_class;; + <= nrel_inclusion: + information_action;; + *); +<= nrel_sc_agent_key_sc_elements: +{ + action_initiated; + action_determine_number_of_graphs_for_task +}; +=> nrel_inclusion: + sc_agent_determine_number_of_graphs_for_task_implementation + (* + <- platform_independent_abstract_sc_agent;; + <= nrel_sc_agent_program: + { + agent_determine_number_of_graphs_for_task; + proc_determine_number_of_graphs_for_task + };; + -> sc_agent_determine_number_of_graphs_for_task_scp (* <- active_sc_agent;; *);; + *);; + +..sc_agent_determine_number_of_graphs_for_task_initiation_condition += [* + action_determine_number_of_graphs_for_task _-> .._action;; + action_initiated _-> .._action;; + action _-> .._action;; + .._action _-> rrel_1:: .._parameter;; +*];; + +..sc_agent_determine_number_of_graphs_for_task_result_condition += [* + .._action _=> nrel_result:: .._result;; +*];; diff --git a/solver_gt/graph_agents/agent_generate_task_for_student/agent_generate_task_for_student.scs b/solver_gt/graph_agents/agent_generate_task_for_student/agent_generate_task_for_student.scs new file mode 100644 index 0000000..9391aca --- /dev/null +++ b/solver_gt/graph_agents/agent_generate_task_for_student/agent_generate_task_for_student.scs @@ -0,0 +1,383 @@ +agent_generate_task_for_student +=> nrel_main_idtf: + [Агентная программа для генерации задания для студента] (* <- lang_ru;; *); + [Agent program for student task generation] (* <- lang_en;; *); +<- scp_program; +<- agent_scp_program; +-> rrel_key_sc_element: .._process1;; + +agent_generate_task_for_student = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _event; +_-> rrel_2:: rrel_in:: _input_arc; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._start_agent (* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _temp;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _input_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._operator1;; + *);; + + _-> .._operator1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_generate_task_for_student;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._message_start_agent;; + _=> nrel_else:: .._return;; + *);; + + _-> .._return (* + _<- return;; + *);; + + _-> .._message_start_agent (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Start work agent_generate_task_for_student];; + + _=> nrel_goto:: .._get_arg;; + *);; + + _-> .._get_arg (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _param;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_then:: .._gen_result_structure;; + _=> nrel_else:: .._unsuccess;; + *);; + + _-> .._unsuccess (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_unsuccessfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._return;; + *);; + + _-> .._gen_result_structure (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_agent_result;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _agent_result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_goto:: .._operator2;; + *);; + + _-> .._operator2 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + + _=> nrel_goto:: .._operator3;; + *);; + + _-> .._operator3 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action_new;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + + _=> nrel_goto:: .._operator4;; + *);; + + _-> .._operator4 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_param;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _param;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc_to_param;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_goto:: .._check_answer_gen;; + *);; + + _-> .._check_answer_gen (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_time;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [99999];; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_time_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_max_customer_waiting_time_for_action_to_finish;; + + _=> nrel_goto:: .._operator5;; + *);; + + _-> .._operator5 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_initiated;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action2;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + + _=> nrel_goto:: .._wait_for_agent_determine_number_of_graphs_for_task_result;; + *);; + + _-> .._wait_for_agent_determine_number_of_graphs_for_task_result (* + _<- sys_wait;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: sc_event_after_generate_outgoing_arc;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + + _=> nrel_goto:: .._find_agent_determine_number_of_graphs_for_task_result;; + *);; + + _-> .._find_agent_determine_number_of_graphs_for_task_result (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_new_action;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _result_determine_number_of_graphs_for_task;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_result;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_then:: .._cycle;; + _=> nrel_else:: .._unsuccess;; + *);; + + _-> .._cycle (* + _<- ifGr;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [0];; + + _=> nrel_then:: .._minus1;; + _=> nrel_else:: .._add_concept_to_result;; + *);; + + _-> .._minus1 (* + _<- contSub;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result_determine_number_of_graphs_for_task;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [1];; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result_determine_number_of_graphs_for_task;; + + _=> nrel_goto:: .._random1;; + *);; + + _-> .._random1 (* + _<- contRandom;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _random_number1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [3];; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [10];; + + + _=> nrel_goto:: .._random2;; + *);; + + _-> .._random2 (* + _<- contRandom;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _random_number2;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [0];; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [100];; + + _=> nrel_goto:: .._operator6;; + *);; + + _-> .._operator6 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _new_action_generate_random_graph;; + + _=> nrel_goto:: .._operator7;; + *);; + + _-> .._operator7 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action_new;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + + _=> nrel_goto:: .._operator8;; + *);; + + _-> .._operator8 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_param1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _random_number1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc1;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_goto:: .._operator9;; + *);; + + _-> .._operator9 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_param2;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _random_number2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_2;; + + _=> nrel_goto:: .._operator_wait_for_gen;; + *);; + + _-> .._operator_wait_for_gen (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_time;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [99999];; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_time_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_max_customer_waiting_time_for_action_to_finish;; + + _=> nrel_goto:: .._action_init_generate_random_graph_answer;; + *);; + + _-> .._action_init_generate_random_graph_answer (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_initiated;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + + _=> nrel_goto:: .._wait_generate_random_graph_answer_result;; + *);; + + _-> .._wait_generate_random_graph_answer_result (* + _<- sys_wait;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: sc_event_after_generate_outgoing_arc;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + + _=> nrel_goto:: .._find_generate_random_graph_answer;; + *);; + + _-> .._find_generate_random_graph_answer (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _new_action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _result_generate_random_graph;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_then:: .._generate_by_template_op1;; + _=> nrel_else:: .._unsuccess;; + *);; + + _-> .._generate_by_template_op1 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_generate_graph_by_template;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_template_action;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _template_action;; + + _=> nrel_goto:: .._generate_by_template_op3;; + *);; + + _-> .._generate_by_template_op3 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _template_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_param;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result_generate_random_graph;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_goto:: .._generate_by_template_op4;; + *);; + + _-> .._generate_by_template_op4 (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _template_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_time;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [99999];; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_time_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_max_customer_waiting_time_for_action_to_finish;; + + _=> nrel_goto:: .._generate_by_template_op5;; + *);; + + _-> .._generate_by_template_op5 (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_initiated;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_template_action;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _template_action;; + + _=> nrel_goto:: .._generate_by_template_op6;; + *);; + + _-> .._generate_by_template_op6 (* + _<- sys_wait;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: sc_event_after_generate_outgoing_arc;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _template_action;; + + _=> nrel_goto:: .._generate_by_template_op7;; + *);; + + _-> .._generate_by_template_op7 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _template_action;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: _arc_to_template_result;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _template_result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc_template_result;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_then:: .._add_result_to_answer;; + _=> nrel_else:: .._unsuccess;; + *);; + + _-> .._add_result_to_answer (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _agent_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_res_el;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _template_result;; + + _=> nrel_goto:: .._cycle;; + *);; + + _-> .._add_concept_to_result (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _agent_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _new_arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _param;; + + _=> nrel_goto:: .._add_aaction_check_student_answer_to_result;; + *);; + + _-> .._add_aaction_check_student_answer_to_result (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _agent_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_action_check_student_answer;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: action_check_student_answer;; + + _=> nrel_goto:: .._add_node_to_result;; + *);; + + _-> .._add_node_to_result (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _agent_result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_node;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _node;; + + _=> nrel_goto:: .._add_arc_to_result;; + *);; + + _-> .._add_arc_to_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_check_student_answer;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_conc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _node;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: _agent_result;; + + _=> nrel_goto:: .._success;; + *);; + + _-> .._success (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_successfully;; + _-> rrel_2:: rrel_assign::rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._return;; + *);; + +*);; + +*];; diff --git a/solver_gt/graph_agents/agent_generate_task_for_student/sc_agent_generate_task_for_student.scs b/solver_gt/graph_agents/agent_generate_task_for_student/sc_agent_generate_task_for_student.scs new file mode 100644 index 0000000..5cef4fe --- /dev/null +++ b/solver_gt/graph_agents/agent_generate_task_for_student/sc_agent_generate_task_for_student.scs @@ -0,0 +1,49 @@ +sc_agent_generate_task_for_student +=> nrel_main_idtf: + [sc-агент для генерации задания для студента] (* <- lang_ru;; *); + [sc-agent for student task generation] (* <- lang_en;; *); +<- abstract_sc_agent; + +=> nrel_primary_initiation_condition: + (sc_event_after_generate_outgoing_arc => action_initiated); +=> nrel_initiation_condition_and_result: + (..sc_agent_generate_task_for_student_initiation_condition => + ..sc_agent_generate_task_for_student_result_condition); + +=> nrel_sc_agent_action_class: + action_generate_task_for_student + (* + <- sc_node_class;; + <= nrel_inclusion: + information_action;; + *); + +<= nrel_sc_agent_key_sc_elements: +{ + action_initiated; + action_generate_task_for_student +}; + +=> nrel_inclusion: + sc_agent_generate_task_for_student_implementation + (* + <- platform_independent_abstract_sc_agent;; + <= nrel_sc_agent_program: + { + agent_generate_task_for_student + };; + -> sc_agent_generate_task_for_student_scp (* <- active_sc_agent;; *);; + *);; + +..sc_agent_generate_task_for_student_initiation_condition += [* + action_generate_task_for_student _-> .._action;; + action_initiated _-> .._action;; + action _-> .._action;; + .._action _-> rrel_1:: .._parameter1;; +*];; + +..sc_agent_generate_task_for_student_result_condition += [* + .._action _=> nrel_result:: .._result;; +*];; diff --git a/solver_gt/graph_agents/agents_gen_random_graph/agent_gen_random_graph.scs b/solver_gt/graph_agents/agents_gen_random_graph/agent_gen_random_graph.scs new file mode 100644 index 0000000..8f3ecde --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/agent_gen_random_graph.scs @@ -0,0 +1,163 @@ +agent_gen_random_graph +=> nrel_main_idtf: + [агентная scp-программа генерации случайного графа] (* <- lang_ru;; *); + [agent scp-program of generating a random graph] (* <- lang_en;; *); +<- scp_program; +<- agent_scp_program; +-> rrel_key_sc_element: .._process1;; + +agent_gen_random_graph = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _event; +_-> rrel_2:: rrel_in:: _input_arc; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._agent_gen_random_graph_operator_start (* + _<- searchElStr3;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _temp;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _input_arc;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_gen_random_graph_operator1;; + *);; + + _-> .._agent_gen_random_graph_operator1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_generate_random_graph;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_then:: .._agent_gen_random_graph_operator_message;; + _=> nrel_else:: .._agent_gen_random_graph_operator_return;; + *);; + + _-> .._agent_gen_random_graph_operator_return (* + _<- return;; + + *);; + + _-> .._agent_gen_random_graph_operator_message (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Start work agent_gen_random_graph];; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_get_arg1;; + *);; + + _-> .._agent_gen_random_graph_operator_get_arg1 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_const_pos_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_link:: _param1;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_const_pos_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_1;; + + _=> nrel_then:: .._agent_gen_random_graph_operator_get_arg2;; + _=> nrel_else:: .._agent_gen_random_graph_operator_unsuccess;; + *);; + + _-> .._agent_gen_random_graph_operator_unsuccess (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_unsuccessfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_return;; + *);; + + _-> .._agent_gen_random_graph_operator_get_arg2 (* + _<- searchElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_const_pos_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_link:: _param2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_const_pos_perm:: _arc2;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: rrel_2;; + + _=> nrel_then:: .._agent_gen_random_graph_operator_check1_par2;; + _=> nrel_else:: .._agent_gen_random_graph_operator_unsuccess;; + *);; + + _-> .._agent_gen_random_graph_operator_check1_par2 (* + _<- ifGr;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _param2;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [-1];; + + _=> nrel_then:: .._agent_gen_random_graph_operator_check2_par2;; + _=> nrel_else:: .._agent_gen_random_graph_operator_print_error1;; + *);; + + _-> .._agent_gen_random_graph_operator_print_error1 (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Error: second argument value must be greater than or equal to 0];; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_unsuccess;; + *);; + + _-> .._agent_gen_random_graph_operator_check2_par2 (* + _<- ifGr;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _param2;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [100];; + + _=> nrel_then:: .._agent_gen_random_graph_operator_print_error2;; + _=> nrel_else:: .._agent_gen_random_graph_call_operator;; + *);; + + _-> .._agent_gen_random_graph_operator_print_error2 (* + _<- printNl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: [Error: second argument value must be 100 or lower];; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_unsuccess;; + *);; + + _-> .._agent_gen_random_graph_call_operator (* + _<- call;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: proc_gen_random_graph;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: .._agent_gen_random_graph_params (* + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _param1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _param2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_struct:: _result;; + *);; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_gen_random_graph_wait_operator;; + *);; + + _-> .._agent_gen_random_graph_wait_operator (* + _<- waitReturn;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _descr;; + + _=> nrel_goto:: .._agent_check_result_value;; + *);; + + _-> .._agent_check_result_value (* + _<- ifVarAssign;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + + _=> nrel_then:: .._agent_gen_random_graph_operator_take_result;; + _=> nrel_else:: .._agent_gen_random_graph_operator_unsuccess;; + *);; + + _-> .._agent_gen_random_graph_operator_take_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _quest;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_common:: rrel_const:: _arc_to_result;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_arc;; + _-> rrel_5:: rrel_fixed:: rrel_scp_const:: nrel_result;; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_success;; + *);; + + _-> .._agent_gen_random_graph_operator_success (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: action_finished_successfully;; + _-> rrel_2:: rrel_assign:: rrel_pos_const_perm:: rrel_scp_var:: _arc1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _quest;; + + _=> nrel_goto:: .._agent_gen_random_graph_operator_return;; + *);; + +*);; + +*];; \ No newline at end of file diff --git a/solver_gt/graph_agents/agents_gen_random_graph/proc/proc_gen_random_graph.scs b/solver_gt/graph_agents/agents_gen_random_graph/proc/proc_gen_random_graph.scs new file mode 100644 index 0000000..4119411 --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/proc/proc_gen_random_graph.scs @@ -0,0 +1,148 @@ +proc_gen_random_graph +=> nrel_main_idtf: + [Программа генерации случайного графа](* <- lang_ru;; *); + [Program for generating random graph](* <- lang_en;; *); +<- scp_program; +-> rrel_key_sc_element: .._process1;; + +proc_gen_random_graph = [* +.._process1 +_<- scp_process; + +_-> rrel_1:: rrel_in:: _number_of_vert; +_-> rrel_2:: rrel_in:: _chance_of_connection; +_-> rrel_3:: rrel_out:: _result; +_<= nrel_decomposition_of_action:: .._actions (* + + _-> rrel_1:: .._create_result (* + _<- genEl;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: rrel_const:: rrel_node:: rrel_struct:: _result;; + + _=> nrel_goto:: .._copy_link_content;; + *);; + + _-> .._copy_link_content (* + _<- varAssign;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _el1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: _number_of_vert;; + + _=> nrel_goto:: .._check_condition;; + *);; + + _-> .._check_condition (* + _<- ifGr;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [0];; + + _=> nrel_then:: .._sub_from_number;; + _=> nrel_else:: .._create_set_with_vertexes;; + *);; + + _-> .._sub_from_number (* + _<- contSub;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _el1;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _el1;; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [1];; + + _=> nrel_goto:: .._gen_vertex;; + *);; + + _-> .._gen_vertex (* + _<- genElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc1;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_node:: rrel_const:: _node_in_graph;; + + _=> nrel_goto:: .._check_condition;; + *);; + + _-> .._create_set_with_vertexes (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: rrel_struct:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_node;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_node:: rrel_const:: _node_in_set1;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: _graph_vertexes1;; + + _=> nrel_goto:: .._operator_take_vertex_from_set1;; + *);; + + _-> .._operator_take_vertex_from_set1 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _graph_vertexes1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: _arc_to_new_node;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _node_in_set1;; + + _=> nrel_then:: .._delete_el_from_set1;; + _=> nrel_else:: .._return_operator;; + *);; + + _-> .._delete_el_from_set1 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _arc_to_new_node;; + + _=> nrel_goto:: .._create_new_set_with_vertexes;; + *);; + + _-> .._create_new_set_with_vertexes (* + _<- searchSetStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: rrel_struct:: _result;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_to_node2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: rrel_node:: rrel_const:: _node_in_set2;; + _-> rrel_set_3:: rrel_assign:: rrel_scp_var:: _graph_vertexes2;; + + _=> nrel_goto:: .._operator_take_vertex_from_set2;; + *);; + + _-> .._operator_take_vertex_from_set2 (* + _<- searchElStr3;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _graph_vertexes2;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: _arc_to_new_node2;; + _-> rrel_3:: rrel_assign:: rrel_scp_var:: _node_in_set2;; + + _=> nrel_then:: .._delete_el_from_set2;; + _=> nrel_else:: .._operator_take_vertex_from_set1;; + *);; + + _-> .._delete_el_from_set2 (* + _<- eraseEl;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _arc_to_new_node2;; + + _=> nrel_goto:: .._gen_random_number;; + *);; + + _-> .._gen_random_number (* + _<- contRandom;; + _-> rrel_1:: rrel_assign:: rrel_scp_var:: _random;; + _-> rrel_2:: rrel_fixed:: rrel_scp_const:: [0];; + _-> rrel_3:: rrel_fixed:: rrel_scp_const:: [100];; + + _=> nrel_goto:: .._check_random_number;; + *);; + + _-> .._check_random_number (* + _<- ifGr;; + _-> rrel_1:: rrel_fixed:: rrel_scp_const:: _chance_of_connection;; + _-> rrel_2:: rrel_fixed:: rrel_scp_var:: _random;; + + _=> nrel_then:: .._add_arc_to_result;; + _=> nrel_else:: .._operator_take_vertex_from_set2;; + *);; + + _-> .._add_arc_to_result (* + _<- genElStr5;; + _-> rrel_1:: rrel_fixed:: rrel_scp_var:: _node_in_set1;; + _-> rrel_2:: rrel_assign:: rrel_scp_var:: rrel_var:: rrel_common:: _arc_between_nodes;; + _-> rrel_3:: rrel_fixed:: rrel_scp_var:: _node_in_set2;; + _-> rrel_4:: rrel_assign:: rrel_scp_var:: rrel_pos_const_perm:: _arc_from_graph;; + _-> rrel_5:: rrel_fixed:: rrel_scp_var:: rrel_struct:: _result;; + + _=> nrel_goto:: .._operator_take_vertex_from_set2;; + *);; + + _-> .._return_operator (* + _<- return;; + *);; + +*);; + +*];; \ No newline at end of file diff --git a/solver_gt/graph_agents/agents_gen_random_graph/sc_agent_gen_random_graph.scs b/solver_gt/graph_agents/agents_gen_random_graph/sc_agent_gen_random_graph.scs new file mode 100644 index 0000000..f64b104 --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/sc_agent_gen_random_graph.scs @@ -0,0 +1,47 @@ +sc_agent_gen_random_graph +=> nrel_main_idtf: + [sc-агент генерации случайного графа](* <- lang_ru;; *); + [sc-agent of generating a random graph](* <- lang_en;; *); +<- abstract_sc_agent; +=> nrel_primary_initiation_condition: + (sc_event_after_generate_outgoing_arc => action_initiated); +=> nrel_initiation_condition_and_result: + (..sc_agent_gen_random_graph_initiation_condition + => ..sc_agent_gen_random_graph_result_condition); +=> nrel_sc_agent_action_class: + action_generate_random_graph + (* + <- sc_node_class;; + <= nrel_inclusion: + information_action;; + *); +<= nrel_sc_agent_key_sc_elements: +{ + action_initiated; + action_generate_random_graph +}; +=> nrel_inclusion: + sc_agent_gen_random_graph_implementation + (* + <- platform_independent_abstract_sc_agent;; + <= nrel_sc_agent_program: + { + agent_gen_random_graph; + proc_gen_random_graph + };; + -> sc_agent_gen_random_graph_scp (* <- active_sc_agent;; *);; + *);; + +..sc_agent_gen_random_graph_initiation_condition += [* + action_generate_random_graph _-> .._action;; + action_initiated _-> .._action;; + action _-> .._action;; + .._action _-> rrel_1:: .._parameter1;; + .._action _-> rrel_2:: .._parameter2;; +*];; + +..sc_agent_gen_random_graph_result_condition += [* + .._action _=> nrel_result:: .._result;; +*];; diff --git a/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test1.gwf b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test1.gwf new file mode 100644 index 0000000..23f0141 --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test1.gwf @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test2.gwf b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test2.gwf new file mode 100644 index 0000000..dedbdce --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test2.gwf @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test3.gwf b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test3.gwf new file mode 100644 index 0000000..31b0316 --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/tests/gen_random_graph_test3.gwf @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/solver_gt/graph_agents/agents_gen_random_graph/ui_menu_gen_random_graph.scs b/solver_gt/graph_agents/agents_gen_random_graph/ui_menu_gen_random_graph.scs new file mode 100644 index 0000000..f9201aa --- /dev/null +++ b/solver_gt/graph_agents/agents_gen_random_graph/ui_menu_gen_random_graph.scs @@ -0,0 +1,19 @@ +ui_menu_gen_random_graph <- ui_user_command_class_atom; ui_user_command_class_view_kb;; +ui_menu_gen_random_graph =>nrel_main_idtf: [Каков сгенерированный граф?] (* <- lang_ru;; *);; +ui_menu_gen_random_graph =>nrel_main_idtf: [What is generated graph looks like?] (* <- lang_en;; *);; +ui_menu_gen_random_graph => ui_nrel_command_template: +[* + action_generate_random_graph _-> ._action_generate_random_graph_instance + (* + _-> rrel_1:: ui_arg_1;; + _-> rrel_2:: ui_arg_2;; + *);; + ._action_generate_random_graph_instance _<- action;; + ._action_generate_random_graph_instance _=> nrel_max_customer_waiting_time_for_action_to_finish:: [30000];; +*];; +ui_menu_gen_random_graph =>ui_nrel_command_lang_template: [Решение задачи] +(* + <- lang_ru;; +*);; +ui_menu_gen_random_graph =>ui_nrel_command_lang_template: [Task solution] +(* <- lang_en;; *);; \ No newline at end of file