|
|
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Мне дали задание написать программу, которая находит лучшие варианты проезда поезда с пересадками между всеми возможными парами станций. Вся информация про переезды (станции с ценами, номера поездов, время отправления /прибытия). Я вроде бы понимаю, что должно быть в самой программе, но не могу понять, как считать данные из xml файла. Буду благодарна за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 14:15 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Например Apache Xerces / Xalan. Он вроде и для C++ существует (я для Java использовал). http://xerces.apache.org/#xerces-c ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 14:34 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 14:45 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Iridze, в твоей задаче само считывание из XML технически не является проблемой. А вот вторая часть задания где написано лучшие варианты проезда поезда с пересадками между всеми возможными парами станций во много раз сложнее и комплекснее и подходить к ней можно с разными критериями. На данный момент даже не ясно что такое "лучший" вариант. Вобщем если ты доберешся до этой части то там будет самый настоящий треш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:19 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
maytonВобщем если ты доберешся до этой части то там будет самый настоящий треш. Для сугубо учебной задачи особого трэша там не будет, поскольку вряд ли в задании будет идти минимизация времени поездки (для неё нужно гораздо больше информации, чем есть). Судя по упоминанию цены, это определение самого выгодного маршрута в плане денег. Значит можно сделать граф со станциями в качестве вершин и маршрутами в качестве рёбер. Остальное дело техники. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:37 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Граф? Вершины? Вы серъезно? Для уровня этой девочки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:41 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
maytonГраф? Вершины? Вы серъезно? Знаешь другие способы решения транспортных задач?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:45 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonВобщем если ты доберешся до этой части то там будет самый настоящий треш. Для сугубо учебной задачи особого трэша там не будет, поскольку вряд ли в задании будет идти минимизация времени поездки (для неё нужно гораздо больше информации, чем есть). Судя по упоминанию цены, это определение самого выгодного маршрута в плане денег. Значит можно сделать граф со станциями в качестве вершин и маршрутами в качестве рёбер. Остальное дело техники. Не понятно ))) "...время отправления /прибытия..." ( C ) автор говорит как бы о том, что есть желания "согласовывать" пересадки. Т.е. время поездки (и пересадок) возможно значимо. Лично я похожую задачу решал в две стадии. Сначала находил все маршруты (было ограничение на кол-во пересадок), потом по маршрутам пытался согласовать время пересадки. Строить граф с учетом времени, это уж сильно большой граф получается ((( IMHO Проще время вторым шагом обрабатывать. Тут правда еще есть проблема перехода через границу суток. p.s. но у меня проект завершился на примерно 700 Kb работающих исходных кодов (+служебный код, эксперементы - еще 400-500 Kb) )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:55 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonГраф? Вершины? Вы серъезно? Знаешь другие способы решения транспортных задач?.. Причём здесь я? Спроси знает ли топик стартер. У нее - первый курс. Основы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 16:59 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevСтроить граф с учетом времени, это уж сильно большой граф получается Он, конечно, получается больше, поскольку в качестве вершин придётся принимать моменты прибытия-отправления и надо добавлять дополнительные связи возможных пересадок, но всё равно это не так уж и сложно. В 700к исходников должно уложиться вместе со всей сервисной обвязкой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 17:07 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн, конечно, получается больше....но всё равно это не так уж и сложно. В 700к исходников должно уложиться вместе со всей сервисной обвязкой. Проблема не в сложности програмного кода, а в сложности вычислений. Одно дело поиск маршрута по графу с 50 000 - 110 000 ребрами, а другое дело, по графу в несколько раз больше Из Сиднея в Мельбурн некоторые авиа рейсы происходят раз в 15-20 минут. Скоростные поезда ходят примерно аналогично. Т.е. вместо одного ребра, получится черти что. Кроме того, с одного рейса можно успеть на 100500 рейсов которые происходят после него. Т.ч. еще и теоретически не очень понятно, как же результирующий граф должен выглядить. Вариант "ближайший рейс на отправку" - не вариант. Т.к. если мы прибываем на станцию в 13:59, а рейс на который нужно пересесть, отправляется в 14:00 - то это не айс, мы телепортироваться между перронами не успеем )))) По факту, после "коннекта по времени" у меня получилась до десятков миллионов вариантов пересадок (если посередине попадал перелет Сидней - Мелбурн ))) ). Представлять все эти десятки миллионов вариантов как ребра графа - безумее. AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 17:32 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн, конечно, получается больше, поскольку в качестве вершин придётся принимать моменты прибытия-отправления..... AFAIK больше на 2-3 порядка. Соответственно и вычислительные затраты и потребление памяти - скорее всего будут так же резко больше. IMHO. Аэропортов с кодами IATA в мире < 10 000. из них "живых" наверное около 3 тыс. Табличка с авиамаршрутами по миру - 3 миллиона (возможно даже 5-6 миллионов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 17:41 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevКроме того, с одного рейса можно успеть на 100500 рейсов которые происходят после него. Т.ч. еще и теоретически не очень понятно, как же результирующий граф должен выглядить. Вариант "ближайший рейс на отправку" - не вариант. Это, конечно, да. Но можно ввести разумные ограничения на рёбра пересадки по времени. В транзитном аэропорту вряд ли человек будет планировать зависнуть на пару суток (исключая задержки рейсов, разумеется). Leonid KudryavtsevПо факту, после "коннекта по времени" у меня получилась до десятков миллионов вариантов пересадок (если посередине попадал перелет Сидней - Мелбурн ))) ). Представлять все эти десятки миллионов вариантов как ребра графа - безумее. Да, десятки миллионов рёбер это сильная штука, в рил-тайме не просчитать. Но, думается, что у автора и задача поскромнее, и пару минут она таки может потерпеть. При наличии достаточного количества памяти тот же Форд-Фалкерсон за раз просчитывает все маршруты из заданной точки в любую другую (или наоборот) и по быстродействию неплох, хоть и итерационный. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2018, 18:08 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
Iridzeно не могу понять, как считать данные из xml файла.я использую boost/property_tree ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 09:46 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
IridzeМне дали задание написать программу, которая находит лучшие варианты проезда поезда с пересадками между всеми возможными парами станций . .... не могу понять, как считать данные из xml файла . Только я ощущаю нелёгкий конгинивный диссонанс от такого контраста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 13:38 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
MasterZiv, а что такого ужасного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 14:09 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
MasterZiv, а что такого ужасного? Я и раньше строила уже графы,С поменьше, но дело было. Но вот ни разу не приходилось считывать с ХML. В интернете есть много примеров для C#, про С++ не так уж и много инфы. Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 14:12 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
IridzeMasterZiv, а что такого ужасного? Я и раньше строила уже графы,С поменьше, но дело было. Но вот ни разу не приходилось считывать с ХML. В интернете есть много примеров для C#, про С++ не так уж и много инфы. Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты. Если в ваших xml есть namespaces или DTD то выбор сильно сужается. TinyXML2 не пойдет, так же как и boost/property_tree. Используйте libxml2 ну или MSXML если вы на Виндовсе. ИМХО лучше изучать xml библиотеку с полной поддержкой XML стандарта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 15:54 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 16:12 |
|
||
|
Считывать значения из xml файлов - C++
|
|||
|---|---|---|---|
|
#18+
IridzeMasterZiv, а что такого ужасного? Я и раньше строила уже графы,С поменьше, но дело было. Но вот ни разу не приходилось считывать с ХML. В интернете есть много примеров для C#, про С++ не так уж и много инфы. Нашла,что можно считывать используя TinyXML2, но решила еще и сюда написать, возможно есть еще варианты. Ничего ужасного. Просто не надо писать лишнего. Вся прелюдия про поезда - это лишняя информация никак не связанная с сутью вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39674207&tid=2017799]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 357ms |

| 0 / 0 |
