Применение инструментальных программных средств при изучении алгоритма Форда-Фалкерсона

Необходимость применения инструментальных программных средств при изучении алгоритмов дискретной математики. Иллюстрация пошагового процесса решения задачи о максимальном потоке. Описание всех этапов взаимодействия программного средства и пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 10.08.2018
Размер файла 474,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ФГБОУ ВО «Орловский государственный университет имени И.С. Тургенева»

Применение инструментальных программных средств при изучении алгоритма Форда-Фалкерсона

Донцова Юлия Андреевна

магистрант, физико-математический факультет

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

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

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

Дискретная математика занимается изучением дискретных структур. Одним из основных предметов ее изучения являются графы - абстрактные математические модели, представляющие собой совокупность связанных объектов [1, с. 267].

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

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

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

Рассмотрим более подробно постановку задачи о нахождении максимального потока в сети. Дана сеть, представляющая собой граф - некоторый набор вершин, связанных между собой дугами. Каждой дуге определен свой собственный вес, который характеризует количество потока, который можно пропустить по этой дуге. Требуется определить значение максимального потока в сети, который можно пропустить из источника в сток и его распределение по дугам [2, с. 236].

Наиболее эффективным алгоритмом для решения данной задачи является алгоритм Форда-Фалкерсона. Основная его идея заключается в итерационном построении максимального потока путем поиска на каждом шаге увеличивающей цепи, то есть последовательности дуг, поток по которым можно увеличить. Данный алгоритм применим к любой транспортной сети [3, с.346].

В разработанном программном обеспечении не только реализован достаточно сложный алгоритм. Приложение адаптировано для удобной эксплуатации самым неумелым пользователем.

На рисунке 1 представлен вид стартового окна приложения.

Рисунок 1. Стартовое окно приложения

Здесь пользователю предлагается ввести количество вершин исходного графа. После нажатия кнопки «ОК», приложение построит матрицу nЧn, где n - значение введенное пользователем (Рисунок 2).

Рисунок 2. Пустая матрица исходных данных

Изначально в ячейках матрицы стоят нули. Все ячейки изменяемы, и пользователь может заполнить матрицу на свое усмотрение.

Следует отметить, что наиболее удобный способ задания графа - матрица пропускных способностей сети. Она представляет собой матрицу смежности, где на пересечении i-той вершины и j-того столбца стоит значение потока из вершины i в вершину j. Соответственно, если дуги из i в j не существует, то значение пропускной способности равно нулю.

В случае если пользователь не хочет вводить данные вручную, либо если данных очень много и их ввод займет много времени, можно загрузить готовую матрицу из файла, воспользовавшись кнопкой в левом верхнем углу окна приложения (Рисунок 3).

Рисунок 3. Кнопка «Open»

Для того чтобы ввод данных происходил корректно, необходимо чтобы файл имел определенную структуру. Она достаточно проста - необходимо, чтобы элементы столбцов были разделены пробелами, а строки кодом переводы строки (однократным enter) и файл имел расширение *.txt* (Рис. 4).

Рисунок 4. Вид файла исходных данных

После выбора файла и нажатия кнопки «Открыть», матрица интегрируется в приложение (Рис. 5).

Рисунок 5. Загруженная матрица исходных данных

Для того чтобы запустить процесс решения задачи, пользователю необходимо нажать кнопку «Count up». Сначала приложение осуществляет обрисовку исходного графа. Исходный граф сохраняется в файл «digraph.png» (Рис. 6).

Рисунок 6. Исходный граф (“digraph.png”)

Программа сама определяет наилучшее расположение вершин на плоскости, чтобы рисунок выглядел как можно менее громоздким и запутанным.

Рассмотри процесс итерационного построения максимального потока. На рисунке 7 представлены все этапы решения задачи. Красными линиями отмечены уже насыщенные дуги, которые исчерпали свой лимит потока, зелеными - дуги, по которым был пропущен поток, но он не является для них максимальным.

Рисунок 7. Пошаговое решение задачи

Конечный граф, с найденным максимальным потоком сохраняется в файл «maxdigraph.png». Помимо визуализации решения пользователю так же выводится значение найденного максимального потока (Рисунок 8).

Рисунок 8. Вывод результатов для пользователя

Как можно заметить из рисунка 8, значения в таблице изменились - теперь это матрица распределения максимального потока в сети. Внизу так же указывается значение найденного максимального потока.

Помимо своей наглядности разработанное программное обеспечение обладает еще одним полезным свойством - высокой скоростью обработки данных. Это особенно полезно, когда речь идет о решении задач с большим объемом исходных данных. Безусловно, увеличение размерности графа сказывается на времени, которое затрачивается на подсчеты. Однако, разработанное программное обеспечение, позволяет значительно сократить время обработки информации.

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

Библиографический список

инструментальный программный дискретный пользователь

1. Иванов Б.Н. Дискретная математика. Алгоритмы и программы. Расширенный курс. - М: Известия, 2011. - 512 с.

2. Окулов С.М. Дискретная математика. Теория и практика решения задач по информатике: учебное пособие / С.М. Окулов. - 2 - е изд. - М.: БИНОМ. Лаборатория знаний, 2012. - 422 с.

3. Новиков Ф.А. Дискретная математика для программистов. Учебник для вузов. 2-е изд. - СПб.: Питер, 2007. - 364 с.

Размещено на Allbest.ru


Подобные документы

  • Классификация служебных программных средств. Файловая структура операционных систем. Основы графического интерфейса пользователя Windows XX. Анализ алгоритмов решения задач. Описание процесса разработки программного обеспечения и результатов работы.

    курсовая работа [2,4 M], добавлен 14.11.2016

  • Проектирование вариантов использования приложения. Анализ существующей версии приложения. Обоснование выбора инструментальных программных средств. Проектирование интерфейса пользователя. Адаптация под мобильные устройства. Описание программного продукта.

    курсовая работа [2,8 M], добавлен 25.06.2017

  • История создания алгоритма Форда-Фалкерсона, краткое описание его алгоритма, особенности работы, анализ сложности. Создание распараллеленного варианта алгоритма и его краткое описание. Основные характеристики теории графов, специфика, пути и маршруты.

    контрольная работа [246,3 K], добавлен 06.08.2013

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

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

    курсовая работа [1,6 M], добавлен 12.12.2011

  • Программное обеспечение как продукт. Основные характеристик качества программного средства. Основные понятия и показатели надежности программных средств. Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств.

    лекция [370,1 K], добавлен 22.03.2014

  • Организационная структура предприятия. Функциональные задачи, подлежащие автоматизации. Выбор технических, программных средств и метода проектирования. Описание алгоритма решения задачи. Разработка технологического обеспечения. Инструкция пользователя.

    дипломная работа [5,3 M], добавлен 31.03.2009

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

    контрольная работа [257,5 K], добавлен 01.05.2015

  • Информатизация России. Рынок программных средств. Основные задачи стандартизации, сертификации и лицензирования в сфере информатизации. Совокупность инженерных методов и средств создания программного обеспечения. Жизненный цикл программного обеспечения.

    лекция [352,8 K], добавлен 09.03.2009

  • Обоснование выбора метода проектирования и инструментальных средств для разработки программного средства и базы данных. Требования к эргономике и технической эстетике. Разработка алгоритмов приложения. Руководство пользователя. Безопасность труда.

    дипломная работа [2,9 M], добавлен 17.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.