|
Тема |
Re: Задача с вектори [re: Sargon lll] |
|
Автор |
Пporpaмиcт-дъpвo (плебей) |
|
Публикувано | 07.06.09 21:16 |
|
|
>> "Известна е и дължината на тези вектори."
>> "Аз примерно направих в моята програма пълна пермутация на елементите и изследване на всяко възможно състояние, като накрая се намира най-доброто разположение."
Примерно един такъв алгоритъм:
Сортираме векторите по дължини в низходящ ред. Избираме за първия (най-големия) произволна посока. На втория задаваме такава посока, че сумата му с първия да бъде вектор с минимална дължина. На третия по големина вектор задаваме такава посока (от все още незаетите посоки), че сумата на третия с резултантния на първите два да бъде вектор с минимална дължина. После по посочената схема намираме посока и за четвъртия вектор. И т.н. докато изчерпим всички вектори. Ако на дадена стъпка се получи така, че две или повече посоки дават за текущия вектор (този, чиято посока се изчислява в момента) резултанта с една и съща минимална големина, избира се произволна от тези посоки.
Това е greedy-алгоритъм с квадратична сложност.
Искам контрапример, тоест такова множество от вектори, за които даденият greedy-алгоритъм намира решение, което не е оптимално. При това да се посочи оптималното решение. Освен това примерът да бъде с възможно най-малък брой вектори (да означим този брой с Alpha), такъв че даденият алгоритъм винаги намира оптималното решение за (Alpha-1) на брой вектори, но съществува такова Alpha-елементно множество от вектори, за което даденият алгоритъм намира решение, което не е оптимално. Според мен Alpha>=5.
Вселената е само едно петно всред чистотата на небитието.
|
| |
|
|
|