Поезд и стрелки задача



Помогите решить задачу Железнодорожная стрелка

Здравствуйте.
Не могли бы вы помочь с решением логической задачи «Железнодорожная стрелка»?

Каким образом два поезда смогут разминуться с помощью изображенной здесь стрелки и продолжать движение дальше вперед паровозами? Небольшой боковой тупик достаточен лишь для того, чтобы принять либо паровоз, либо один вагон одновременно.
рисунок к задаче Железнодорожная стрелка

Она чем-то похожа на приведенную Вами задачу о супружеских парах. Я не знаю, как подступить к ее решению на swi-prolog. Очень надеюсь на Вашу помощь. Спасибо.

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

Что конкретно не получается?

Не получается написать ограничения на правильное «использование» тупика. Да и выходит не логичным, что последний вагон одного поезда, сразу становится последним вагоном второго. Подскажите, что исправить, пожалуйста.

Как-то очень сложно Вы решаете задачу. Мне кажется, Ваша задача решается примерно также как задача о волке, козе и капусте.
Не было времени вникнуть в Ваш код, но я нашел время и попытался — не получилось.
Предикат find2 у Вас совсем не используется.

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

В задаче вагон отличается от паровоза. Если паровоз загнать в тупик, то связанные с ним вагоны двигаться не смогут. В Вашем коде такого разделения я вообще не заметил.

Я не совсем понял. Могут ли оба состава одновременно быть справа от тупика, например?

Здравствуйте. Спасибо за ответ. Пока решить задачу по-другому у меня не вышло.
Не совсем понимаю, а каким правилом можно задать разделение вагона от паровоза ?

Да, оба состава могут быть одновременно по одну сторону от тупика.

Может быть стоит отделять не первый и последний элементы, а делить список в любом месте (ведь поезд можно разорвать в любом месте) — посмотрите правило sublist.
Я думаю, что локомотив может оказаться в середине поезда теоретически :).

В зависимости от того, какие варианты генерации новых состояний вы допустите, будет зависеть и формат хранения состояния.

Я привел лишь вариант, не самый лучший, наверное. Явно в конец надо дописать правил генерации состояний.

Первое приведенное правило срабатывает когда на левой ветке пусто, в тупике стоит локомотив, а список, стоящий в правой части, содержит локомотив первым или последним элементом. Аналогично должно быть описано правило, когда пусто в правой ветке. Это правило проверки правильности размещения вагонов, если оно завершилось удачно — то решение найдено.

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

Третье правило срабатывает если тупик пуст — в него помещается либо первый элемент правого списка, либо последний элемент левого списка.

В этом же духе надо описать остальные правила. А затем, запустить поиск в глубину или в ширину.

Отделять, наверное есть смысл только тот вагон, который является ближним к тупику.
Если это правый поезд — то просто отделяйте первый элемент.
Если же это левый поезд — то отделять надо последний элемент. Для этого можно использовать встроенный предикат last(?List, ?Last) . Завершается успешно когда Last является последним элементом списка List.

Я решал бы вашу задачу с поиском в глубину, т.к. тут нет большой разницы, но поиск в глубину выглядит попроще.

Правило генерации состояний я переписал так:

Тут учитывается то, что вагон кто-то должен затолкнуть в тупик, поэтому с края должен быть локомотив.

Предикат поиска в глубину я взял почти без изменений, единственное отличие в том, что вместо сравнения текущего состояния с конечным вызывается предикат is_finish_state (выше я описывал его как check).

Читайте также:  Расписание пригородных поездов саратов 2021

Источник

Сложная задача на логику

Сей­час будет слож­ная логи­че­ская зада­ча, для реше­ния кото­рой потре­бу­ет­ся лист бума­ги и ручка.

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

Что еще мы зна­ем об этой ситуации:

  • Поезд дви­га­ет­ся с посто­ян­ной скоростью.
  • Оба пеше­хо­да мгно­вен­но сре­а­ги­ро­ва­ли на ситу­а­цию и нача­ли бежать с одной точ­ки со ско­ро­стью 10 км в час.
  • Пер­вый пеше­ход выско­чил за мгно­ве­ние до того, как поезд въе­хал в тун­нель; вто­рой — за мгно­ве­ние до того, как поезд выехал из туннеля.

👉 Рас­счи­тай­те ско­рость дви­же­ния поезда.

Подсказка

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

Визу­а­ли­зи­ру­ем доступ­ные све­де­ния и обра­тим вни­ма­ние на рас­по­ло­же­ние пеше­хо­дов в тон­не­ле: прой­де­но две тре­ти пути, оста­лось — одна треть.

Графическое представление условия задачи: сложная задача на логику

Гра­фи­че­ское пред­став­ле­ние усло­вия задачи

Теперь изоб­ра­зим момент, когда пер­вый пеше­ход выско­чил из тун­не­ля, а вто­рой ещё нет. На рисун­ке вид­но, что пер­вый успел прой­ти остав­шу­ю­ся треть пути, а вто­рой — про­шёл треть пути в обрат­ную сторону.

Момент, когда поезд въезжает в туннель: сложная задача на логику

Момент, когда поезд въез­жа­ет в туннель

Послед­няя часть зада­чи: вто­рой пеше­ход пре­одо­ле­ва­ет послед­нюю треть пути и поезд выез­жа­ет из тун­не­ля. Вспо­ми­на­ем тре­тье допол­ни­тель­ное усло­вие: пер­вый выско­чил за мгно­ве­ние до въез­да поез­да в тун­нель, а вто­рой — за мгно­ве­ние до выезда.

Это зна­чит, что одно и то же рас­сто­я­ние поезд пре­одо­ле­вал в три раза быст­рее пеше­хо­дов и ехал со ско­ро­стью 30 км в час. Не так уж и быстро.

Момент, когда поезд выезжает из туннеля: сложная задача на логику

Момент, когда поезд выез­жа­ет из туннеля

Эта ста­тья по моти­вам интер­вью с Алек­се­ем Васи­лье­вым — руко­во­ди­те­лем груп­пы реко­мен­да­тель­ных систем лабо­ра­то­рии искус­ствен­но­го интел­лек­та Сбе­ра. Алек­сей фанат мате­ма­ти­ки и поде­лил­ся с чита­те­ля­ми исто­ри­ей сво­е­го пути →

Источник

masterok

Много читаешь всяких научных психологических якобы проблем, которые для тебя лично совсем не проблема. Вроде бы все ясно и понятно, какая еще проблема! Вот сейчас прочитал подобную.

Представьте, что по железнодорожному пути несется тяжелая неуправляемая вагонетка. Прямо по ходу ее следования к рельсам привязаны пять человек, и она стремительно к ним приближается. У вас есть возможность переключить стрелку, и тогда вагонетка поедет по другому пути. К несчастью, на нем к рельсам тоже привязан человек, но всего один. Что вам следует предпринять, — переводить стрелку или не переводить?

Вот почему это считают "проблемой":

Так вот, люди реагируют совершенно по-разному в этой ситуации в зависимости от того, является ли проблема чисто гипотетической или же на кону стоят реальные жизни.

Впервые психологи из Университета Гента в Бельгии воссоздали условия этой дилеммы в реальной жизни, используя лабораторных мышей. Удивительные результаты, которые они получили в ходе исследования, были недавно опубликованы в журнале Psychological Science.

Эта этическая мыслительная задача известная как «проблема вагонетки», призвана заставить вас задуматься о моральной разнице между активным убийством (ведь это вы перевели стрелку, что привело к гибели 1 человека) и пассивным убийством (вы не трогали стрелку, но в результате погибли 5 человек). С философской точки зрения, утилитаристы утверждают, что морально оправдано будет переключить стрелку и выбрать путь наименьшего зла – убить одного вместо пяти, но деонтологи утверждают, что с моральной точки зрения неправильно будет делать это, потому что такое действие будет означает, что вы намеренно участвуете в убийстве человека.

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

Исследователи собрали 200 человек и сказали им, что они собираются пропустить сильный электрический ток через клетку с 5 мышами. Участникам эксперимента также сообщили, что они могут нажать кнопку и перенаправить ток в другую клетку с 1 мышкой. (Не волнуйтесь, никто не собирался в действительности поражать мышей током). До начала эксперимента участников спрашивали, как, по их мнению, они будут гипотетически реагировать в данной ситуации.

Читайте также:  Поезд спб кашин расписание

66% людей, принимающих участие в эксперименте, сказали, что нажмут кнопку в гипотетическом сценарии. Однако, когда настал решающий момент и их подвели к клеткам с живыми мышами, 84% людей решили нажать кнопку и поразить током одну мышь. Вы можете предположить, что люди действуют более эмоционально в реальном сценарии и более рационально в абстрактных сценариях, но как исследование показало, люди думают по-разному при решении гипотетических дилемм и при решении проблем, с которыми они сталкиваются реальной жизни.

Проблема вагонетки стала в наши дни еще более актуальной, чем когда-либо, с появлением беспилотных автомобилей. Например, если беспечный пешеход выбежит на дорогу, должен ли беспилотный автомобиль свернуть в сторону и стать при этом причиной ДТП на дороге, в котором могут погибнуть несколько водителей и пассажиров, или же продолжить движение и сбить пешехода.

Конечно, не может быть никакого «правильного ответа» при решении любой из этих дилемм. Однако, с такой проблемой несомненно столкнутся разработчики беспилотных автомобилей, не говоря уже о юристах, которым надо будет разбираться в деталях аварий с участием самоуправляемых машин.

Для того, чтобы понять, как поступили бы люди в той или иной критической ситуации, сотрудники института разработали специальную игру «Moral Machine».

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

Всего в тесте представлено 13 ситуаций, в каждой из которых необходимо решить кого- пешеходов или пассажиров- оставить в живых.

Например, пользователю предлагается выбрать кто из 2 двух людей – молодой или пожилой человек – должен остаться в живых, а на кого наедет автомобиль.

На сегодняшний день Moral Machine набрала уже более 11 млн. возможных сценариев поведения.

Как бы вы вот на этот например ответили?

Мы как раз обсуждали эту проблему беспилотника и его моральные принципы — «Моральные принципы» беспилотных автомобилей

Но что касается так называемой "проблемы вагонетки", то лично для меня ее нет — простое рациональное мышление. Даже и размышлять не о чем.

П.С. Хотя погодите, я вспомнил. Есть другой вариант этой психологической проблемы: едет поезд в пропасть полный пассажирами. Переводом стрелки можно его спасти, но тогда он собьет вашего родственника (в одном случае это был сын стрелочника, для которого и был выбор).

Источник

Задачи на маневрирование (3, 4)

3. Железнодорожный путь имеет форму буквы Р. На нем находятся локомотив Л и два вагона — 1 и 2. В тупик Т входит либо локомотив, либо один вагон. Требуется поменять местами вагоны. Сколько раз придется переводить стрелку?

Задачи на маневрирование

4. Железнодорожный путь имеет форму девятки. На нем находятся локомотив Л, два вагона — 1 и 2-й туннель Т. Через туннель может пройти лишь локомотив, а вагоны не могут. Требуется поменять местами вагоны 1 и 2. Локомотив должен вернуться в исходное положение.

Задача 3. Локомотив выходит из тупика. Переводится стрелка. Задним ходом локомотив следует к вагону 2, толкает его, идет дальше и загоняет вагон 1 в тупик. С вагоном 2 возвращается, оставляет его у платформы и следует один по кольцу в тупик к вагону 1. Прицепляет его, выходит за стрелку, дает задний ход и по кольцу толкает вагон 1 на предназначенное ему место (рис. б), а сам возвращается в тупик Т. Маневры закончены. Стрелку пришлось переводить 6 раз.

Задача 4. Локомотив выходит на кольцо, прицепляет вагон 2 и толкает его за стрелку. Сам же проходит через туннель к вагону 1 и толкает его к вагону 2. Прицепив вагон 2, локомотив транспортирует оба вагона в верхнюю часть «девятки». Далее локомотив, отцепив вагоны, следует по кольцу и, прицепив вагон 2, тянет его в нижнюю часть петли. Оставляет его там, идет через туннель и толкает вагон 1 за стрелку. Далее локомотив возвращается на кольцо, прицепляет вагон 2 и переводит его на предназначенное ему место в верхней части «девятки». Локомотив же, пройдя через туннель, идет к вагону 1 и выводит его на кольцо. Наконец, толкает на предназначенное место (рис. б), а сам возвращается в исходное положение. Маневры закончены. Стрелка была переведена 10 раз.

Читайте также:  Поезд омск белгород маршрут следования


«Твое свободное время», В.Н.Болховитинов, Б.И.Колтовой

Около небольшого белого домика на опушке леса две недели назад в 23.30 был найден труп некоего Л. Клемпнера. Следствие зашло в тупик, и, как всегда в таких случаях, на помощь был вызван инспектор Варнике. — Это произошло следующим образом,— начал рассказывать свидетель М. во время осмотра инспектором места происшествия.— Я ехал на велосипеде вдоль опушки…

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

— Вот здесь на опушке все и произошло, господин инспектор. Какой-то парень бросил мне в лицо молотый перец и выхватил из рук портфель, где находились деньги в сумме тысяча восемьсот пятьдесят семь марок. Я закричал, но вокруг никого не было. От страшного жжения в глазах я ничего не видел. К счастью, я знаю эту местность…

В одной из вилл на краю города 3. поселился некий Альфредо ди Мейро. Благодаря приятной наружности и аристократическим манерам ему удалось добиться расположения самых влиятельных людей города. Пользуясь необычайной популярностью в городе, дон Альфредо занимал деньги направо и налево. Когда же сумма его долгов приняла внушительные размеры, виллу Альфредо ди Мейро посетил инспектор Варнике. Хозяин…

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

— Да отстаньте же вы от меня наконец! Я очень спешу. — Если вы сейчас же не остановитесь, я вынужден буду прибегнуть к крайним мерам,— сказал инспектор Варнике, как никогда кстати оказавшийся на месте происшествия.— Ведь это вы сейчас взяли в магазине перчатки и ушли, не заплатив за них! — Это неправда! Я действительно только…

Во время пребывания по делам службы в Калифорнии инспектору Варнике представился случай продемонстрировать местной полиции свои незаурядные способности. Однажды он был срочно вызван на аэродром, расположенный недалеко от Лос-Анджелеса. Из случайно услышанного телефонного разговора полиции стало известно, что рейс самолета, который отправляется на Аляску, закончится катастрофой. Один из пассажиров, намереваясь совершить самоубийство, берет с собой…

Вчера я вернулся домой со службы несколько раньше, чем обычно. Только я присел за стол, собираясь поужинать, как вдруг в комнате жены что-то упало. Я бросился туда и увидел лежащую на полу старинную вазу, которой моя жена очень дорожит. Ваза была разбита. В этот же момент из комнаты выбежал какой-то человек. Я кинулся за ним….

Из тюрьмы сбежал опасный преступник. Долгое время ему удавалось скрываться, но в конце концов инспектор Варнике напал на его след. В одной деревне ему и его спутнику сказали, что действительно какой-то неизвестный прошел здесь 15 минут назад и направился в сторону поля. Да, он как будто бы похож на человека, изображенного на фотографии, которую держал…

В гостинице «Грюне Танне» все было готово к большому приему. Официант в последний раз спустился в подвал, чтобы еще раз проверить, достаточно ли подготовлено вина. И вдруг… О ужас! Половина запаса вина исчезла. Инспектор Варнике, который совершенно случайно оказался в этом городе, тотчас же прибыл в гостиницу и, не мешкая, приступил к расследованию дела. Он…

Источник