Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#46: 2013-02-15 11:38:22 ЛС | профиль | цитата
Tad, ну я же в кавычки взял.

И не первый день мы знакомы.
И знаю я, что ты ЗА
О чем и написал
карма: 9

0
Ответов: 8918
Рейтинг: 823
#47: 2013-02-15 11:40:24 ЛС | профиль | цитата
[flood]Не только
Tad писал(а):
"Умный обход" дело хорошее
но и трудное. Кроме того всегда найдётся блондин(ка), чьи действия предусмотреть невозможно [/flood]
карма: 19

0
Ответов: 9906
Рейтинг: 351
#48: 2013-02-15 12:12:38 ЛС | профиль | цитата
В качестве предварительных итогов.

Большие глюки кончились, видимо.
Остался тонкий тюнинг... Субъективный, конечно же.
Как я выше отмечал, тактика прокладывания трассы определяется "прайс-листом"
  dPrice:array[0..15,0..4] of smallint = // массив штрафов за проход по матрице состояний
// Hline Vline Hline Vline
// red red black black Corner
(( 1, 1, 1, 1, 5), // чистое поле
( 2, 2, 2, 2, 40), // элемент
( 10, 40, 2, 40, 40), // красный пин
( 10, 2, 40, 40, 40), // черный пин
( 10, 2, 10, 2, 40), // гориз. связь
( 10, 2, 10, 3, 40), // гориз. связь + элемент
( 10, 40, 10, 40, 40), // гориз. связь + красный пин
( 10, 3, 40, 40, 40), // гориз. связь + черный пин
( 2, 10, 2, 10, 40), // верт. связь
( 3, 10, 2, 10, 40), // верт. связь + элемент
( 10, 40, 3, 40, 40), // верт. связь + красный пин
( 10, 10, 40, 40, 40), // верт. связь + черный пин
( 10, 10, 10, 10, 40), // гориз. + верт. связь
( 10, 10, 10, 10, 40), // гориз. + верт. связь + элемент
( 10, 40, 10, 40, 40), // гориз. + верт. связь + красный пин
( 10, 10, 40, 40, 40)); // гориз. + верт. связь + черный пин
Это штрафы, за прохождение по соответствующему месту схемы...

К чему это я. В принципе, рукосойство именно в этом месте - приветствуется, если его результаты вынесены на обсуждение
Мне думается, многие смогут собрать код из исходника... (опять же - и помочь в этом не сложно)
Чтобы проверить результаты, и поделиться ими с коллегами.

Ну например, сегодня мне кажется, что "троечки" в этом массиве - по делу (выложенные мной варианты, в этих местах "двоечки" содержат)
Почему мне так кажется... Вот код
Add(EventFromData,12836364,273,420)
{
}
Add(EventFromData,7016539,273,476)
{
link(onEvent,12836364:doData,[(312,482)(312,468)(263,468)(263,426)])
link(Data,12836364:GetData,[])
}
Уберите красную линию - будет красивше.

В общем - тонкий тюнинг

Редактировалось 1 раз(а), последний 2016-10-22 08:51:37
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#49: 2013-02-15 12:16:12 ЛС | профиль | цитата
Вот я так подумал, что вот такая разводка

111_003.png

смотрелась бы лучше бы так

111_004.png

или так

111_005.png

Это мое ИМХО, ничего больше
------------ Дoбавленo в 12.16:
Galkov писал(а):
Уберите красную линию - будет красивше

А как я предлагаю, еще красивше смотрелось бы. ИМХО

111_006.png
карма: 22

0
файлы: 4111_003.png [2KB] [913], 111_004.png [2KB] [915], 111_005.png [2KB] [915], 111_006.png [2KB] [887]
Ответов: 9906
Рейтинг: 351
#50: 2013-02-15 12:20:08 ЛС | профиль | цитата
Вот я и предлагаю же подумать с калькулятором в руках
То, чего ты говоришь - штраф за пересечение должен быть больше 8 (или больше?) простых шагов

А как в других местах получится
Попробуй
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#51: 2013-02-15 13:12:53 ЛС | профиль | цитата
Galkov писал(а):
Попробуй

Попробовал заменить все 2-ки на 10-ки, мне пока понравилось больше, но надо глубже тестировать

111_007.png

А вот так не прокатило, что отвечает за обход при наличии гориз связи с элементом
Почему связь не пошла по пустому месту вокруг элементов, а обязательно пересекла линию, когда вокруг свободно

111_008.png
карма: 22

0
файлы: 2111_007.png [5.1KB] [850], 111_008.png [2.5KB] [852]
Ответов: 9906
Рейтинг: 351
#52: 2013-02-15 14:36:47 ЛС | профиль | цитата
Все очень просто, на самом деле-то. Аж до безобразия

Мы прокладываем трассу же не просто так, а по какому-то "лабиринту"
Чего может стоять не поле? Элемент (ака Body), пин, и провод. Или ничего не стоять
Ну вот, нулевая строка - чистое поле
Первая строка - Элемент
И.т.д..(см комментарии на эти строки)

И за каждый ход ты "платишь некоторые деньги". В зависимости от того, какой и куда (это первые 4 столбца матрицы) провод проводишь.
Плюс к этому штрафу, добавляется штраф за развороты, коль скоро они появятся. Это пятый столбец (под номером 4).
Вот и вся наука

Вот ты спрашиваешь "почему"... Потому что за проход по пустому месту - тоже надо платить. Тем больше, чем дольше ты ходишь. Хоть и по пустому месту
Место-то пустого много, но должно же быть какое-то преимущество у более короткого пути перед длинным...


В общем так.
Стратегия - найти путь за минимальные деньги. Вроде бы эта часть работает. Не будет работать - заставим.

Тактика - конкретные суммы налога.
Не надо думать, что я уже пол-года вылизываю эти "двоечки" и "пятерочки". Так, за полчасика набросал, когда оно начало реально работать.
Ну вот вам, реальное поле, для реальных экспериментов.
Результат-то по любому субъективным будет.
Следовательно, было бы более правильно, чтобы он был суммой многих субъективных мнений, а не только моего

карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#53: 2013-02-15 15:14:56 ЛС | профиль | цитата
Galkov писал(а):
Место-то пустого много, но должно же быть какое-то преимущество у более короткого пути перед длинным...

Насколько я понял, то нужно увеличивать штрафы за пересечения, неважно чего. А вот за повороты можно и снизить

------------ Дoбавленo в 15.14:
Все же никак не пойму -- как установить приоритет на прохождение по пустому месту в сравнении с проходом через свзь другого типа
карма: 22

0
Ответов: 3349
Рейтинг: 233
#54: 2013-02-15 15:22:07 ЛС | профиль | цитата
Galkov, BFS
карма: 1

0
Ответов: 9906
Рейтинг: 351
#55: 2013-02-15 15:35:21 ЛС | профиль | цитата
Ivann писал(а):
Galkov, BFS

Не совсем так.
Очередность обработки в коде определяется не только ценой УЖЕ пройденного пути, но и ПЛЮС некоторый прогноз (именуемый в коде castPrice).
При некоторых условиях на эту прогнозирующую функцию - есть гарантии, что наденный путь будет именно минимальной стоимости.
А именно: цена пройденного пути + прогноз -- не должны превышать реально полученного в последствии.

Мне казалось, что BFS - это когда прогнозирующая ф-ия есть тождественный ноль.
Хотя я могу ошибаться.
карма: 9

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#56: 2013-02-15 17:21:59 ЛС | профиль | цитата
Я че-то не въеду -- что такое

гориз. связь + красный пин
...
верт. связь + черный пин
...
гориз. + верт. связь + элемент
гориз. + верт. связь + красный пин
гориз. + верт. связь + черный пин
...


Да и вообще, что понимается под гориз. связью, верт. связью и гориз. + верт. связью
карма: 22

0
Ответов: 9906
Рейтинг: 351
#57: 2013-02-15 18:04:27 ЛС | профиль | цитата
Ну ты чего такой ленивый-то

tracespy.png

1) голубенький кубик - элемент
2) просто синий кружок - красный пин
3) синий кружок на голубом кубике - черный пин
4) верт. красная черточка - вертикальная связь
5) гориз. красная черточка - горизонтальная связь

сравни со схемой - чего там можно непонять...
четыре бита - 16 вариантов (строк в матрице)
------------ Дoбавленo в 18.04:
nesco писал(а):
Все же никак не пойму -- как установить приоритет на прохождение по пустому месту в сравнении с проходом через свзь другого типа

Если бы мы считали в действительных числах - надо было бы уменьшать "единичку" в нулевой строке, например в десять раз
Но все в мире относительно => можно все остальное увеличить (например - 10 раз)
карма: 9

0
файлы: 1tracespy.png [81.3KB] [806]
Разработчик
Ответов: 26113
Рейтинг: 2126
#58: 2013-02-15 18:50:32 ЛС | профиль | цитата
Galkov писал(а):
1) голубенький кубик - элемент2) просто синий кружок - красный пин3) синий кружок на голубом кубике - черный пин4) верт. красная черточка - вертикальная связь5) гориз. красная черточка - горизонтальная связь


Это я, в принципе, понял. Я не могу понять именно некоторые позиции. Как проходит, к примеру

гориз. связь + красный пин

И что из себя передставляет

гориз. + верт. связь
Перекрестие, что ли

А что такое линия + элемент, как она получается, когда все линии выходят из точек

А это вообще выше моего понимания

гориз. + верт. связь +  элемент
гориз. + верт. связь + красный пин
гориз. + верт. связь + черный пин

Как это на схеме выглядит-то
карма: 22

0
Ответов: 1058
Рейтинг: 76
#59: 2013-02-15 19:30:56 ЛС | профиль | цитата
nesco писал(а):
И что из себя передставляет

Насколько я понял то это
code_30342.txt
карма: 0

0
файлы: 1code_30342.txt [978B] [466]
Ответов: 9906
Рейтинг: 351
#60: 2013-02-15 20:47:32 ЛС | профиль | цитата
tom-it писал(а):
Насколько я понял то это

Ну да. Если последний элемент на несколько щелчков вверх поднять

nesco писал(а):
Как это на схеме выглядит-то

Ну я схему же не рисую.
Вертикальные линии на схеме бывают ??? Да
Горизонтальные линии на схеме бывают ??? Да
Пины на схеме бывают ??? Да сколько хочешь
Значит может быть и любая их комбинация.
Раз может, значит надо уметь его обрабатывать

Add(EventFromData,3822108,672,308)
{
}
Add(Hub,12586497,728,266)
{
link(onEvent1,946125:doEvent1,[(758,272)(758,309)(620,309)(620,363)])
}
Add(Hub,946125,651,357)
{
link(onEvent1,12586497:doEvent1,[(678,363)(678,272)])
}
------------ Дoбавленo в 20.47:
Ну или по другому: чтобы догадаться, что так делать нельзя (скажем - поворот на пине), надо полезть в матрицу, и увидеть там офигенный штраф
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)