Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Математические методы в системах поддержки принятия решений

..pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
16.41 Mб
Скачать

А л г о р и т м

 

и Я0 = Е, Е-единичная матрица.

1.

Задать начальное приближение

2.

Вычислить градиент критериальной функции Л-^0)) в точке х<°> и проверить выпол­

нение условия ||gra4rt^0))|| £ е, е > 0; если оно выполняется, то

— искомое решение; в

противном случае -

перейти к операции 3.

 

3.

Вычислить

величину шага OQ на

направлении - grac!/(.x<0)) из решения задачи

<х0 = aig m in/(jc(0) -ag rad /(x (0))).

а>0

4.Вычислить х*1) = х<0) - Oograd/(^0)).

5.Вычислить grad/(x<0)) в точке х*1), и если ||g ra ^ ^ 1)|| й е, е > 0, то х<!>— искомое ре­ шение, иначе - перейти к операции 6.

6.Вычислить Ag0 = grad/jy1*) - gmffbflb).

7.Сформировать матрицу

-

f f

, flo#ngrad/(x<0))(айЯ о8га<У(х(0) ) f

H0&gaAgJiff

'

°

(а 0Я ogra<y(jc<0) ))r Ag0

Ag[H0Ag0

8. Перейти к операции 2 и выполнить последовательность соответствующих вычисле­ ний для точки с индексом, увеличенным на единицу.

Метод сопряженных направлений. В случае, когда на каком-то этапе поиска оптимального решения отдается предпочтение алгоритму реше­ ния задачи

minf(x), х е R 1,

где fix ) — произвольная выпуклая неквадратичная непрерывно диффе­

ренцируемая функция, основанному на итерационном процессе

х ш = * * " Р \Н к/ \ х к), А: = 0, 1,

К = argmin/(x* - $ kH kf ' ( x k)), p* > 0,

возникает необходимость учета важного обстоятельства: в различных точках хк>к = 0,1, 2,... из-за неквадратичности функции fix) элементы матрицы Нк = (П х*))-1 могут иметь различные значения и векторы ек = - Н / '( х к) не будут сопряженными, т.е. не будут указывать направле­ ния убывания функции fix), в результате этого сходимость метода мо­

жет нарушиться. Для исключения этого обстоятельства необходимо выбрать начальную точку х0 в достаточно малой окрестности точки х"; тогда в любой точке этой окрестности исследуемая критериальная функция достаточно точно аппроксимируется квадратичной функцией, и векторы ек, к = 0, 1,... будут Нк — сопряженными (ортогональными),

т.е. (//*+|£*+i, в<) = 0» i * к + 1.

Приведем одну из схем алгоритма метода сопряженных направле­ ний.

Ал г о р и т м

1.Задать х0.

2. Проверить условие /'(х 0) < у. При его выполнении - получено оптимальное реше­ ние, иначе — перейти к операции 3.

И -5 3 9 6

161

3. Аппроксимировать функцию Дх) в окрестности х0 квадратичной функцией

<р(х) = j(f" ( x 0)(x - х0), (х - х0)) +Л*о)-

4. Задать Н0 * (Г'(*о))“ 1= Е, Е единичная матрица.

5.Найти в\ = # 0/'(хо).

6.Вычислить p j = aig min f ( x 0 - $ o H Qf'(x 0)).

p0>o

7.Вычислить Xj = x0 +

8.Проверить условие /'(x j) £ у 5если оно выполняется, то оптимальное решение най­ дено, в противном случае — перейти к операции 9.

9. Вычислить Н Х= Н 0 Яо(Я*|)- П х о))(/'(*,)- Л*о ))ГЯр

Я0(/'(*| )-/'<*o)).</'(*i)-/'(**))

10.

Перейти к оп. 5

для к = 2, 3,...» л.

Н2п = £ ,... и перейти к операции 5 для

11.

При £ = //, 2 л ,

... задать Нп - Е ,

&= л + 1,..., 2п - 1.

Метод Келли. В основу метода положено известное утверждение: выпуклую конечную функцию Д х) на R” можно представить как верх­ нюю огибающую семейства гиперплоскостей, касательных к Дх) в вы­ бранном семействе точек х* = (*, ,х 2 , - ,х ,к) е R ", т.е. выпуклая функция

есть максимум линейных функций. Тогда для гладкой Дх) поиск иско­

мого решения заключается в реализации следующих операций.

Ал г о р и т м

1.Выбрать произвольно точку х0 из £2 с Rn\ Cl — выпуклый компакт в виде много­ гранного выпуклого замкнутого множества, его выбор осуществляется по априори дан­

ным.

2. Составить выражение для касательной кДх) в точке х0

Л*) :/о(*о> *) =Л *о)+ (П*о), х - *о),

на последующих (по результатам оп.4) шагах — в точках Х|, х2, ...»X/.

3. Найти х, как решение задачи: z min при ограничении.Д^о) + (Г(*о)>х “ *о) ^ Z на множестве £2, z € Л1, т.е. как задачи линейного программирования (ЛП), сформированной в соответствии с методом отсекающей гиперплоскости.

4. Проверить условие f '( x x) й у, где у> 0 — заданное число, а х х — решение задачи оп. 3. Если оно выполнено, то х х — искомое решение, х х = х*, в противном случае необхо­ димо перейти к операции 5.

5. Найти х2 — решение задачи ЛП вида:

Z —> Ш1П

при ограничениях

Л(*о> •*) —А*о) (f (*б)»х хо)

fi(x u х) =АХ\) + (T(*i). x - x t) * z

на множестве £2, z e Rx.

Далее выполнить действия, как и в оп. 4.

162

Метод регуляризации. Если задача min/{x), х е Л", «плохая», то ее регуляризируют, т.е. формулируют в виде Ф„(х) =Д х) + а£1(х), где Q(x) -

хорошая сильно выпуклая непрерывная регуляризирующая функция,

а > 0 — параметр регуляризации. Тогда искомое решение х' = limx„,

<х-»0

где ха — решение задачи minФа(х), х е Rn. Структура алгоритма поиска х* основывается на итерационном процессе, например, вида

х*+1 = aig min(/(x) + 0,5ak\\x - х*||2), к = 0, 1, 2,...,

в котором при каждом а* > 0 значении минимизация функции

Дх) + 0 ,5 с ф - х*||2

осуществляется одним из вышеизложенных методов, например гради­ ентным при каждом а*. Тогда х м = х к -|}*УФа (х Д а значение Оо вы­

бирается в процессе вычислительного эксперимента согласно погрешностям задания исходных данных (о0 > а{ > а2 > ... >ак > ...). Так,

для задачи линейного программирования вместо исходной ее постанов­ ки min(c, х), Ах й b следует отыскивать решение последовательности за­ дач min{(c, х) + а*||х||2}, Ах<Ь. Решение каждой такой задачи существует

иустанавливается при достаточно малых а*.

6.2.Методы решения динамических

безусловных задач оптимизации: простые варианты вариационных задач

Метод решения задачи с неподвижными границами. Пусть требует­ ся найти решение х'(0 посредством минимизации критериального функционала интегрального вида, заданного в пространстве дифферен­ цируемых функций C([t0, 71), т.е. найти

г

x*(0 = arg min [f(t,x (t),# tj)d t+ 0 (to,x(t0),T,x(T)),

'o

где [T0, 71 — фиксированный отрезок времени,

fit, x(t), x(t)) — непрерывно дифференцируемая по x и x функция, Ф(/0,x(t0), T, x(7)) — непрерывно дифференцируемая по x(t0), x(7)

функция.

Функция x (t) доставляет слабый минимум рассматриваемому крите­ риальному функционалу J(x( )) в пространстве C (\tQ, 71), если найдется

такое 8 > 0, что для любой функции х( ) е

для которой

Н -)-х*(-)||< 8, выполняется неравенство

163

и*

/(*(•)) - /(*'(•)) * О

т

где J(x()) = jf(t,x(t),x(t))dt+<P(t0,x(t0),T ,x(7%

x( ) — функция, рассматриваемая на всем отрезке [/о, Л-

Решение х’( ) находится согласно необходимому условию первого

порядка для задач классического вариационного исчисления, т.е. по следующей схеме.

Ал г о р и т м

1.Составить уравнение Эйлера

d f э/(г,х(о,*(оЛ

_ »

dt\ ъх ) а*

2. Выписать условия трансверсальности

Э/(?о,*( г0),*(;<))) = ЭФ(/o,x(/o),7,»^y(У,)) Ас Эх(/р)

Ъ /{ Т Л Т )Л Т )) _ Ш ^ Л к ) ,Т Л Т ) )

ас дх(Т)

3.Найти допустимые экстремали из решения дифференциального уравнения Эйлера, удовлетворяющего условиям трансверсальности на t = to и / = Т.

4.Проанализировать найденные экстремали с целью установления допустимых из

них (доставляющих минимум критериальному функционалу), либо отсутствия решения в

пространстве непрерывно дифференцируемых функций С'([/0, Л)> либо существования единственной допустимой экстремали, но не доставляющей экстремума критериальному функционалу.

Метод решения задачи с подвижными границами. Требуется найти ре­ шение **(•) задачи

min/(x( ), /0, 7), х( ) е C'([t0, 7]), 4> е л ‘>

R '<

т

 

J(xO ,t0,T) = j f(t, x(t),x(t))dt+Фо(to.*('о

 

 

при подвижных концах t0, T ,x(t0),x(T ) согласно условиям

Ф, ih, x(t0), Т, х( Т)) = 0, / = hm .

Решение находится по следующей схеме.

Ал г о р и т м

1.Составить функционал Лагранжа

г m

L(x(),t0,T,X)= \Д1Х 11))Л+ ]Г х ,Ф ,(/0,*('о> .7>(П ),

XQ= 1 Xj- ^ 0, / = 1 /м.

164

d(f

d f df ^ _ л*

2. Выписать уравнение Эйлера —

3. Выписать условия трансверсальности по х

df(tn,x(tn),x(<o)) - f=0

—----------------------

^

Эх(*о)

Ш Т .х (Т )Л Т )) _ t

o ---------------------

--------- Гх

М Т)

4.Выписать условия трансверсальности по 1ц, Г.

,, , . yi_V'i ( d&i(to,x(tn)'T’x(T)l j. Ц

/Оо,х(*о)>*((о))

'

 

Э/л

Эх(?о)

/

 

/=о

 

0

 

 

 

\< 2

( ЪФ^п,х(*о)’Т’х(ТУ).

 

 

f(T ,x(T ),x(T )) = - 2

/ ' l

4

М Т)

 

)

 

ыо

 

 

 

 

5. Найти допустимые экстремали из решения дифференциально

ур

Р .

удовлетворяющие условиям трансверсальности по х, t0, 7.

 

 

„„„„„

6. Выполнить анализ полученного решения с целью выявления

 

Д°став-

ляющих минимум критериальному функционалу, или доказательства их

ут

Метод решения задачи с использованием теоремы Грина. Требуется найти путь перехода из точки (хь у,) в точку (х2, у2)> на котором обеспе­ чивается

<*2.У2>

(*2.Х2)

min J [<р(х,y)dx+ \ r(x, y)dy\ = min J [<р(х,y)dx+ \|/(х, у) • у '{x)]dx.

(*|,Х|) <Х|,Х|)

При условии, что совокупность дуг (путей) перехода из (хьу,) в (х2,у2) содержится внутри области, ограниченной замкнутой кривой у(х,у) = О и что (Х |,у ,), (х2 у2), принадлежат границе этой области, они удовлетво­ ряют равенствам у(х, ,>> ) = у(х2,у2) = 0. Искомая дуга экстремальная, она

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

Обозначим через s, дугу перехода из точки (х„у,) в точку (х2 у2) через s2 — переход из (х2 у2) в (х^у,). Пути перехода с положительным знаком

означают обход области, ограниченной рассматриваемыми дугами, про­ тив часовой стрелки. Тогда по теореме Грина имеем

165

|<P(x ,y)d x+ \/(x,y)d y АН,

(* 2>

где в левой части равенства интеграл по контуру, S — площадь области,

ограниченной контуром ($,,52).

Теперь введем фундаментальную функцию

, . Э\|/ Эф

ах ду

Согласно свойствам этой функции, можно говорить о преимуществах или недостатках одних путей интегрирования перед другими. Напри­ мер, функция о)(х,у) в допустимой области или равна нулю или имеет один и тот же знак. Если to(x,y) > 0, то любой путь перехода из одной точки, лежащей слева от граничного, в другую, приводит к уменьшению значения интеграла, т.е. интеграл

(. Х2 , у г )

\df(x,y)dx+xV{x,y)dy

достигает максимума на самом правом граничном пути и достигает ми­ нимального значения при переходе из точки (х1#у,) в точку (х2 у2) по са­ мому левому граничному пути, т.е. когда вся область остается справа. При со(х,у) = 0 значение интеграла не зависит от пути интегрирования.

Итак, при отыскании экстремальных значений линейных интегра­ лов определяющим является поведение (свойства) фундаментальной функции внутри допустимой области [91]. Заметим, что изложенный принцип решения распространяется и на задачу отыскания экстремума интеграла рассмотренного вида при наличии линейных изопериметрических ограничений.

6.3. Методы решения статических безусловных задач оптимизации, не использующие производных, — эвристические методы

Метод Хука-Дживса (метод конфтураций). Требуется найти решение х’ = arg min.Дх), х R".

Ал г о р и т м

__

1. Выбрать начальную базисную точку х0.

2. Задать И > 0 — шаг изменения компоненты xj, *= 1,л точки х0.

3.Задать 5 > 0 — точность вычисления х*.

4.Вычислить значение .Дх) в точке х0, в циклическом порядке изменять значение ка­

ждой компоненты xj, / = 1 ,л на величину И.

5. Вычислить значения функции Дх) в точках (х0 + Ъё) и (х0 - Иё), ё — единичный вектор координатной оси х ', / = 1 ,л, т.е. вычислить Дх0 + Иё) и Дх0 - Иё).

166

6. Найти направление наибольшего убывания функции Дх0 +

е = (е1,

....

ея), е* - ±1, в зависимости от е1’, / в 1,л.

 

 

7.Если на операции 6 уменьшение функции не выявлено, то уменьшить длину шага h

ивыполнить операции 5 и 6; если же на каких-то направлениях ej, j = 1 ,w, имеет место

уменьшение значения функции, то вычислить базисную точку Xj = х0 +

W J е Кл).

8.

Принять за направление убывания функции Дх) направление s\ -

(xj - х0).

9.

На направлении - (х! - х0) найти х2 = Xj + hsx и выполнить операции 5, 6, 7, 8 с

целью исследования поведения функции fix) в /r-окрестности точки х2 и выбора искомого решения или перехода к исследованию поведения функции в ^-окрестности точки х3 и т.д.; процесс продолжается до выбора х*.

Метод поиска по деформируемому многограннику — симплекс поиск Неддера—Мида. Метод основан на перемещении в направлении опти­ мальной точки х" регулярных многогранников в ^"-симплексов. В дву­ мерном пространстве — это перемещение равностороннего треугольни­ ка, в трехмерном - правильного тетраэдра и т.д. Направление переме­ щения определяется в результате сравнения значений функции Дх), х е R”, в п + 1 вершинах симплекса и осуществления одной из трех опе­

раций: отражения, растяжения и сжатия. Для реализации операции от­ ражения необходимо упорядочить значения функции в вершинах сим­ плекса в порядке убывания, найти центр тяжести всех точек-вершин симплекса за исключением точки с максимальным значением исследуе­ мой функции и построить проектирующую прямую: провести прямую через вершину симплекса с максимальным значением критериальной функции (пусть это вершина А) и вычисленный центр тяжести. На этой прямой отразить вершину А в точку В. Затем точку А исключить и по­

строить симплекс с вершинами в точке Д и в точках, по которым был вычислен центр тяжести.

Далее должно быть выполнено сравнение минимального на мно­ жестве вершин значения функции и ее значения в центре тяжести те­

кущего (отраженного) положения симплекса, т.е. значений

(х) и

/„<*>(*)

соответственно — индекс текущего положения).

Если

/ ^ ( х ) <

/ и<*>(х), то продолжается выполнение операции отражения

для текущего положения симплекса с возможным его растяжением. Если эти значения близки согласно требуемой точности, то процесс поиска останавливается; в случае же (х) > /„*’(х) — симплекс сле­

дует сжать и продолжить поиск xj.

Полная схема алгоритма метода Неддера—Мида изложена в [87; 89].

6.4. Симплекс-метод

Требуется найти и* = argmax/(H) при условиях

и е U<zK”, х(и) е Х с Л”,

где /(и) = (сг, и), х(и) = Ах — Ь,

Х = { х = (х,, х2, ..., х„) е Д", х, <0, / = 1,я],

167

А — матрица « х т, т <п; и, с — /л-мерные векторы; b — «-мерный

вектор.

Здесь задача выбора оптимального решения рассматривается как за­ дача линейного программирования: найти у* = argmax(cr, у) при ограни­ чениях Ау < Ь, представляющих замкнутый выпуклый многогранник.

Для такой задачи искомое решение может быть получено симплексметодом либо согласно варианту его модернизации — адаптивному ме­ тоду [129].

Сущность симплекс-метода заключается в поэтапном направленном переходе от одного опорного решения к другому при условии возраста­ ния критериальной функции до оптимального (в смысле максимума) ее значения. Опорные решения отыскиваются в вершинах или на ребрах многогранника Ау < Ь. При этом осуществляется переход от исходной

декартовой системы к косоугольной системе координат. В последней в качестве координатных плоскостей используются некоторые из гипер­ плоскостей многогранника Ау < Ь. Тогда все точки этого многогранника

становятся неотрицательными и первое опорное решение находится в направлении возрастания критериальной функции. Затем осуществля­ ется переход к новой косоугольной системе координат и отыскивается второе опорное решение также в направлении возрастания критериаль­ ной функции. Повторение этого процесса приводит к искомому опти­ мальному решению.

Имеет место утверждение: оптимальное решение, если оно сущест­ вует, может быть получено за конечное число шагов.

Ал г о р и т м

1.Привести систему ограничений к виду

у, = —(alr¥P V H + ... + а |иу„)

Уг = Ьг - («2ЖУгН + ••• +атУп)

yr =br- (tf/H-pVtl + ••• +атУ»)

у i SO, /' = 1, .... я, b j>0, j = 1......

г,

y h Уг> —»Уг ~ базисные переменные или это начальный базис;

у^.|, Уг+2, у„ — свободные переменные.

Врезультате находится одно из неотрицательных базисных решений

(Ьь Ьь ..., Ьп 0, 0, ..., 0).

2. Выразить критериальную функцию Ду) = - (сТ, у), где с, у — r-мерные векторы, через небазисные переменные, т.е. записать Ду) в виде

Ду) = Yo “ (YrH^H-i + Y»У»)> у) -> min).

Если при этом все коэффициенты (-Уж* •••> ~Y«) неотрицательны, то базисное решение оптимально, иначе — перейти к операции 3.

168

3. Взять любой отрицательный коэффициент при ур проанализировать столбец из коэффициентов при yj в правых частях уравнений, полученных в результате операции 1. Если все числа рассматриваемого столбца неотрицательны, то задача решений не имеет, т.е. f[y) = оо. Если же в этом столбце имеются отрицательные числа, то перейти к опера­ ции 4.

4. Найти для каждого из чисел (-0,у) — коэффициентов при yj в выражении для ба­ зисной переменной ук, отношение и выбрать из них наименьшее; пусть при этом

к = /'. В результате находится разрешающий элемент я,уф 0.

5. Перейти к новому базису посредством исключения из старого переменной у,- и вве­ дения в него переменной уу. Для этого решить относительно уу уравнение, содержащее у{. Затем полученное выражение для ууподставить во все другие уравнения-ограничения и перейти к оп. 2.

Таким образом осуществляется переход от одной вершины многогранника допусти­ мых решений к другой, т.е. переход, приводящий к оптимальному решению.

Схема алгоритма в полном изложении содержится, например, в [24; 20; 70].

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

Отметим кратко идейные положения адаптивного метода [129].

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

Определение. Опорой задачи линейного программирования называется неособая матрица А0П=А(1оп / оп), составленная из элементов а0, / € /оп j е / оп исходной матрицы A =A(I, J), где I, J — множества значений ин­ дексов i и j соответственно.

Опора — это аналог базисного плана (базиса) в симплекс-методе, но в отличие от базиса она не зависит от плана и в процессе реше­ ния задачи изменяется вместе с планом. Начальная опора формирует­ ся по априорной информации экспертов-специалистов. Пара, состав­ ленная из плана и опоры, называется опорным планом. Компоненты этой пары в ходе реализации метода улучшаются независимо одна от другой.

Полное обоснование и изложение алгоритма адаптивного метода содержится в [129, ч. 1].

Проиллюстрируем применение симплекс-метода в следующих двух задачах.

Задача 1. Для производства четырех видов изделий Dh D2i Z)3, Z)4 завод должен ис­ пользовать три вида сырья Elt Е2, £ 3, затраты на которые составляют соответственно 900, 500 и 200 условных единиц. В таблице заданы технологические коэффициенты, т.е. расход каждого вида сырья на производство единицы каждого изделия, и прибыль от реализации единицы продукции каждого вида.

169

Виды сырья

 

Запасы сырья

/),

Di

D3

/>4

 

 

900

4

2

0

3

Е2

 

500

2

2

2

2

Ег

/

200

1

0

1

1

 

 

 

5

2

3

4

от реализации

Требуется составить такой план выпуска указанных изделий, чтобы обеспечить мак­ симальную прибыль от реализации продукции.

Р е ш е н и е . Обозначим через х( количество изделий вида /), , / = 1, 2, 3, 4. Приходим к задаче максимизации прибыли

L —5х| + 2х2 + Зх3 + 4х4 шах

при ограничениях

4Х| + 2х2 + Зх4 < 900, 2JCJ + 2*2 + 2х3 + 2х4 < 500, х х + х3 + х4 < 200, JCJ, х2, х3, х4 > 0. Получили задачу линейного программирования вида

L = (с,х)-> шах, S —(х: Ах < Ь ,х> 0}. s

В разрешимых задачах линейного программирования допустимо применение лекси­ кографического упорядочения; оно совпадает с обычным упорядочением, обеспечиваю­ щим достижение условного экстремума. При этом с каждой ситуацией со = (.А, Ь, с, х) свя­ зан элемент

и = (и1, и2)Т,

где их = ф^х) — характеристическая функция множества S:

фJ(x)=(1- еслихе5’

[0, если хеЗ',

U 2 = L - (с , х ).

(Решая задачу линейного программирования симплекс-методом, получим последователь­ ность лексикографически упорядоченных планов.) Для перехода от системы ограниче­ ний-неравенств к системе ограничений-равенств прибавим к левой части каждого нера­ венства добавочные неотрицательные переменные х5, х6, х7 (они имеют в условиях данной задачи экономическое содержание: объем остатков сырья каждого вида после выполнения плана выпуска продукции). Получаем систему уравнений

4х1+ х2 + Зх4 + х5 = 900, 2х, + 1х2

+ 2х3 + 2х4 + х6 = 500,

х х + х3 + х4 + х7 - 200,

*7*0, 7

- 1 , 2, 3, 4, 5, 6, 7.

(1)

Система ограничений состоит из трех уравнений с семью переменными, поэтому число основных переменных — три, а неосновных — четыре. Найдем сначала любое ба­ зисное решение, т.е. решение 5с, для которого их= ф$(5с) = 1. Для этого достаточно при­ нять за основные переменные добавочные переменные х5, х6, х 7. Полагаем неосновные (свободные) переменные х ь х2, х3, х4 равными нулю, получаем базисное решение х° = (0, 0, 0, 0, 900, 500, 200), которое является допустимым, и для него и = (1, 0)', поскольку при Х| = х2 = х3 = х4 = 0 значение критериальной функции L равно нулю. Переходим к поиску оптимального решения. В системе (1) основные переменные выразим через свободные. Чтобы выяснить, оставлять свободные переменные в числе свободных или выгоднее их (с

170

Соседние файлы в папке книги