1. Эвристика AI-Pacman : в Project Pacman 1 агент Pacman будет искать пути из лабиринта, чтобы добраться до определенного пункта назначения и эффективно собирать еду. Общие алгоритмы поиска реализованы для реализации различных сценариев Pacman. Мы используем эту игру как модель, чтобы понять, как работают различные алгоритмы поиска. В этом задании агент Pacman будет находить пути через свой мир-лабиринт, как для достижения определенной локации, так и для эффективного сбора еды... Это задание реализовано в python3.
2. Bit-Torrent-Mechanism : программа загружает все различные фрагменты файла с разных узлов, объединяет их и сохраняет файл в нашем ноутбуке/локальном каталоге. Цель этого задания — понять механизм BitTorrent. BitTorrent получает торрент-файл, содержащий список узлов, на которых размещен файл, и загружает разные фрагменты файла с разных узлов. Используемое здесь программное обеспечение — это среда Python3 и Linux.
3. Сети клиент-сервер : сервер прослушивает порт, серверная программа запускается с номером порта в качестве входных данных, клиент устанавливает TCP-соединение, а сервер отправляет файл клиенту. Помимо работы в качестве сервера, сервер также может действовать как прокси. И клиентская, и серверная программа реализованы на Python3 и используют программирование сокетов и многопоточность для поддержки одновременных соединений на сервере.
4. Прототип фиктивной системы управления авиакомпанией . В этом проекте мы разработали фиктивную систему управления авиакомпанией. которая хранит и извлекает данные, относящиеся к аэропортам, авиакомпаниям и рейсам. В основном мотивацией выбора этой идеи была разработка системы, которая была бы визуально привлекательный и простой в использовании. В этой системе есть два типа пользователей: 1) Клиенты и 2) Страница администратора, и администратор предоставил доступ для изменения новых рейсов и т. д. Основным источником данных, которые мы использовали в этом проекте, является набор данных только за 2015 год, который можно найти на сайте Программное обеспечение Kaggle, используемое в этом проекте, представляет собой рабочую среду MY SQL для запросов, веб-инфраструктуру Python, которая предоставляет полезные инструменты и функции, позволяющие создавать веб-приложения и HTML для веб-страницы внешнего интерфейса.
5. Оценка плотности трафика-opencv . В основном этот код состоит из двух частей. Основное, что нам нужно для мониторинга трафика, — это изображение с камеры, которая размещена на реальной дороге, но мы не можем гарантировать, что она расположена в хорошем положении, например, на дороге. изображение, которое нужно наблюдать, находится в идеальном прямоугольнике, и камера получает вид сверху. На изображении может быть множество других вещей, которые необходимо устранить для эффективной работы алгоритма. OpenCV лучше всего работает для прямоугольных рамок, поэтому для таких задач, как оценка плотности трафика, очень важно сначала исправить угол камеры в программном обеспечении и обрезать изображение, чтобы исключить лишние элементы. Один из репозиториев содержит код коррекции угла камеры и обрезки кадра.
Подзадача 2: изображение, извлеченное из видео, которое используется в качестве фона. В дальнейшей части был выполнен анализ компромисса во время выполнения утилиты.
6. Проект облачных вычислений : объясняем просто: проект был посвящен созданию инструмента, который помогает людям, использующим виртуальные машины. Виртуальные машины подобны компьютерам, работающим внутри другого компьютера. Они полезны, поскольку позволяют людям запускать разные операционные системы или программное обеспечение без необходимости использования для каждой из них отдельного компьютера.
Созданный нами инструмент назывался API моментальных снимков. Это похоже на камеру, которая фотографирует виртуальную машину в определенный момент времени. Это изображение называется моментальным снимком. Снимки полезны, поскольку позволяют людям сохранять состояние виртуальной машины и возвращаться к ней позже. Например, если кто-то работает над проектом на виртуальной машине и хочет сделать перерыв, он может сделать снимок и вернуться к нему позже, не теряя при этом прогресса.
Для создания API моментальных снимков мы использовали язык программирования Rust. Rust — хороший язык для такого рода проектов, поскольку он безопасен и быстр. Это означает, что в API меньше вероятность наличия ошибок или проблем с безопасностью, и он работает быстро.
Мы разделили проект на пять основных этапов. Первый этап заключался в создании базовой виртуальной машины, которую мы могли бы использовать для тестирования. На втором этапе речь шла о добавлении функции, позволяющей приостанавливать и возобновлять работу виртуальной машины. Третий этап заключался в преобразовании API моментальных снимков в меньшую по размеру и более эффективную программу. Четвертый этап заключался в создании веб-сервера, на котором можно было бы одновременно запускать несколько виртуальных машин. Заключительный этап заключался в повышении эффективности API моментальных снимков за счет использования метода, называемого дедупликацией. Это означает, что если два снимка очень похожи, нам нужно сохранить только те части, которые отличаются.
Созданный нами API моментальных снимков использовался в разных частях проекта. Например, балансировщик нагрузки использовал его для перемещения виртуальных машин, внешний интерфейс использовал его для создания новых виртуальных машин из базового образа, а система защиты от мошенничества использовала его для отслеживания того, кто использует виртуальные машины.
В целом проект удался. Мы выполнили все наши задачи раньше установленного срока и создали безопасный, быстрый и эффективный API для создания моментальных снимков. Для получения дополнительной информации загляните в репозитории.