Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача оптимизации / 25 сообщений из 38, страница 1 из 2
13.10.2021, 17:05
    #40104178
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
Есть простая и специфичная виртуалная машина (Для проверки регекспов). Она умеет только простые операции, безусловный переход и операцию деления процесса. И есть некоторый код для этой машины, который имеет одну точку входа и несколко точек выхода. Если один из процессов достигает любой точки выхода то все процессы заверщаются. Заранее известно что код может быть не оптимальным. Задача этот код оптимизировать. Очевидно что если некоторые команды никогда не выполняются их можно удалить. Но естъ ещё бесконечные циклы. Так-как они не видут к результату их тоже нужно оптимизировать.
Задачу можно рассматривать на ориентированном графе с заданной точкой старта и несколькими точками заверщения. Нужно наити все пути ведущие из точки начала в любую точку заверщения. Все отрези которые не входят в эти "пути" можно исключить.
Вот собственно ищю идею быстрого алгоритма.
...
Рейтинг: 0 / 0
13.10.2021, 18:41
    #40104197
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

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

группу регулярок довольно легко можно объединить в 1, тут всё от задачи зависит

используемые для оптимизации алгоритмы:
переход от НКА к ДКА - Subset construction
для минимизации ДКА, как вариант, есть простой алгоритм - http://sovietov.com/txt/minfa/minfa.html] Алгоритм Бржозовско
...
Рейтинг: 0 / 0
13.10.2021, 18:52
    #40104199
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
А почему там - бесконечные циклы?
...
Рейтинг: 0 / 0
13.10.2021, 20:54
    #40104227
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan),

Я не вижу как алгоритм минимизации ДКА применим к изложенной задаче. Задачи то совершенно разные.
...
Рейтинг: 0 / 0
13.10.2021, 21:10
    #40104229
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

вот, для начала, и сформулируйте задачу

автор И есть некоторый код для этой машины, который имеет одну точку входа и несколко точек выхода.
есть State, есть множественные переходы, если предположить что есть ещё условия переходов, то если мой хрустальный шар не сломался, то это и есть НКА
а значит из него можно сделать ДКА
...
Рейтинг: 0 / 0
13.10.2021, 21:24
    #40104231
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

если действия вашей "машины" можно описать наподобие этого кода
то ваш "специфичный код" и есть скомпилированные регулярки
...
Рейтинг: 0 / 0
13.10.2021, 22:53
    #40104243
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan)
_дух_,
вот, для начала, и сформулируйте задачу


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

Вот моя задача. Всё остальное - так немного лирики.
...
Рейтинг: 0 / 0
13.10.2021, 23:12
    #40104245
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

Алгоритм Бржозовско это и есть то, что доктор прописал
...
Рейтинг: 0 / 0
14.10.2021, 03:43
    #40104262
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
[quot _дух_#22383373]Задачу можно рассматривать на ориентированном графе с заданной точкой старта и несколькими точками заверщения.У графов не бывает точек старта и точек завершения. Вообще не бывает.
То о чем ты думаешь это не граф а "конечный автомат". В графическом выражении конечный автомат похож на граф, но только похож.
Регулярные выражения можно с легкостью представить в виде "недетерменированного конечного автомата" (НКА), любой НКА можно превратить в "детерминированный конечный автомат" (ДКА). На любой ДКА можно натравить алгоритмы Мили, Мура или уже упомянутого Бржозовского.

_дух_
Вот моя задача. Всё остальное - так немного лирики.
В "лирике" часто и кроется решение задачи. Не надо ее забывать.
...
Рейтинг: 0 / 0
14.10.2021, 08:14
    #40104281
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
White Owl
пропущено...
У графов не бывает точек старта и точек завершения. Вообще не бывает.

Но нам ничто не мешает взять граф и сказать что одна из вершин точка старта или начала пути и также задать набор вершин - точек завершения или конечных точек пути. Такая постановка задачи корекектна.
...
Рейтинг: 0 / 0
14.10.2021, 08:23
    #40104285
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan)
_дух_,

Алгоритм Бржозовско это и есть то, что доктор прописал

К такому доктору я бы не обращался. Это разные задачи.
Давайте на простом примере покажу.
Пусть граф задан таким образом:

Код: python
1.
[[1],[2],[3],FINISH]



Какой результат нам даст Алгоритм Бржозовско?
...
Рейтинг: 0 / 0
14.10.2021, 08:24
    #40104286
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

тынц - оч хорошая статья, на пальцах, так сказать
...
Рейтинг: 0 / 0
14.10.2021, 09:56
    #40104308
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan),

Я рад что вы знаете методы оптимизации ДКА но я повторяю - это не моя задача.
во первых не это не ДКА, во вторых мне ненужно уменьшать количество состояний.
...
Рейтинг: 0 / 0
14.10.2021, 10:07
    #40104309
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_
мне ненужно уменьшать количество состояний.
после выкидывания части ребер (переходов), некоторые вершины (состояния) могут быть недостижимы из старта. Их всё равно нужно оставить?
...
Рейтинг: 0 / 0
14.10.2021, 10:21
    #40104315
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
Имя пользователя1
после выкидывания части ребер (переходов), некоторые вершины (состояния) могут быть недостижимы из старта. Их всё равно нужно оставить?

Рёбра - это действия виртуальной машины. Состояния - не материальны. Просто число.
...
Рейтинг: 0 / 0
14.10.2021, 10:34
    #40104320
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
Имя пользователя1
_дух_
мне ненужно уменьшать количество состояний.
после выкидывания части ребер (переходов), некоторые вершины (состояния) могут быть недостижимы из старта. Их всё равно нужно оставить?

В моём случае "выкидывание рёбер" - это уже последствия. Достаточно наити все пути ведущие из точки начала в любую точку завершения.
...
Рейтинг: 0 / 0
14.10.2021, 12:50
    #40104356
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_
Имя пользователя1
пропущено...
после выкидывания части ребер (переходов), некоторые вершины (состояния) могут быть недостижимы из старта. Их всё равно нужно оставить?

В моём случае "выкидывание рёбер" - это уже последствия. Достаточно наити все пути ведущие из точки начала в любую точку завершения.

Вроде стандартный алгоритм. Поиск минимального дерева. Или остовного.
...
Рейтинг: 0 / 0
14.10.2021, 13:25
    #40104373
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_
kealon(Ruslan)
_дух_,

Алгоритм Бржозовско это и есть то, что доктор прописал

К такому доктору я бы не обращался. Это разные задачи.
Давайте на простом примере покажу.
Пусть граф задан таким образом:

Код: python
1.
[[1],[2],[3],FINISH]



Какой результат нам даст Алгоритм Бржозовско?

FINISH и даст, переходы то у вас безусловные
а какой результат вы ожидаете?
...
Рейтинг: 0 / 0
14.10.2021, 13:52
    #40104384
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan),

я как бы издалека намекал что это граф - не автомат.
...
Рейтинг: 0 / 0
14.10.2021, 13:54
    #40104386
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
А переходы между состояниями автомата - граф.
...
Рейтинг: 0 / 0
14.10.2021, 15:05
    #40104426
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_
kealon(Ruslan),

я как бы издалека намекал что это граф - не автомат.
ваши намёки интереса не представляют, вы же доктору не говорите "догодайся сам, а я посижу" ? вот на форуме тоже самое.
мы пока от вас даже внятного условия задачи не видим, как же вам помочь то?
...
Рейтинг: 0 / 0
14.10.2021, 15:52
    #40104473
_дух_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
kealon(Ruslan)
мы пока от вас даже внятного условия задачи не видим, как же вам помочь то?


Для вас третий раз повторю:
Задачу можно рассматривать на ориентированном графе с заданной точкой старта и несколькими точками заверщения. Нужно наити все пути ведущие из точки начала в любую точку завершения.

Если вам что-то непонятно задавайте вопрос.
Подозреваю студент до вопроса не созрел но про вшей билет выучил.
...
Рейтинг: 0 / 0
14.10.2021, 16:05
    #40104479
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_,

я вам и задал вопрос

22383615

а ответ на ваш вопрос тот же самый
22383380
только чуть упростить его: "отжиг" с выходов, потом отжиг со входа по оставшемся переходам
...
Рейтинг: 0 / 0
15.10.2021, 14:02
    #40104733
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
_дух_
Задачу можно рассматривать на ориентированном графе с заданной точкой старта и несколькими точками заверщения. Нужно наити все пути ведущие из точки начала в любую точку завершения.

Форд-Фалкерсон и его модификации. Ищет кратчайшие пути из заданной вершины графа в любую другую. Рекомендую.
...
Рейтинг: 0 / 0
15.10.2021, 15:42
    #40104757
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача оптимизации
Dimitry Sibiryakov
Ищет кратчайшие пути из заданной вершины графа в любую другую.
как я понял, нужны все пути в заданные вершины, а не только кратчайшие.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача оптимизации / 25 сообщений из 38, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]