align="justify"> if (W [i]> Weight) or (Value [Weight, i-1]> = Value [Weight-W [i], i-1] + P [i]) then
{якщо вага предмета більше ніж поточний вага рюкзака}
{або попередній набір дорожче обираного}
begin [Weight, i]: = Value [Weight, i - 1];
{тоді беремо попередній набір}
Take [Weight, i]: = false; {говоримо що річ i не взяти}
end
else begin {інакше додаємо до попереднього набору поточний предмет}
Value [Weight, i]: = Value [Weight - W [i], i-1] + P [i]; [Weight, i]: = true; {говоримо що річ i взята };;; Done; (output, 'output. txt'); (output); ('Найкращий набір', Value [MaxWeight, N]);: = MaxWeight; i: = N downto 1 do if Take [Weight, i] then begin (i, '');: = Weight-W [i];; (output);;;;
Done;
end.
Висновки
В ході курсової роботи була вирішена задача про ранці за допомогою методу неявного лексикографічного перебору. Метод заснований на процедурі перебору окремих точок області можливих рішень, аналогічної впорядкування слів у словнику. br/>