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

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

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

требуется: найти алгоритм, вычисляющий максимальное значение суммы элементов главной диагонали и порядка строк, соответствующего этой сумме, имеющий наименьший порядок зависимости от N. N2 вполне пойдёт.
From: [identity profile] 109.livejournal.com
нет, эта сумма не равна 1 (см. происхождение задачи)

ОК.

Date: 2002-11-30 08:13 am (UTC)
From: [identity profile] network-angel.livejournal.com
Как насчет такого варианта -

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

Re: ОК.

Date: 2002-12-01 10:11 pm (UTC)
From: [identity profile] 109.livejournal.com
ну так, поставим мы максимальный элемент одного столбцп на диагональ. а дальше?

А дальше

Date: 2002-12-02 06:52 am (UTC)
From: [identity profile] network-angel.livejournal.com
делаем то же самое со следующим.

Re: А дальше

Date: 2002-12-02 06:58 am (UTC)
From: [identity profile] 109.livejournal.com
что делать, если установка максимального элемента следующего столбца на диагональ требует свопа со строкой, чей диагональный элемент уже установлен?
From: [identity profile] network-angel.livejournal.com
И если надо трогать уже поставленную на место строку - смотреть насколько улучшится общее решение?
From: [identity profile] 109.livejournal.com
получаем бинарный алгоритм, описанный в самом первом моём комментарии. к сожалению, он не гарантирует нахождение абсолютного максимума.

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