LINUX.ORG.RU

Я бы применял генетические алгоритмы и всякую срань с нейронными сетями.

bk_ ★★
()

Есть такая шняга: имитационное моделирование.
Сыплешь рандомайзы и какбэ выполняешь свои типазадачи.

vada ★★★★★
()

Навскидку попробуй промоделировать задачу с помощью графа.

Навскидку, возьми всевозможные состояния (выполнено k задач из N1 и m задач из N2, с возможными переходами в другие состояния в виде ребер и весами на них в виде времени выполнения). Тебе лишь надо будет найти длину минимального пути из состояния k=0,m=0 в k=N1, m=N2.

Единственный трабл, что граф может слишком большим выйти. Зависит от размера N1 и N2.

Может получиться получше смоделировать. Чтоб не так много узлов было.

dikiy ★★☆☆☆
()
Ответ на: комментарий от soomrack

откуда задача?

В универе такой предмет есть - алгоритмы

hired777
() автор топика

Тут надо придумать какой-то алгоритм, типа жадного. Не факт, что он будет находить лучшее решение.

hired777
() автор топика
Ответ на: комментарий от hired777

Единственный трабл, что граф может слишком большим выйти.

Так и получается /=

можно попробовать уменьшить с помощью условия, что не может быть две задачи загружены на один и тот же процессор подряд.

dikiy ★★☆☆☆
()
Ответ на: комментарий от hired777

Единственный трабл, что граф может слишком большим выйти.

Так и получается /=

да и вообще неплохо бы знать размер входных данных. Ну сколько задач и т.п. Бо по ссылке там по 5 задач. А в этом случае граф получается маленьким.

dikiy ★★☆☆☆
()
Ответ на: комментарий от hired777

Так и получается /=

ну и если я нигде не ошибся, то количество вершин в графе будет (без учета граничных условий задачи) (N1+N2)!/(N1!N2!). Скорость поиска наикратчайшего пути O(n^2), где n - это количество врешин).

При количестве задач N1=N2=15 получаем вполне еще вменяемое время выполнения 2.4e16.

dikiy ★★☆☆☆
()
Ответ на: комментарий от Xenius

Ну должны же где-то храниться входные данные и результат?

А уж в реализации, естественно, stdin/stdout. И просто запускаем программку:

./a.out < input.txt > output.txt

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ну должны же где-то храниться входные данные и результат?

А уж в реализации, естественно, stdin/stdout. И просто запускаем программку:

./a.out < input.txt > output.txt

Это всё как раз понятно, но тогда в условиях задачи имя файла фигурировать как раз не должно.

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

тогда в условиях задачи имя файла фигурировать как раз не должно.

Почему же? В олимпиадах так: в директории с заданием лежит файл input.txt. Ты должен добавить туда файл program.c, скомпилированный в a.out и выхлоп - output.txt.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.