| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Флейм > go_brut_x |
| Автор: GrayCardinal 2.8.2023, 15:38 |
| Что вы думаете о (моём) способе решать уравнения тупым перебором x-ов ? На golang сабж https://sourceforge.net/projects/go-brut-x/ Олег. |
| Автор: LSD 2.8.2023, 23:43 |
| Я думаю, как так получилось что SourceForge был топ сайтом для OSS проектов, но так просрал все полимеры. Я так и не понял куда мне тыкать, чтобы просмотреть код. |
| Автор: GrayCardinal 3.8.2023, 03:05 |
| Элементарно $ svn checkout svn://svn.code.sf.net/p/go-brut-x/svn/ go-brut-x-svn прошу прощение у модераторов за сылку на другой форум. https://www.cyberforum.ru/go/thread3123098.htm А так.. Может это сюда замутить ? Добавлено через 8 минут и 32 секунды https://www.cyberforum.ru/go/thread3123098.html |
| Автор: GrayCardinal 3.8.2023, 04:00 |
| Oldshelf, Спасибо. Подсобите хоть чем-нибудь ? В одно рыло вкалывать несподручно. Его доделать можно красиво :( Добавлено @ 04:02 Я свинку обновил, если что... Добавлено @ 04:04 Короче - на киберфоруме лежит в разделе Golang Добавлено через 5 минут и 55 секунд Блин - что такое -9 в Си ? Заранее спасибо. Олег. Добавлено через 11 минут и 30 секунд P.S Код в архиве лежит тупо в файлосах. |
| Автор: GrayCardinal 3.8.2023, 07:48 |
| А самое красивое то- что оно летает на 3.6Ghz |
| Автор: ТоляМБА 3.8.2023, 20:23 |
| Зашёл во флейм, А тут такое, Что я немного прифигел. |
| Автор: GrayCardinal 4.8.2023, 03:05 |
| ТоляМБА, Ща двоечка будет |
| Автор: Oldshelf 4.8.2023, 04:26 |
Разве что на этом форуме попробую что-то подсказать. Больше сейчас не потяну. |
| Автор: GrayCardinal 4.8.2023, 06:29 |
| /usr/bin/ld: невозможно открыть выходной файл /tmp/a.out: Нет такого файла или каталога :( Добавлено через 5 минут и 46 секунд stage2 RootT4.000000 fl = 4.000000 error done Добавлено через 14 минут и 21 секунду Ща форматну нах и opensuse поставлю (ща debian) a.out второй раз в tmp не пишет |
| Автор: GrayCardinal 4.8.2023, 11:06 |
| А логарифмы считать вообще торчу |
| Автор: LSD 5.8.2023, 16:00 | ||
Спасибо, вернул мой 2007. Чекаутить его я конечно же не буду. В чем проблема вставить код непосредственно сюда? |
| Автор: GrayCardinal 5.8.2023, 16:03 |
| "Спасибо, вернул мой 2007" Не понял шутку. Добавлено через 4 минуты и 49 секунд Дошло. Счастливо мудохаться с GIT Добавлено через 8 минут и 12 секунд P.S у меня 2006-ой. |
| Автор: GrayCardinal 6.8.2023, 06:27 |
| НА. |
| Автор: LSD 10.8.2023, 23:15 | ||
Нет не дошло. Речь идет о том, что гитхаб позволяет посмотреть код, без регистрации и СМС. А еще у Go есть есть https://go.dev/play/ который позволяет выкладывать код с возможностью запустить его и посмотреть результат. А еще на форуме есть кнопка Код которая позволяет вставлять куски кода (да подсветки Go нет, но код вставить можно).
Но нет, ты предпочитаешь использовать технологии древних. ![]() |
| Автор: GrayCardinal 11.8.2023, 17:33 |
| LSD, Кошерные же, технологии Вообще смотрел на ютубке про гит. Так там вообще - хоть архивчиками, как команда договорится. Архивчег одной командой делается, кстати. |
| Автор: GrayCardinal 11.8.2023, 17:52 |
| И вообще, если Вам впадлу код прогрузить мелкомягких - Ваши проблемы. |
| Автор: LSD 13.8.2023, 23:18 | ||||
Ничего ты не понял. P.S. Код ### только из-за брутфорса. За брутфорс в прод коде, надо быть ногами по перформанс ревью. |
| Автор: Oldshelf 14.8.2023, 02:02 | ||
Как сказать. Иногда брутфорс в коде способен давать неожиданные результаты, отличные от полученных в других подобных программах, создатели которых видимо опасаются пинков. К примеру в тех же шахматах полный перебор дерева может слегка разнообразить игру, позволив отыграть позиции, пропущенные более оптимизированными движками. |
| Автор: GrayCardinal 14.8.2023, 06:49 |
| LSD, Ха. Линейки и степенные у меня другой софт считает Oldshelf, Спасибо |
| Автор: LSD 14.8.2023, 23:56 | ||||
Это всего лишь означает, что реализация не брутфорс алгоритма неправильно его реализовал. (бывают исключения когда не буртфорс алгоритм дает субоптимальное или приблизительное решение, но это всегда оговаривается)
1. В шахматах полный перебор разве что в эндшпиле можно использовать, а в дебюте никаких мощностей не хватит. 2. Если цель именно разнообразие, то можно просто в процесс принятия решений добавить немного рандома. А если цель выиграть, то современные шахматные программы играют сильнее любого шахматиста человека, без всякого полного перебора. |
| Автор: Oldshelf 15.8.2023, 03:35 | ||||||
Имел в виду, когда возможны несколько правильных ответов и оптимизация добавляет алгоритму слепоты.
Понятно, что полный полный перебор невозможен в принципе. Даже в случае с любыми оптимизациями всё дерево целиком никогда не просчитать. Но до определённой области видимости, в зависимости от мощностей, можно считать все позиции. Иногда находятся неожиданные и оригинальные ходы.
Именно так. Глупо было бы делать полный перебор с единственным лучшим результатом. Но выбирать из большего количества позиций, полученных в ходе такого перебора интереснее, чем из меньшего, ограниченного оптимизациями. |
| Автор: GrayCardinal 16.8.2023, 16:59 |
| LSD, Там алгоритма то нема. Чтоб его "неправильно". |
| Автор: LSD 17.8.2023, 00:53 | ||||
Именно так, современные шахматные программы и работают. 1. Просмотреть все возможные текущие ходы. 2. Отбросить заведомо слабые. 3. Повторить до достижения некой заданной глубины просчета. 4. Оценить силу позиции. 5. Плюс кешировать результаты предыдущих подсчетов.
Кому интереснее? Паре зануд на богом забытом форуме? Заказчики хотят чёткий, детерминированный результат. Они не хотят выбирать из десятка предложенных решений. Курьерским компаниям нужен четкий маршрут для курьеров, а не квиз можно поехать так, а можно по другому - выбирай. В этом то и проблема, ты от балды придумал задачу (перебрать все возможные решения уравнения от -X до +X с шагом Y), радостно решил и спрашиваешь мнение. Ну молодец, чо. Hello world на стероидах написал. Хочешь потренироваться в алгоритмах порешай литкод. Хочешь потренироваться в Го поработай с OSS проектами. |
| Автор: Oldshelf 17.8.2023, 03:40 | ||||
Противоречивые пункты. Если отбрасывать заведомо слабые, то просмотреть все не получится. В этом и суть оптимизаций - сократить количество вычислений, для сокращения времени расчёта. При полном переборе без этого тоже никак. Здесь не понял. Для чего? Следующего расчёта при полном повторении просчитанной позиции? Тогда уж лучше использовать готовые дебютные или эндшпильные базы. Наверное, тому кто будет играть с данной программой. Чем выше вариативность, тем лучше реиграбельность, а значит и интерес к повторным партиям.
Этим и отличается работа от развлечения. В одном случае нужен максимально эффективный результат, в другом - необязательно настолько эффективный (а зачастую даже желательно), но зато более разнообразный. Программы нужны для той и другой сфер. |
| Автор: LSD 20.8.2023, 17:51 | ||||
Очевидно же, берется все возможные ходы их текущей позиции. Дальше смотрим какие из них слабые, какие сильные. Слабые исключаем из дальнейшего рассмотрения, а сильные ходы по этой же методике продолжаем оценивать дальнейшие варианты. Если это действительно полный перебор, то он заканчивается победой, поражением или ничьей. И оценивать там нечего.
Потому что мы уже смотрели эту ветку и если противник походит одним из способов, который мы просчитывали, то у нас уже есть рассчитанное дерево вариантов можно туда еще один уровень добавить и все. |
| Автор: Oldshelf 21.8.2023, 04:23 | ||||||||
Понятно. Да, так получится так или иначе оценить все текущие ходы, но будут отброшены многие варианты ходов на следующих ветвлениях, что в итоге прогрессивно сократит общее число рассматриваемых позиций. В силу того, что абсолютно совершенного алгоритма оценки бесперспективных ходов, без их дальнейшего просчёта, не существуют (есть множество разных подходов, одни чем-то лучше, другие хуже), нельзя быть точно уверенным, что не окажется отброшен потенциально сильный ход, который просто не укладывается ни в одну известную стратегию.
Так себе оптимизация. Добавление всего одного уровня создаст количество вычислений в разы превосходящее все просчитанные варианты. Таков принцип ветвления. |
| Автор: LSD 24.8.2023, 23:20 | ||||||
Есть компромисс: считать на N ходов вперед с перебором всех вариантов, или считать на 2N-5N ходов отбрасывая заведомо неудачные варианты. Можно взять одну и ту же программу, подкрутить там настройки и тупо сравнить кто сильнее играет. И вполне очевидно кто победил в итоге. Плюс в любом случае, и после N ходов, и 5N ходов, все заканчивается оценкой силы позиции, где применяются те же критерии.
На данные момент методы оценки силы хода достаточно совершенны. Может полный перебор раз в 100500 партий и сделает хороший и неожиданный хол, но в остальных случаях он будет делать более слабые ходы (чем оптимизированный вариант).
Ты не понял про что я говорил. |
| Автор: Oldshelf 25.8.2023, 06:41 | ||||
Согласен. Если учесть, что компьютер рассчитывает свой ход, потом ответ и так далее, то сделав свой ход и получив на на него ответ человека, компьютер получит дерево на два уровня меньше. Так что просчитывать до нужного уровня придётся на два порядка больше. То есть количество незакэшированных расчётов возрастёт в x*x (где x может достигать, наверное, хоть 10, даже с оптимизацией и отбросом заведомо невыгодных ходов). На этом фоне добавление к этой сотни, заранее просчитанной единицы, выглядит не очень. Особенно с учётом того, что это потребует дополнительного кода для работы с кэшем, хранения и обработки, то есть лишних, хоть и крайне незначительных, но определённо совершенно бесполезных, вычислительных затрат и немного усложнит код, что иногда бывает намного хуже.
Так и есть. Суть не в выигрыше компьютера у человека. С этой задачей он сегодня сегодня прекрасно справляется. Дело в нахождении неожиданных и потенциально интересных ветвлений. Чтобы у игрока был больше интереса к игре.
Это, да. Хотя, насчёт тупого сравнения не вполне соглашусь. Есть даже анекдот про непобедимую компьютерную программу, которая играет "от балды", но ей крайне везёт. В этом есть какая-то доля истины. Потому что оптимизированная программа будет иметь заведомо меньший набор, хотя и более сильных, ходов. И не факт, что среди намного большего количества возможных ответов не найдётся достаточно эффективный. Дело в количестве итераций. Если же эта очень сильная программа будет очень сильно оптимизированной, вроде https://www.dreamchess.org (у неё, кстати отличный интерфейс и прямо - "мечта"), то тут будет уместно применить то самое кэширование и, повторив определённое разнообразное количество итераций, найти выигрышную стратегию. После чего, можно будет постоянно обыгрывать эту, довольно неплохо оптимизированную и сильную программу. |
| Автор: Bulat 11.10.2023, 10:02 | ||
А вот и нифига!!!!! Сколько шахматных партий заканчиваются позицией "белые сдались" или "черные сдались" даже не доходя до эндшпиля в миттельшпиле? Когда играешь с опытным и сильным соперником - достаточно получить хорошее преимущество на шахматных тонкостях - и опытный игрок сможет это преимущество довести до победы! Разве что совсем на гроссмейстерском уровне заранее лучше не загадывать... Поэтому и в дебюте можно использовать полный перебор! |
| Автор: LSD 11.10.2023, 22:10 | ||
![]() |