109: (Default)
[personal profile] 109
вот, кстати, задачка, с которой я в своё время столкнулся по поводу игрушки vga planets.

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

иными словами, имеется квадратная матрица NxN, удовлетворяющая условиям:
- все элементы матрицы принадлежат отрезку [0,1]
- сумма элементов каждой строки равна 1
- строки можно переставлять местами

требуется: найти алгоритм, вычисляющий максимальное значение суммы элементов главной диагонали и порядка строк, соответствующего этой сумме, имеющий наименьший порядок зависимости от N. N2 вполне пойдёт.
From: [identity profile] manco.livejournal.com
Цепочка рассуждений неверна в п3 - это еще называется ловушка локального минимума.
А еще есть подозрение, что задача эквивалентна знаменитой задаче о рюкзаке, которая NP-полна, поэтому есть шанс, что если вы ее решите, то докажете, что P=NP :)
From: [identity profile] 109.livejournal.com
а можно поподробнее? почему 3 неверно, если оно непосредственно следует из 1 + 2?

и каков же правильный алгоритм?
From: [identity profile] manco.livejournal.com
Не следует потому что в 2) говорится что хотя бы 1 бинарная улучшающая есть, а Вы пытаетесь построить перестановку из одних только улучшающих бинарных.

Ловушка локального минимума это такая штука:
Допустим у вас есть некоторая неровная поверхность, и нужно найти на ней самую низкую точку - вы берете стальной шарик, кладете его в произвольную точку на поверхности, он начинает катится под действием силы тяжести - когда остановится это и будет искомый минимум. Но это не всегда верно - представьте, что вам повезло первым шагом положить его в неглубокую ямку на вершине высокой горы. И все это несмотря на то, что шарик всегда катился только вниз.

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

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags