|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|
Анализ графа29.02.2016, 15:18. Показов 651. Ответов 11
Метки нет (Все метки)
Всем привет. В ходе решения одной задачи появилась небольшая проблема.
У нас имеется граф представленный матрицей смежности (Вообще говоря граф отображает цепь элементов).В графе имеется две точки In - входа, Out - выхода, а также некоторое количество элементов Ei(вершины), соединенных последовательно или параллельно. Элементы Ei обладают некоторой характеристикой pi. При последовательном соединение нескольких элементов суммарная характеристика участка цепи P вычисляется как P = p1 * p2 * ... * pk. При параллельном как P = 1 - (1 - p1) * (1 - p2) *...* (1 - pk). Необходимо собственно посчитать P для всей цепи начиная с элемента In, заканчивая Out (Для In и Out p можно принять за 1). Первая мысль которая пришла в голову вычленять из графа цепочки последовательных или параллельных элементарных соединений, просчитывать для них P и тем самым упрощать вид графа заменяя просчитанные цепочки единичными элементами. Но сложность такого метода неприемлемо велика. Вторая мысль заключалась в построении по графу выражения типа: P = E1(*)[E3(+)E4](*)E6(+)E2(*)E5, где (*) - последовательное соединение, а (+) параллельное и последующем его парсинге, с помощью сортировочной станции. Но тут проблемы с понимание реализации. Если кто-то уже сталкивался с подобным, прошу не поленится и помочь, изложив хотя бы наброски алгоритма.
0
|
|
| 29.02.2016, 15:18 | |
|
Ответы с готовыми решениями:
11
Нахождение фактора графа и остова графа для некоторого произвольного графа (5-6 вершин) Создание графа по матрице и поиск кратчайшего пути из одного графа в другой По заданной матрице смежности простого графа построить каркас этого графа с использованием поиска в ширину |
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
|
| 29.02.2016, 16:54 | |
|
я не понял, у вас граф или последовательность элементов?
нужны примеры ваших графов
0
|
|
|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|
| 29.02.2016, 17:06 [ТС] | |
|
Как я уже писал, работаем с матрицей смежности. Типичное представление графа может быть таким:
IN | 1 2 1 | 3 4 2 | 5 3 | 6 4 | 6 5 | OUT 6 | OUT По сути алгоритм должен выполнять расчет надежности цепи: https://ru.wikipedia.org/wiki/... 1%82%D0%B8
0
|
|
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
|
| 29.02.2016, 20:04 | |
|
Для этого примера надежность такая?
1-(1-P2P5)(1-P1(1-(1-P3)(1-P4))P6) Добавлено через 18 минут Но что-то не могу понять, как посчитать надежность, если в вашем графе добавить ребро 5-6
0
|
|
|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|
| 01.03.2016, 11:09 [ТС] | |
|
Для моего примера формула указана верно. Теперь хотелось бы услышать, как автоматизировать просчет для произвольной цепи.
PS Как я понимаю ребро 5-6 добавлять нельзя.
0
|
|
|
|
|
| 01.03.2016, 11:43 | |
|
Задачу бы по-строже сформулировать.
Пусть, скажем, подан на вход куб, где противоположные две вершины In и Out. In | 1 2 3 1 | 4 5 2 | 5 6 3 | 6 4 4 5 6 | Out Каков ответ?
0
|
|
|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|
| 01.03.2016, 12:16 [ТС] | |
|
Согласен нужна более строгая формализация. Думаю достаточным условием будет следующее утверждение: цепь поддается расчету, тогда и только тогда когда после конечного числа элементарных преобразований, ее можно свести к цепи из одного элемента. Под элементарными преобразованиями понимаются 2 следующих действия:
а) нахождение двух элементов i, j (строго не In или Out) для которых участок матрицы смежности выглядит так: A | i i | j j | B Замена его на A | (i,j) (i,j) | B И пересчет p для (i,j). б) нахождение двух элементов i, j для которых участок матрицы смежности выглядит так: A | i j l1 l2 l3 ... lN i | B j | B и замена его на A | (i,j) l1 l2 ... lN (i,j) | B пересчет p для (i,j). С помощью такого определения я изначально и собирался писать алгоритм, но асимптотика, как я уже упоминал будет неприемлемой.
0
|
|
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
|
| 01.03.2016, 12:19 | |
|
По-моему, тут должно быть ограничение вроде такого:
если в узел x сигнал поступает из нескольких узлов, то эти несколько узлов не могут слать сигнал больше никуда, кроме узла x
0
|
|
|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|
| 01.03.2016, 12:24 [ТС] | |
|
Да скорее всего это необходимое условие, но вот о достаточности не уверен. Полагаю, что предложенная мной формализация нагляднее отражает суть процесса.
0
|
|
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
||||||
| 02.03.2016, 16:51 | ||||||
|
Посидел пару дней, вот, что получилось (на Lua)
1
|
||||||
|
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 10
|
|||||||||||
| 02.03.2016, 18:41 [ТС] | |||||||||||
|
Спасибо, за проделанную работу. Сейчас изучаю ваш алгоритм и пока некоторые участки код не очень понятны (ввиду незнания синтаксиса, судя по всему). Буду рад, если поясните:
1) Тут непонятно почему происходит досрочный выход из функции и почему return возвращает 2 аргумента
0
|
|||||||||||
|
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
|
||||||||
| 03.03.2016, 09:17 | ||||||||
|
В Lua можно возвращать несколько аргументов
0
|
||||||||
| 03.03.2016, 09:17 | |
|
Помогаю со студенческими работами здесь
12
Выполнить обход в ширину неориентрованного графа, начиная с заданной вершины. Способ представления графа – матрица инциденций Обход графа в ширину для определения всех вершин графа, находящихся на фиксированном расстоянии от данной вершины Анализ ценных бумаг (построить Гистограмму и провести анализ) Анализ сетевого трафика используя регрессионный анализ Найти все вершины графа, к которым существует путь заданной длины от выделенной вершины графа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|