91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
1

По заданной конфигурации сети и поездов определить возникнет ли столкновение

13.12.2011, 23:47. Показов 2931. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Железнодорожная сеть задана набором станций. Между некоторыми станциями проложены пути. Длина путей задается целыми числами. Пути двунаправленные одноколейные ( Поезда идущие навстречу друг другу сталкиваются ). Станция - точка ( поезда оказавшиеся на станции в один момент времени, сталкиваются ). Маршруты поездов заданы списком станций, через которые они проезжают. Скорости одинаковые( скажем равны единице ). Поезда начинают движение одновременно. Последостижения конечной станции поезд исчезает. Поезд представляет собой точку.

Задача: По заданной конфигурации сети и поездов определить возникнет ли столкновение

______________________________________________________________

Единственная идея которая у меня возникает в качестве реализации алгоритма, - прогнать эту "сеть" в режиме симуляции с шагом в 0.5 часов, и если совпадут "координаты" поездов ( станция 1, станция 2, точка на линии от станции 1 к станции 2 ) , то считать что авария произошла.

Что-то мне подсказывает, что это - хреновое решение.
Хотелось бы услышать другие идеи по реализации ( код не обязателен ).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2011, 23:47
Ответы с готовыми решениями:

Столкновение 2х поездов
Здравствуйте, проблема в том, что в какой-то момент после запуска два состава сталкиваются на...

Дан массив данных о расписании поездов. Определить, какие из поездов стоят сейчас на станции.
Дан массив данных о расписании поездов: номер поезда, название (откуда-куда, например,...

Дан файл, содержащий сведения об отправлении поездов дальнего следования с вокзала. Вывести номера поездов
Может кому-нибудь пригодиться, так как на форум заходят многие за помощь. и так мое, не очень...

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

11
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
14.12.2011, 09:23 2
не понял что за шаг 0,5 часов.
Я бы для каждого скписка станций(маршрута каждого поезда) посчитал время прибытия.
например
поезд A: 0 - станция 1, 9 - станция 2, 15 - станция 3
поезд B: 0 - станция 5, 6 - станция 3, 12 - станция 2, 21 - станция 1

далее смотрим интервалы движения, но не получасовые, или какие то другие, а те которые соответствуют граничным значениям, для каждого шага поездов.
то есть нужные интервалы:
[0..6], [6..9], [9..12], [12..15], [15..21].

поезд A:
[0..6]0⇒0:2
[6..9]0:2⇒2
[9..12]2⇒2:3
[12..15]2:3⇒3
поезд B:
[0..6]5⇒3
[6..9]3⇒2:3
[9..12]2:3⇒2
[12..15]2⇒1

ищем граничные целые, и встречные маршруты.
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
14.12.2011, 12:42  [ТС] 3
не понял что за шаг 0,5 часов.
Учитывая что скорость поездов одинакова и равна единице скорость их сближения будет 2 крокодила тогда если запустить симуляцию с шагом 0,5 попугаев, то ( помним что все расстояния целые ) если должна произойти авария то поезда в какой то момент времени будут находится в одной точке ( Впрочем это решение явно неоптимально и являет собой пример костылестроения ).

Добавлено через 8 минут
Т.е. ты предлагаешь сначала для каждого поезда вычислить время прбытия для каждой станции в маршруте и дальше что?
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.12.2011, 15:03 4
Цитата Сообщение от KarmaMaker Посмотреть сообщение
Учитывая что скорость поездов одинакова
Если ты рассчитываешь жизнеспособную систему моделирования, то именно на этой фразе у тебя произойдет крах. Скорость поездов даже в пределах одного перегона может меняться, кроме того она зависит от многих факторов, на одном и том же участке пути разные поезда могут двигаться с разной скоростью. Также следует учитывать простои на "скрещениях", что автоматически вводит систему приоритета составов. В данном случае я бы порекомендовал тебе найти толкового поездного диспетчера и пообщаться с ним на эту тему.

Если же у тебя простая учебная задача (из точек А и Б навстречу друг другу с одинаковой скоростью вышли 2 поезда. Найти точку столкновения), то она и выеденного яйца не стоит. Я тебе без всяких алгоритмов скажу, столкнуться они ровно в середине отрезка. Зная скорость движения, нужно высчитать время за которое один поезд пройдет ровно пол пути, это и будет время столкновения. В общем - начальные классы.
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
14.12.2011, 15:36  [ТС] 5
Если ты рассчитываешь жизнеспособную систему моделирования, то именно на этой фразе у тебя произойдет крах. Скорость поездов даже в пределах одного перегона может меняться, кроме того она зависит от многих факторов, на одном и том же участке пути разные поезда могут двигаться с разной скоростью. Также следует учитывать простои на "скрещениях", что автоматически вводит систему приоритета составов. В данном случае я бы порекомендовал тебе найти толкового поездного диспетчера и пообщаться с ним на эту тему.
Это все глубоко понятно, просто при тех условиях, что даны первоначальный метод мог бы сработать. То что это было бы криво и нерасширяемо тоже в общем понятно.

Если же у тебя простая учебная задача (из точек А и Б навстречу друг другу с одинаковой скоростью вышли 2 поезда. Найти точку столкновения), то она и выеденного яйца не стоит. Я тебе без всяких алгоритмов скажу, столкнуться они ровно в середине отрезка. Зная скорость движения, нужно высчитать время за которое один поезд пройдет ровно пол пути, это и будет время столкновения. В общем - начальные классы.
К счастью или к сожалению она не такова.
0
167 / 96 / 23
Регистрация: 13.03.2011
Сообщений: 402
14.12.2011, 15:59 6
Построить таблицу состояний.
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
14.12.2011, 17:23  [ТС] 7
Построить таблицу состояний.
Не очень понимаю твою идею, приведи пример таблицы состояний для этой задачи пожалуйста.
0
167 / 96 / 23
Регистрация: 13.03.2011
Сообщений: 402
14.12.2011, 18:39 8
Таблицы состояний - это давно испытанный метод решения
алгоритмических задач, который позволяет резко избежать,
сложного кода с использованием if-else-case
Раз'яснять здесь места нет - в гугле вся теория по этому
вопросу есть.
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
14.12.2011, 19:53  [ТС] 9
Таблицы состояний - это давно испытанный метод решения
алгоритмических задач, который позволяет резко избежать,
сложного кода с использованием if-else-case
Раз'яснять здесь места нет - в гугле вся теория по этому
вопросу есть.
Вопрос был не в том что такое таблица состояний ( требование перепечатывать учебник с моей стороны было бы как минимум неразумным ), а в том, как применить таблицу состояний к данной задаче.
0
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 4
14.12.2011, 22:02 10
Да мне недавно задали точно такую же задачу. Тоже сижу думаю над ней.
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
14.12.2011, 23:01  [ТС] 11
Транзас?
0
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 4
15.12.2011, 07:10 12
Да он самый
0
15.12.2011, 07:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2011, 07:10
Помогаю со студенческими работами здесь

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

Определить верхнюю границу цикла, т.е. максимальный номер IP-адреса заданной сети, если компьютер, с которого
Определить верхнюю границу цикла, т.е. максимальный номер IP-адреса заданной сети, если компьютер,...

Анализ конфигурации сети
Здравствуйте, у меня имеется как пара вопросов, так и пара просьб по консультации и best practices....

Массив. По данному времени определить, какие из поездов стоят сейчас на станции
Дан массив, в котором хранятся данные о расписании поездов:номер поезда, название (откуда-куда,...

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

Как определить столкновение объектов
Как сделать столкновение объектов. Когда зеленый объект прикасается слева или справа красный объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru