Вариант 1 (3 человека) Заданы два неориентированных графа G1 и G2 матрицами смежности. Необходимо разработать программу на языке СИ, реализующую сравнение этих графов на предмет установления их изоморфности. Требуется: 1) Провести поиск существующих алгоритмов (методик) проверки графов на изоморфизм; 2) Проанализировать найденные алгоритмы (методики) и выявить их возможные достоинства и недостатки; 3) Каждому участнику группы выбрать один из алгоритмов (методик) и реализовать его в виде функции пользователя на языке СИ. 4) Разработать численные критерии оценки эффективности сравнения графов по найденным алгоритмам (методикам). 5) Реализовать расчет данных критериев в виде функции пользователя (при необходимости) на языке СИ. 6) Разработать общую программу, выполняющую: – сравнение графов по реализованным в виде функций пользователя алгоритмам (методикам); – расчет разработанных критериев оценки эффективности алгоритмов (методик). Программа при этом должна обеспечивать: – ввод матриц смежности графов из текстового файла; – вывод результатов сравнения графов и значений критериев эффективности по разным алгоритмам на экран и в текстовый файл. Вариант 2 (2 человека) Задан граф G1 (может быть как неориентированным, так и ориентированным) матрицей смежности. Необходимо разработать программу на языке СИ, осуществляющую обход данного графа с использованием алгоритмов обхода «в глубину» и «в ширину». Требуется: 1) Проанализировать алгоритмы обхода графов «в глубину» и «в ширину». 2) Каждому участнику группы выбрать один из алгоритмов и реализовать его в виде функции пользователя на языке СИ. 3) Разработать численные критерии оценки эффективности обхода графов по заданным алгоритмам. 4) Реализовать расчет данных критериев в виде функции пользователя (при необходимости) на языке СИ. 5) Разработать общую программу, выполняющую: – обход графа по алгоритмам обхода «в глубину» и «в ширину»; – расчет разработанных критериев оценки эффективности обхода по данным алгоритмам. Программа при этом должна обеспечивать: – ввод матрицы смежности графа из текстового файла; – вывод результатов обхода графа в виде последовательности обходимых вершин и значений критериев эффективности по разным алгоритмам на экран и в текстовый файл. Вариант 3 (3 человека) Задан граф G (может быть как неориентированным, так и ориентированным) матрицей смежности. Необходимо разработать программу на языке СИ, устанавливающую связный данный граф или нет. Требуется: 1) Провести поиск существующих алгоритмов (методик) проверки связности графов; 2) Проанализировать найденные алгоритмы (методики) и выявить их возможные достоинства и недостатки; 3) Каждому участнику группы выбрать один из алгоритмов (методик) и реализовать его в виде функции пользователя на языке СИ. 4) Разработать численные критерии оценки эффективности найденных алгоритмов (методик). 5) Реализовать расчет данных критериев в виде функции пользователя (при необходимости) на языке СИ. 6) Разработать общую программу, выполняющую: – проверку графа на связность по реализованным в виде функций пользователя алгоритмам (методикам); – расчет разработанных критериев оценки эффективности алгоритмов (методик). Программа при этом должна обеспечивать: – ввод матрицы смежности графа из текстового файла; – вывод результатов проверки и значений критериев эффективности по разным алгоритмам на экран и в текстовый файл. Вариант 4 (4 человека) Задан связный граф G (может быть как неориентированным, так и ориентированным) матрицей смежности. Необходимо разработать программу на языке СИ, осуществляющую поиск эйлерова цикла. Требуется: 1) Провести поиск существующих алгоритмов (методик) поиска эйлерова цикла; 2) Проанализировать найденные алгоритмы (методики) и выявить их возможные достоинства и недостатки; 3) Каждому участнику группы выбрать один из алгоритмов (методик) и реализовать его в виде функции пользователя на языке СИ. 4) Разработать численные критерии оценки эффективности найденных алгоритмов (методик). 5) Реализовать расчет данных критериев в виде функции пользователя (при необходимости) на языке СИ. 6) Разработать общую программу, выполняющую: – поиск эйлерова цикла в графе по реализованным в виде функций пользователя алгоритмам (методикам); – расчет разработанных критериев оценки эффективности алгоритмов (методик). Программа при этом должна обеспечивать: – ввод матрицы смежности графа из текстового файла; – вывод результатов поиска в виде последовательности вершин цикла и (если цикла нет, то сообщить об этом) значений критериев эффективности по разным алгоритмам на экран и в текстовый файл. Вариант 5 (3 человека) Задан взвешенный связный граф G (может быть как неориентированным, так и ориентированным) матрицей смежности. Необходимо разработать программу на языке СИ, осуществляющую построение всех возможные остовных деревьев и выбор дерева с минимальным весом. Требуется: 1) Провести поиск существующих алгоритмов (методик) построения остовных деревьев и выбора дерева с минимальным весом; 2) Проанализировать найденные алгоритмы (методики) и выявить их возможные достоинства и недостатки; 3) Каждому участнику группы выбрать один из алгоритмов (методик) и реализовать его в виде функции пользователя на языке СИ. 4) Разработать численные критерии оценки эффективности найденных алгоритмов (методик). 5) Реализовать расчет данных критериев в виде функции пользователя (при необходимости) на языке СИ. 6) Разработать общую программу, выполняющую: – построение остовных деревьев и выбор дерева с минимальным весом по реализованным в виде функций пользователя алгоритмам (методикам); – расчет разработанных критериев оценки эффективности алгоритмов (методик). Программа при этом должна обеспечивать: – ввод матрицы смежности графа из текстового файла; – вывод результатов на экран и в текстовый файл. Построенные остовные деревья вывести в виде матриц смежности.