cancel
Showing results for
Did you mean:
cancel
Showing results for
Did you mean:

Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X

24-Ruby IV

## The problem of cockroach races

The cockroach needs to run from start (from different positions of the start line) to finish-line in minimum time.
On the field of running there is a section in the form of a circle (see Fig.), where the running speed
differs by V1> V2 or V1 <V2.
Which route (trace) from the start line to the finish line should the cockroach use from different positions?

Better to get numerical, symbolical and plot solution (with animation!).

43 REPLIES 43
23-Emerald III
(To:ValeryOchkov)

Not formulated clear enough:

- Is finish anywhere on the bottom line?

- Does the full circle need to be run in all cases, or is running (part of) the lower half of the circle enough?

- Does the full horizontal track (at the top) need to be run?

Luc

23-Emerald III
(To:LucMeekes)

Ah, now I see it.

The run is from top to bottom, and the question is if it's wise to run across the circle, or to avoid it.

Luc

24-Ruby IV
(To:LucMeekes)

Two cases

19-Tanzanite
(To:ValeryOchkov)

The case of V2<V1 doesn't make much sense. In that case it's clear that the cockroach must avoid the circle. Then there are an infinite number of equivalent solutions where the cockroach starts at some point on the start line and runs perpendicular to that to the finish line.

If V2>V1 the solution is obvious. Start above the center of the circle, run perendicular to the start line to the finish line. That's the shortest possible path, with as much of it as possible in the circle.

Edit:. You added a new post while I was typing, and now I see that the start point is not a variable, but fixed. That makes the solutions less trvial

23-Emerald III
(To:RichardJ)

Valery's question is to solve it for any starting position (horizontal) along the start line.

I bet it's related to an optical problem.

Intriguing, but I have to crack a coconut first...

Luc

While I don't have the time to solve it, I think my approach would be a monte carlo.

Given - starting position, v1, v2 ,s, r

Approach - Walk in a straight line at a random angle (0.0001 to 179.9999 deg - 90 deg being straight to the finish).  Then you need logic on if you hit the circle or not.  If you hit the circle, begin walking at a 2nd random angle (0 to 180 deg again) until you hit the circle edge again.  Then straight down to the finish.  Calculate the time for each attempt.

I'm assuming the question involves straight lines only.  But if the penalty or bonus of V2 was sufficient then following the edge of the curve would win.  (If V2 was ~0 then you'd want to walk around it)  That makes the real answer more difficult to calculate.

24-Ruby IV
(To:DJF)

I would like to have someone:

24-Ruby V
(To:ValeryOchkov)

The result sure depends on the ratio v1/v2.

Furthermore you'll have to explain, as dferry pointed out, if you are just after straight lines or if you will also allow a curved path along the circumstance of the circle.

24-Ruby IV
(To:Werner_E)

@WernerExinger wrote:

The result sure depends on the ratio v1/v2.

Furthermore you'll have to explain, as dferry pointed out, if you are just after straight lines or if you will also allow a curved path along the circumstance of the circle.

curved path too

23-Emerald I
(To:ValeryOchkov)

Your video constrains start and finish to be vertically aligned.  This is a constraint?  Or an oversight?

24-Ruby IV
(To:Fred_Kohlhepp)

@Fred_Kohlhepp wrote:

Your video constrains start and finish to be vertically aligned.  This is a constraint?  Or an oversight?

constraint

While it's not my problem, I'd suggest the following constraints and clarifications

a.) travel in straight lines only

b.) If the circle is entered, 2 direction changes total are allowed (when you enter circle and when you leave)

c.) If the circle is not entered, 1 direction change is allowed (allowing you to avoid the circle)

d.) the roach is infinitely thin (allowing it to pass tangent to circle)

Just as I finished typing I see your later constraints.  But I figured I'd send this anyway.

24-Ruby IV
(To:DJF)

All is allowed for the minimal time of run from start tp finish!

24-Ruby V
(To:ValeryOchkov)

@ValeryOchkov wrote:

All is allowed for the minimal time of run from start tp finish!

Really? In your answer to Fred you confirmed that start and finish point must be vertically aligned. If thats true, none of dferrys three paths would be allowed!??

24-Ruby IV
(To:Werner_E)

Sorry, Ai nou Inglish veri plokho!

The problem one more!

I would run from one point on the start line to the finish line with minimal time.

My speed on the field is a function v(x, y).

The 1-st case - in a circle (square, triangle etc) v1>v2 or v1<v2.

What form must have my way (trace) from any point on the start line to finish line?

One solution for case not with 2 lines but with 2 points:

21-Topaz I
(To:ValeryOchkov)

The rules need to be established.  Straight lines only, Circle is equidistant from each line.

(i) fastest direct route any condition at V1 is straight across field of play. red, cyan, red

(ii) fastest route if you need to end at same point is directly to and from centre of circle path red, yellow, red.  Difference is cyan at V1 or yellow at v2

(iii) fastest route if allowed to arrive at different point may be red,yellow, blue, or red magenta, darker cyan compared to red,cyan, red direct route.

Does this fit the rules.

23-Emerald III
(To:terryhendicott)

I think you can disregard option (ii), it simply isn't the fastest track except for a few trivial cases that are also covered by (i) and (iii).

If V2>V1 then the red yellow blue/cyan tracks become interesting.

If V1>V2 then any track that starts (anywhere) above the circle and tries to avoid it becomes interesting, especially if V2 goes to 0 (which results in you don't want to enter the cricle). I guess in that case you run the shortest tangential line to the circle, run along the circle edge until you reach the middle line of the circle, then straight down.

Luc

24-Ruby IV
(To:terryhendicott)

@terryhendicott wrote:

The rules need to be established.  Straight lines only, Circle is equidistant from each line.

(i) fastest direct route any condition at V1 is straight across field of play. red, cyan, red

(ii) fastest route if you need to end at same point is directly to and from centre of circle path red, yellow, red.  Difference is cyan at V1 or yellow at v2

(iii) fastest route if allowed to arrive at different point may be red,yellow, blue, or red magenta, darker cyan compared to red,cyan, red direct route.

Does this fit the rules.

1. Straight start and lines

2. Circle is equidistant from each line

3. Allowed to arrive at different point on the finish line

23-Emerald III
(To:ValeryOchkov)

It took a little longer. Unlike (possibly) Valery, I don't have cockroaches in the house. I do have silverfish (Lepisma saccharina) in my house, but they are much harder to train....

Anyway, here's the input:

And the output is shown below, for s=1, r=1 v1=1 and v2=2 and b positions ranging from -2 to 2:

Luc

24-Ruby IV
(To:LucMeekes)

Luc! I showed your animation to my cockroaches. They liked it. But one (in the middle - the egghead - as you and me) asked to start the animation from the point (case) when they run faster, bypassing the circle - from x =-3 to 3 for example. And for thr case when v.circle<v.field!

23-Emerald III
(To:ValeryOchkov)

Ah, too bad. My Silverfish haven't dared to go that far away from the middle of the Start bar.

The other thing is that if v2<v1 they get confused, and run astray. I have to solve that.

Luc

24-Ruby IV
(To:LucMeekes)

@LucMeekes wrote:

Ah, too bad. My Silverfish haven't dared to go that far away from the middle of the Start bar.

The other thing is that if v2<v1 they get confused, and run astray. I have to solve that.

Luc

I (and my тараканы) am (are) waiting for the solution!

23-Emerald III
(To:ValeryOchkov)

Tell them to be patient.

In the mean time they can train to increase their running speeds in both areas, that should keep them busy.

Luc

23-Emerald III
(To:ValeryOchkov)

My silverfish have come across an interesting, but not completely unexpected phenomenon.

Observe the running field as shown below:

Notice that I've indicated s, the shortest distance between either side of the circle and the start and finish lines, and r is the radius of the circle. Then we have points b, the x-position on the start line, f, the x position on the finish line and i and o the entering and exiting points on the circle. v1 is still the speed of running outside, and v2 inside the circle. For each of these items you'll find values at the top of the picture.

Then there is angles alpha.i and beta.i, which are the angles between the normal (brown line from the circle centre through point i) on the circle edge and the entering path outside and inside the circle corresponding to point i. There's also the normal for point o, and I can define corresponding angles alpha.o and beta.o.

Now watch the animation below and pay attention to alpha.i and beta.i, and the ratio of their sines (shown at the top of the picture).

As you can see, the ratio of the sines of those two angles remains a constant (there's a division by zero problem in the middle of course), and that constant is the ratio of run speeds: v2/v1. This is Snell's law of optics.

Incidentally, I've calculated the run time for each path, and show the value as t. The small blue cross indicates that speed along the y-axis for each of the x-values of b.

Have fun!
Luc

P.S My silverfish are starting to learn how to deal with v1>v2:

24-Ruby IV
(To:LucMeekes)

My cockroaches long applauded all with their six palms and shouted "Bravo!", when they saw this animation and the remarks!

But the egghead one has some wises - a little and a big.

At first the big. To create not one running trace but a set of traces at v2=0 v2=.. (v2<v1) v2=... v2=v1 v2>v1 etc v1 is fixed!

The little wishes on the picture

24-Ruby IV
(To:ValeryOchkov)

My egghead cockroach (with name Pythagoras) long waited for a complete solution. He did not wait, got out of his hole, climbed on my computer and found a simple solution. He likes units and the minimize function - see please the attach.

Now he is thinking over the case when v2<v1 (v2=0 at first). And about optic, angles and the Snell law too!

23-Emerald III
(To:ValeryOchkov)

Nice! Valery.

Your cockroach beat my silverfish on the fast tracks.

I guess it's due to the fact there were some bread crums (stuff that silverfish like very much!) scattered on the circle. I have to sweep the circle clean and retry.

My silverfish use the minimize stratgey as well, and with V2 < V1, it will only occasionally result in an expected result. Is that the same for your cockroach?

Luc

24-Ruby IV
(To:LucMeekes)

A fine descriptions of this races from Michail Bulgakov "The Run" (Do you know an english translation?)

ДЕЙСТВИЕ ТРЕТЬЕ

СОН ПЯТЫЙ

...Янычар сбоит!..

Странная   симфония.   Поют   турецкие   напевы,  в  них
вплетается  русская шарманочная "Разлука", стоны уличных
торговцев,   гудение   трамваев.   И   вдруг  загорается
Константинополь    в    предвечернем    солнце.    Виден
господствующий     минарет,    кровли    домов.    Стоит
необыкновенного  вида  сооружение,  вроде  карусели, над
которым   красуется   крупная  надпись  на  французском,
английском   и   русском   языках:   "Стой!   Сенсация в
Константинополе! Тараканьи бега!!! Русская азартная игра
с  дозволения  полиции".  "Sensation  a  Constantinople!
Courses  des cafards. Races of cock-roaches". Сооружение
украшено  флагами  разных  стран.  Касса с надписями: "В
ординаре"   и   "В   двойном".  Надпись  над  кассой  на
французском  и  русском  языках:  "Начало  в  пять часов
вечера",  "Commencement  а  5  heures  du  soir".  Сбоку
ресторан  на  воздухе  под золотушными лаврами в кадках.
Надпись:   "Русский   деликатес   -   вобла.  Порция  50
пиастров".  Выше  -  вырезанный из фанеры и раскрашенный
таракан   во  фраке,  подающий  пенящуюся  кружку  пива.
Лаконическая  подпись:  "Пиво".  Выше сооружения и сзади
живет  в  зное  своей  жизнью  узкий  переулок: проходят
турчанки в чарчафах, турки в красных фесках, иностранные
моряки  в  белом,  изредка проводят осликов с корзинами.
Лавчонка с кокосовыми орехами.
Мелькают русские в военной потрепанной форме.
Слышны  звоночки  продавцов  лимонада.  Где-то  отчаянно
вопит  мальчишка:  "Пресс  дю суар!" ["Presse du soir" -
"Вечерняя газета" (фр.)]
У выхода с переулка вниз к сооружению Чарнота в черкеске
без  погон,  выпивший,  несмотря  на  жару,  и  мрачный,
торгует резиновыми чертями, тещиными языками и какими-то
прыгающими фигурками с лотка, который у него на животе.

Чарнота. Не бьется, не  ломается,  а  только  кувыркается!  Купите  красного
комиссара для увеселения ваших детишек-ангелочков! Мадам!  Мадам!  Аштэ
пур вотр анфан!  [Achetez  pour  votre  enfant!  -  Купите  для  вашего
ребенка! (фр.)]
Турчанка, любящая мать. Бунун фиаты надыр?  Комбьен?  [Bunun  fiyatl  nedir?
Combien? - Сколько это стоит? (тур.) Сколько? (фр.)]
Чарнота.  Сенкан  пиастр,  мадам,  сенкан!  [Cinquante   piastres,   madame,
cinquante! - Пятьдесят пиастров, мадам, пятьдесят! (фр.)]
Турчанка, любящая мать. О, иох! Бу пахалы дыр! [О, yok! Bu pahalidir! -  Ох,
нет! Это дорого! (тур.)] (Проходит.)
Чарнота. Мадам! Каран! А, чтоб тебе пропасть! Да у тебя и детей  никогда  не
было! Геен зи!.. Геен зи!.. [Quarante!..  Gehen  Sie!..  Gehen  Sie!..-
Сорок! (фр.) Пошла ты!.. Пошла!.. (нем.)] Ступай в гарем! Боже мой,  до
чего же сволочной город!

Где-то    надрываются    продавцы,   кричат:   "Каймаки,
каймаки!", "Амбуляси! Амбуляси!"
Струится зной.
В кассе возникает личико. Чарнота подходит к кассе.

Марья Константиновна, а Марья Константиновна!
Личико. Что вам, Григорий Лукьянович?
Чарнота. Видите ли, какое дельце... Нельзя ли мне сегодня в кредит поставить
на Янычара?
Личико. Помилуйте, Григорий Лукьянович, не могу я.
Чарнота. Что же, я жулик, или фармазон константинопольский, или  неизвестный
вам человек? Можно бы, кажется, поверить генералу, который  имеет  свое
торговое дело рядом с бегами?
Личико. Так-то оно так... Скажите сами Артуру Артуровичу.
Чарнота. Артур Артурович!
Артур  (появляется  на  карусели,  как  Петрушка   из-за   ширм,   мучается,
пристегивая фрачный воротничок). В чем дело? Кому я  понадобился?  А!..
Чем могу?
Чарнота. Видите ли, я хотел вас попросить...
Артур. Нет! (Скрывается.)
Чарнота. Что это за хамство! Куда ты скрылся, прежде чем я сказал?
Артур (появляется). Так ведь я же знаю, что вы скажете.
Чарнота. Интересно - что?
Артур. Гораздо интереснее то, что я вам скажу.
Чарнота. Интересно - что?
Артур. Кредит - никому! (Скрывается.)
Чарнота. Вот скотина!

В ресторане появляются двое французских моряков, кричат:
"Эн  бок!  Эн бок!" ["Un bock! Un bock!" - "Кружку пива!
Кружку пива!" (фр.)] Лакей подает пиво.

Личико. Клоп по вас ползет, Григорий Лукьянович, снимите.
Чарнота. Да ну его к черту, и не  подумаю  снимать,  совершенно  бесполезно.
Пускай ползет, он мне не мешает. Ах, город!.. Каких я только городов не
перевидал, но такого... Да, видал многие города, очаровательные города,
мировые!
Личико. Какие же вы города видали, Григорий Лукьянович?
Чарнота. Господи! А Харьков! А Ростов!  А  Киев!  Эх,  Киев-город,  красота,
Марья Константиновна! Вот так Лавра пылает на горах, а Днепро,  Днепро!
Неописуемый воздух, неописуемый  свет!  Травы,  сеном  пахнет,  склоны,
долы, на Днепре черторой! И помню, какой славный бой  был  под  Киевом,
прелестный бой!  Тепло  было,  солнышко,  тепло,  но  не  жарко,  Марья
Константиновна. И вши, конечно, были... Вошь - вот это насекомое!
Личико. Фу, гадости какие говорите, Григорий Лукьянович!
Чарнота. Почему же гадость? Разбираться все-таки нужно в насекомых.  Вошь  -
животное военное, боевое, а клоп - паразит. Вошь ходит  эскадронами,  в
конном строю, вошь кроет лавой, и  тогда,  значит,  будут  громаднейшие
бои! (Тоскует.) Артур!
Артур (выглядывает во фраке). Чего вы так кричите?
Чарнота. Смотрю я на тебя и восхищаюсь, Артур! Вот уж  ты  и  во  фраке.  Не
человек ты, а игра природы - тараканий царь. Ну и везет тебе!  Впрочем,
ваша нация вообще везучая!
Артур. Если вы опять начнете проповедовать здесь  антисемитизм,  я  прекращу
беседу с вами.
Чарнота. Да тебе-то что? Ведь ты же венгерец!
Артур. Тем не менее.
Чарнота. Вот и я говорю: везет вам, венгерцам! Вот  чего,  Артур  Артурович:
хочу я ликвидировать свое предприятие. (Показывает на лоток.)
Артур. Пятьдесят.
Чарнота. Чего?
Артур. Пиастров.
Чарнота. Ты что же, насмешки строишь надо мной? Я штуку продаю по пятьдесят!
Артур. Ну и продолжай!
Чарнота. Вы, стало быть, и впредь намерены кровопийствовать?    (
Артур. Я вам не навязываюсь.
Чарнота. Счастливый вы человек,  Артур  Артурович,  не  попались  вы  мне  в
Северной Таврии!
Артур. Ну, здесь, слава богу, не Северная Таврия!
Чарнота. Возьми газыри. Серебряные.
Артур. Газыри вместе с ящиком - две лиры пятьдесят.
Чарнота. На, бери! (Отдает ящик и газыри Артуру.)
Артур. Пожалуйста. (Отдает деньги Чарноте.)

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

(Скрылся,  потом  опять  выглянул,  кричит.)  Пять  часов! Мы начинаем!
Пожалуйте, господа!

Над  каруселью  взвивается  русский  трехцветный флаг. В
карусели  гармонии  заиграли  залихватский марш. Чарнота
первым устремляется к кассе.

Чарнота. Давайте, Марья Константиновна, на две лиры пятьдесят на Янычара!

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

Артур. Мсье, дам! Бега открыты! Не виданная нигде в мире русская  придворная
игра! Тараканьи бега! Курс де кафар! Ламюземан  префере  де  ла  дефянт
эмператрис  рюсс!  [Courses  de  cafards!  L!amusement  prefere  de  la
defiante  Imperatrice  russe!  (фр.)]  Корсо  дель  пьятелла!  Рейс  оф
кок-рочс! [Corso del piatella! Races of cock-roaches! (ит., англ.)]

Появляются двое полицейских - итальянский и турецкий.

Первый  заезд!  Бегут:  первый номер - Черная Жемчужина! Номер второй -
фаворит Янычар.
Итальянцы-матросы (аплодируют, кричат). Эввива Янычарре! [Evviva Janicharre!
- Да здравствует Янычар! (ит.)]
Англичане-матросы (свистят, кричат). Эу эй!  Эуэй!  [Away!  Away!  -  Долой!
Долой! (англ.)]

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

Фигура. Опоздал?! Побежали?

Голос: "Поспеешь!"

Артур. Третий - Баба-Яга! Четвертый  -  Не  плачь,  дитя!  Серый  в  яблоках
таракан!

Крики:  "Ура! Не плачь, дитя!", "Ит из э суиндл! Ит из э
суиндл!"  [It  is  a  swindle! It is a swindle! - Афера!
Афера! (англ.)]

Шестой - Хулиган! Седьмой - Пуговица!

Крики: "Э трэп!" [A trap! - Ловушка! (англ.)] Свист.

Артур. Ай бег ер пардон! [I beg your  pardon!  -  Прошу  прощения!  (англ.)]
Никаких  шансов!  Тараканы  бегут  на  открытой  доске,   с   бумажными
наездниками!  Тараканы  живут  в  опечатанном  ящике  под   наблюдением
профессора  энтомологии  Казанского  императорского  университета,  еле
спасшегося  от  рук  большевиков!  Итак,  к  началу!  (Проваливается  в
карусель.)

Толпа игроков хлынула в карусель. Мальчишки появились на
каменном заборе. В карусели гул, потом мертвое молчание.
Потом   гармонии   заиграли  "Светит  месяц";  в  музыке
побежали, шурша, тараканьи лапки.
Отчаянный голос в карусели: "Побежали!"
Мальчишка-грек,   похожий   на  дьяволенка,  танцует  на
заборе, кричит: "Побезали, побезали!"
Крик в карусели: "Янычар сбоит!" Гул.

Чарнота (у кассы). Как сбоит? Быть этого не может!!

Голос в карусели: "Не плачь, дитя!"
Другой голос: "Давай, давай, давай!"

Убить Артурку мало!

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

Фигура (выбежав из карусели). Жульничество! Артурка пивом опоил Янычара!

Артур  вырывается  из  карусели.  Обе фалды фрака у него
оторваны,  цилиндр  превращен в лепешку, воротничка нет.
Лицо в крови. За ним гонится толпа игроков.

Артур (кричит отчаянно). Марья Константиновна, зовите полицию!

Личико исчезает. Полицейские свистят.

Итальянцы-матросы   (кричат).   Лядро!   Скрокконе!   Труффаторре!   [Ladro!
Scroccone! Truffatore! - Вор! Жулик! Мошенник! (ит.)]
Проститутка-красавица.   Бей   Артура,   Джанни!   (Артуру.)    Инганаторрэ!
[Ingannatore! - Мерзавец! (ит.)]
Матросы-англичане.  Hip!  Hip!  Hurah!  Лонг  ляйф  Пуговитца!  [Long   live
Pugowitza! - Хип, хип, ура! Да здравствует Пуговица! (англ.)]
Проститутка-красавица. Братики! Фрателли!  Кто-то  подкупил  Артурку,  чтобы
Пуговицу играть! Фаворит  трясет  лапками,  пьян,  как  зюзя!  Где  это
видано, чтобы Янычар сбоил?!
Артур (в отчаянии). Где вы видели когда-либо пьяного таракана? Же ву  деманд
эн пе, у э-секе ву заве вю эн  кафар  суль?  Полис!  Полис!  О  скур!..
[Police! Police! Au secours! - Полиция! Полиция! На помощь! (фр.)]
Проститутка-красавица. Мансонж! [Mensonge! - Ложь! (фр.)] Вся публика играла
Янычара! Бейте его, мошенника!
Итальянец-матрос (схватывает Артура за глотку, кричит). А,  мармалья!!  [Ah,
marmaglia!! - Жулье!! (ит.)]
Итальянцы (кричат). Каналья!!
Артур (томно). Убивают...
Боцман-англичанин (итальянцу). Стоп! Кип бэк!  [Stop!  Keep  back!  -  Стой!
Назад! (англ.)] (Схватывает итальянца.)
Фигура. Дай ему по уху!
Проститутка-красавица (англичанину). А, так вы заступаться?

Англичанин ударяет итальянца, тот падает.

Проститутка-красавица. О, соккорсо, фрателли! [A soccorso,  fratelli!  -  На
помощь, братишки!  (ит.)]  Бейте,  братишки,  англичан!  Итальянцы,  на
помощь!

Англичане    схватываются   с   итальянцами.   Итальянцы
вытаскивают ножи.
При  виде  ножей  публика  с  воем  бросается  в  разные
стороны.   Мальчишка-грек,   танцуя  на  стене,  кричит:
"Англицанов  резут!!"  Из  переулка,  свистя,  врывается
толпа итальянских и турецких полицейских с револьверами.
Чарнота  у  кассы,  схватывается  за  голову.  Сон вдруг
разваливается.
Тьма... Настает тишина, и течет новый сон...

24-Ruby IV
(To:ValeryOchkov)

Two frames from the movie The Run based on the M.Bukgakov book.