Skip to content

AAOleynikov/SimCPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimCPP

Данный проект представляет собой решение задачи моделирования системы обработки заявок с использованием дискретно-событийного подхода.

Описание системы

В систему поступают заявки, время между приходом соседних заявок распределено по экспоненциальному закону со средним значением R₁ секунд. Обработка заявок выполняется в 2 стадии:

  1. Рабочие типа 1:

    • Могут выполнять только первый тип работ.
    • Время выполнения распределено экспоненциально со средним значением (R₁ + G₁ + B₁) секунд.
  2. Рабочие типа 2:

    • Могут выполнять только второй тип работ.
    • Время выполнения распределено экспоненциально со средним значением (R₂ + G₂ + B₂) секунд.
  3. Рабочие типа 3:

    • Могут выполнять оба типа работ.
    • Время выполнения распределено экспоненциально:
      • Для первого типа работ: (R₃ + G₃ + B₃ + G₁) секунд.
      • Для второго типа работ: (R₃ + G₃ + B₃ + B₁) секунд.
    • Рабочие типа 3 задействуются только тогда, когда образуются очереди, при этом они выбирают для исполнения заявку из более длинной очереди.

Требования к модели

Требуется разработать дискретно-событийную имитационную модель, которая должна:

  • Оценивать показатели загруженности системы.
  • Формировать лог моделирования, иллюстрирующий продвижение заявок в цепях событий FEC (Future Event Chain) и CEC (Current Event Chain).

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

Вариант 12

Параметр Значение
R₁ 6
R₁ + G₁ + B₁ 26
R₂ + G₂ + B₂ 24
R₃ + G₃ + B₃ + G₁ 30
R₃ + G₃ + B₃ + B₁ 27

Задачи

  1. Разработать модель, учитывающую описанные выше параметры и требования.
  2. Провести имитационное моделирование для оценки загруженности системы.
  3. Определить минимальное количество рабочих каждого типа для выполнения условий задачи.
  4. Сформировать лог моделирования для анализа цепей событий.

Ожидаемые результаты

  • Модель, позволяющая оценить загруженность системы.
  • Лог моделирования, иллюстрирующий продвижение заявок.
  • Рекомендации по минимальному количеству рабочих каждого типа для выполнения условий задачи.

Результаты выполнения

В результате работы были достигнуты следующие результаты:

  1. Разработка программы на GPSS World:

    • Была создана имитационная модель на языке GPSS World, которая позволяет анализировать работу системы обработки заявок с учетом заданных параметров.
    • Модель включает в себя:
      • Генерацию заявок с экспоненциальным распределением времени между поступлениями.
      • Обработку заявок на двух стадиях с использованием рабочих разных типов.
      • Учет очередей и динамическое распределение задач между рабочими типа 3.
  2. Разработка библиотеки SimCPP:

    • На языке программирования C++ была разработана библиотека SimCPP, которая реализует функциональность операторов среды GPSS World.
    • Библиотека включает:
      • Моделирование экспоненциального распределения времени.
      • Управление очередями и обработку заявок.
      • Логирование событий для анализа цепей FEC (Future Event Chain) и CEC (Current Event Chain).
  3. Тестирование и верификация:

    • Проведено тестирование разработанной модели и библиотеки.
    • Выявлено соответствие результатов моделирования в GPSS World и SimCPP.
    • Подтверждена корректность прогнозирования поведения системы.
  4. Анализ результатов:

    • На основе моделирования определено минимальное количество рабочих каждого типа, необходимое для обеспечения среднего числа заявок в очередях не более 2.
    • Полученные данные позволяют оптимизировать распределение ресурсов в системе.
  5. Лог моделирования:

    • Сформирован подробный лог, который иллюстрирует:
      • Поступление заявок.
      • Их обработку на разных стадиях.
      • Динамику изменения очередей.
    • Лог позволяет анализировать работу системы и выявлять узкие места.

Итоги

  • Разработанная программа на GPSS World и библиотека SimCPP демонстрируют высокую степень соответствия в результатах моделирования.
  • Модель позволяет эффективно оценивать загруженность системы и оптимизировать распределение рабочих ресурсов.
  • Результаты работы могут быть использованы для дальнейшего анализа и улучшения системы обработки заявок.

Компиляция и запуск проекта

Для компиляции и запуска проекта выполните следующие шаги:

  1. Перейдите в директорию с исходным кодом:

    cd src
  2. Скомпилируйте проект:

    g++ pr5.cpp -o pr5
  3. Запустите скомпилированный проект: После успешной компиляции запустите программу:

    ./pr5

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages