Учитывая то, насколько информативны лекции по МОИС, пример курсача может быть очень полезен юным разработчикам сверхинтеллектуальных систем. Можно использовать просто как пример или поставить себе и поменять под свой вариант.
- Склонить репоиторий себе в обитель искусственного интеллекта:
cd ostis
git clone https://github.com/ARtoriouSs/scp-longest-path.git longest_path_searchТеперь в папке с остисом будет ещё папка longest_path_search, она никак не мешает системе, можно её потом удалить. А можно сразу удалить и пойти плакать :(
- Скопировать файлы из longest_path_search/kb себе в kb
rm -rf kb/menu
cp longest_path_search/kb/* kb/Теперь система видит все scs файлы, то есть весь scp код, тесты к нему, пункт меню для запуска scp и тесты для псевдо-csp.
На этом этапе scp штука готова к покарению мира своей интеллектуальностью. Чтобы запустить её нужно включить систему, набрать в поиске proc_run_all_tests, тыкнуть правой кнопкой по верхней строчке и выбрать пункт "запуск scp программы".
Можно ещё включить релиз мод чтобы при запуске в консоли не было кучи мусора. Ходят слухи что с помощью этого мусора можно дебажить scp, но я хз как, так шо можно сделать красиво: открываем sc-machine/CMakeLists.txt, ищем строчку set(CMAKE_BUILD_TYPE Debug), меняем Debug на Release и сохраняем. Далее запускаем sc-machine/scripts/make_all.sh и пересобираем базу. Сё, теперь есть красивый вывод в терминал.
- Теперь псевдо-scp. Тупо делаем всё по инструкции из методы, потом просто копиастим код из longest_path_search/longest_path/wavefindpath.cpp себе, меняем пути и вуаля, теперь оно ищет максимальный путь по тестам которые уже есть в kb.
Псевдо-csp штука готова, теперь можно менять код под себя! Или не менять и надеятся что никто не зметит, тоже норм тема, да.
Если всё это дело установилось и всё таки был выбран вариант "менять под себя", то эта табличка может быть полезной:
| № | Путь | Шо там лежит |
|---|---|---|
| 1 | ./kb/longest_path_search/* | SCP программа |
| 2 | ./kb/scp_tests/* | Тесты для SCP программы |
| 3 | ./kb/pseudo-scp_tests/* | Тесты для псевдо-SCP программы (немного отличаются по формату от SCP тестов) |
| 4 | ./kb/menu/* | UI элементы, в том числе добавляющие пункт меню "Запуск SCP программы" |
| 5 | ./longest_path/* | Псевдо-SCP программа |
| 6 | ./scgs/scp_tests_scgs/* | Тесты для SCP программы в SCg формате, чтобы их можно было посмотреть глязиками в KBE |
| 7 | ./scgs/pseudo-scp_tests_scgs/* | Аналогично предыдущему пункту, но для псевдо-SCP |
- Входная точка SCP программы — proc_run_all_tests, этот элемент нужно искать в поиске на локалхосте, с него же проще начинать разбираться в коде, там куча комментариев, должно быть понятно.
- Задание, которое тут выполнено: поиск максимального пути между двумя узлами ориентированного взвешенного графа. При большом желании за вечер можно переделать почти под любой вариант.
- Этот код — переделанный курсач этого типа, там тоже можно посмотреть чё как.
P.S. Нафига я так запарился?
P.P.S. ИИ норм спецуха!