Научная статья на тему 'Возможности использования элитных особей при решении задачи коммивояжера моделью Гольдберга'

Возможности использования элитных особей при решении задачи коммивояжера моделью Гольдберга Текст научной статьи по специальности «Математика»

CC BY
433
90
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЗАДАЧА КОММИВОЯЖЕРА / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ГРАФ / МОДЕЛЬ ГОЛЬДБЕРГА / МУТАЦИЯ / КРОССОВЕР / МУРАВЬИНЫЙ АЛГОРИТМ / ЭЛИТНАЯ ОСОБЬ / ФЕРОМОН / ПРИРОДНЫЕ ВЫЧИСЛЕНИЯ / TRAVELING SALESMAN PROBLEM / GENETIC ALGORITHM / GRAPH / GOLDBERG MODEL / MUTATION / CROSSOVER / ANT COLONY ALGORITHM / ELITE SAMPLE / PHEROMONE / NATURAL COMPUTING

Аннотация научной статьи по математике, автор научной работы — Кобак Валерий Григорьевич, Рудова Ирма Шалвовна

Целью данной работы является исследование актуальной задачи коммивояжера, которая является NP сложной задачей дискретной оптимизации. Показано, что для достижения поставленной цели пригодны лишь эвристические методы. Для решения задачи представлен результат совместного использования муравьиного (МА) и генетического (ГА) алгоритмов. Особенностью предложенного генетического алгоритма является то, что задача решается только с помощью различных мутаций (без кроссовера). Исследуемый ГА был улучшен введением элитарной стратегии. Испытания проводились на графах средней и большой размерности. Элитная особь, получаемая с помощью муравьиного алгоритма, в среднем улучшалась на 11 %. Показано, что эффективность генетического алгоритма напрямую зависит от количества особей в поколении и количества итераций алгоритма. Ввод элитарной стратегии улучшил получаемые значения целевой функции более чем в 2 раза. Увеличение числа запусков МА при выборе элиты позволило повысить эффективность алгоритма приблизительно на 2 %.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Applicability of elite samples in solving the traveling salesman problem by Goldberg model

The work objective is to study a critical traveling salesman problem which is NP complicated task of the discrete optimization. It is shown that only heuristics is appropriate in achieving this goal. The result of the ant colony algorithm (ACA) and genetic algorithm (GA) sharing is presented for the problem solution. The point is that the problem is solved using only mutations of various types (without crossover). The investigated GA is improved by the elitist strategy. The testing is done on graphs of the middle and large dimension. An “elite” sample obtained by the ACA is improved by a mean of 11%. It is shown that the efficiency of the genetic algorithm depends directly on the number of ants in the generation, and on the number of algorithm iterations. Target function values are improved more than twofold after the introduction of the elitist strategy. Increasing the number of ACA runs raises the efficiency of the algorithm by approximately 2%.

Текст научной работы на тему «Возможности использования элитных особей при решении задачи коммивояжера моделью Гольдберга»

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ INFORMATION TECHNOLOGY, COMPUTER SCIENCE, AND MANAGEMENT

УДК 519.87:004

DOI 10.12737/19695

Возможности использования элитных особей при решении задачи коммивояжера моделью Гольдберга*

В. Г. Кобак1, И. Ш. Рудова2"

1,2 Донской государственный технический университет, г. Ростов-на-Дону, Российская Федерация Applicability of elite samples in solving the traveling salesman problem by Goldberg model *** V. G. Kobak1, I. S. Rudova2**

1,2 Don State Technical University, Rostov-on-Don, Russian Federation

Целью данной работы является исследование актуальной задачи коммивояжера, которая является МР сложной задачей дискретной оптимизации. Показано, что для достижения поставленной цели пригодны лишь эвристические методы. Для решения задачи представлен результат совместного использования муравьиного (МА) и генетического (ГА) алгоритмов. Особенностью предложенного генетического алгоритма является то, что задача решается только с помощью различных мутаций (без кроссовера). Исследуемый ГА был улучшен введением элитарной стратегии. Испытания проводились на графах средней и большой размерности. Элитная особь, получаемая с помощью муравьиного алгоритма, в среднем улучшалась на 11 %. Показано, что эффективность генетического алгоритма напрямую зависит от количества особей в поколении и количества итераций алгоритма. Ввод элитарной стратегии улучшил получаемые значения целевой функции более чем в 2 раза. Увеличение числа запусков МА при выборе элиты позволило повысить эффективность алгоритма приблизительно на 2 %.

Ключевые слова: задача коммивояжера, генетический алгоритм, граф, модель Гольдберга, мутация, кроссовер, муравьиный алгоритм, элитная особь, феромон, природные вычисления.

The work objective is to study a critical traveling salesman problem which is NP complicated task of the discrete optimization. It is shown that only heuristics is appropriate in achieving this goal. The result of the ant colony algorithm (ACA) and genetic algorithm (GA) sharing is presented for the problem solution. The point is that the problem is solved using only mutations of various types (without crossover). The investigated GA is improved by the elitist strategy. The testing is done on graphs of the middle and large dimension. An "elite" sample obtained by the ACA is improved by a mean of 11%. It is shown that the efficiency of the genetic algorithm depends directly on the number of ants in the generation, and on the number of algorithm iterations. Target function values are improved more than twofold after the introduction of the elitist strategy. Increasing the number of ACA runs raises the efficiency of the algorithm by approximately 2%.

Keywords: traveling salesman problem, genetic algorithm, graph, Goldberg model, mutation, crossover, ant colony algorithm, elite sample, pheromone, natural computing.

Введение. Задача коммивояжера (ЗК) является ЫР сложной задачей дискретной оптимизации и определяется следующим образом: для заданного полного взвешенного графа О = (V, Е, В) с множеством вершин V = {у^, множеством ребер Е и матрицей весов В = {йу}^ необходимо найти Гамильтонов цикл (у1ь у12,...,уш), где (1ь...дп) — перестановка на множестве {1,2,.,п}, а V, с минимальной суммой весов дуг [1]:

n—1

Z di ,

1=1 1

+ dn ^ min

Вершины графа О часто называются городами, а любой Гамильтонов цикл называется маршрутом коммивоя-

Работа выполнена в рамках инициативной НИР.

**E-mail: [email protected], [email protected]

""The research is done within the frame of the independent R&D.

<u S X <u

rn cö

a

G

^

IS

<3 «

IS

X

*

H «

cö X л

<u H

IS

о

IS

E 3 rn

CÖ «

IS

<3 S a о

X

S

жера. Очевидным решением задачи является метод полного перебора. Выйдя из первого города, коммивояжер может направиться в один из (n - 1) городов, откуда в (n - 2) оставшихся городов и т. д., пока не останется один-единственный город, откуда он вышел. Таким образом, общее число маршрутов, подлежащих просмотру, составляет (n - 1) • (n - 2) ... 2 • 1 = (n - 1) всевозможных вариантов. С увеличением количества городов это значение быстро возрастает и уже при 15 городах достигает астрономических цифр. Поиск точных и приближенных способов решения задачи о коммивояжере остается актуальным и с теоретической, и с практической точки зрения, так как не найдено, а возможно, и не существует точных алгоритмов, решающих ЗК за короткое (полиномиальное) время. Поэтому для решения задачи коммивояжера эффективнее использовать не точные, а эвристические методы. Применение эвристических алгоритмов к какой-либо практической задаче обычно позволяет сформулировать рекомендации, которые намного лучше произвольного решения и которые наиболее близки к лучшему варианту.

Обзор алгоритмов решения. В данной статье решение задачи коммивояжера произведено модифицированным генетическим алгоритмом (ГА) с элитной особью. Начальное значение элиты получается при использовании n итераций муравьиного алгоритма (МА), который также является приближенным и существует в рамках научного направления Natural Computing — «Природные вычисления», которое объединяет математические методы и механизмы, обеспечивающие многолетнюю адаптацию биоценозов к окружающей среде [2-5]. Использованный МА также улучшен применением элитной стратегии. Кроме того, в данной версии МА используется модификация — «правило псевдослучайных пропорций», которая поддерживает баланс между использованием накопленных знаний и исследованием новых решений.

Рассматриваемый муравьиный алгоритм предполагает выполнение следующих шагов [6].

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

2. На втором шаге определяются вероятности перехода k-го муравья из вершины i в вершину j. Для этого используем следующую формулу (1):

1 р — • т а

Pij = -, (1)

2 j- • чг Li, j

где Т и j (t) — уровень феромона; Lj — расстояние между вершинами i и j; в и а — константные параметры.

При а = 0 выбор ближайшего города наиболее вероятен, то есть алгоритм становится жадным. При в = 0 выбор происходит только на основании феромона.

3. На третьем шаге алгоритма применяется правило псевдослучайных пропорций, которое определяется простой формулой (2) и зависит от параметра q0:

max{[Tj (t)]а •[nj ]b }, q <

jeallowedk (2)

r, q > qo

s - 1

й где q — случайное число, распределенное по нормальному закону на отрезке [0,1]; д0 — параметр баланса между ис-"О

^ пользованием накопленных знаний и исследованием новых решений (0 < д0 < 1); г — случайный город, выбранный на 'й

основе вероятностей, расчет которых был произведен по формуле (1).

4. Пройдя ребро (/,]), муравей откладывает на нем некоторое количество феромона, которое должно быть свя-

о, £ -Й

зано с оптимальностью сделанного выбора:

' Q

Ат„ (t) =

130

,(i, j) е Tk(t); Lk (t) ' k

o, (i, j) г Tk(t).

Здесь Q — параметр, имеющий значение порядка цены оптимального решения; Тк (7) — маршрут, пройденный муравьем к к моменту времени 1; Ьк(7) — длина этого маршрута.

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

_\г/ЬЬе*(/),еслиО,]) еТЬе* \ 0, если(1,]) й ТЬе*.

Особенностью генетического алгоритма, приведенного в данной статье, является то, что оптимальный маршрут находится посредством модели Гольдберга с использованием только лишь модифицированных операторов мутации (ОМ) без применения кроссовера. Мутация — случайное изменение одного или нескольких генов в хромосоме [7]. Оператор мутации позволяет разнообразить генотип в поколении, тем самым исключая возможность «застревания» в ловушке локальных минимумов и повышая точность работы алгоритма. Вероятность мутации рт является фиксированным случайным числом на отрезке [0; 1]. Вероятность мутации в предложенном алгоритме составляет 100 %. В ходе вычислительных экспериментов, изложенных в работе [8], было определено, что наиболее близкие к оптимуму длины маршрутов получаются при использовании простого несимметричного двухточечного ОМ. Несимметричный двухточечный ОМ выполняется следующим образом.

1. В хромосоме Р = (аь а2, а3, ... ,а„_2, а—¡, ап) определяются случайным образом две позиции (например, а2 и а„_]).

2. Гены, соответствующие выбранным позициям, переставляются, и формируется новая хромосома

Р ' = ап-Ь a3, ... , аn-2, a2, ап).

Для данной работы была выбрана стратегия «Сравнение мутирующей особи с предком, а далее — лучшей из них со случайной особью в поколении», которая показала себя как одна из лучших стратегий [9-10]. Алгоритм реализуется следующим образом.

1. Получаем значение элитной особи при помощи п запусков МА.

2. Ставим элитную особь на первое место в поколении.

3. Если т — номер особи, подверженной мутации, то т = 2. §

и

4. Применяем к т-й особи оператор мутации. ч

5. Вычисляем значение целевой функции для мутирующей т-й особи и сравниваем его со значением целевой л

с

функции предка, а затем лучшее из них сравниваем со значением целевой функции случайно выбранной особи из по- ^

коления. Особь с наилучшим значением целевой функции добавляется в следующее поколение. и

К

6. Устанавливаем т = т + 1 и повторяем шаг 5, пока каждая особь из поколения не подвергнется мутации. ¡^

<и 17. Определяем особь с наилучшей приспособленностью (значением целевой функции) в поколении /опт и ста- ^

й щ

вим ее на первое место. л

8. Проверяем, сколько итераций подряд значение /опт было неизменно. Если /опт было неизменным № ите- ^

ч

раций подряд, то конец работы, если меньше, чем №, то переходим к шагу 3. §

Е

Аналитически сделать выводы об эффективности данного алгоритма нельзя, поэтому был поставлен вычисли- 3 тельный эксперимент. Параметры использованного МА: число особей на итерации — 50, одна элитная особь, а = 1, ^ в = 1. Результаты вычислительного эксперименты для графа nBaeg29 (29 вершин, известное значение оптимума 1610) у представлены в табл. 1, а для графа — Ъга7Й58 (58 вершин, известное значение оптимума 25395) при выборе элитной о1 особи из трех запусков МА — в табл. 2, и при выборе из пяти запусков МА — в табл. 3.

К 131

Таблица 1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Результаты вычислительного эксперимента граф — nBaeg29 (число опытов — 35)

Число повторов/ особей Выбор элитной особи из 3 Выбор элитной особи из 5

Лучшее Сред. знач. Сред. знач. элиты Сред. % улучш. Лучшее Сред. знач. Сред. знач. элиты Сред. % улучш.

250 1627 1782 1949 10,41 1615 1756 1921 10,25

500 1620 1746 1926 11,18 1610 1751 1901 9,35

750 1610 1709 1867 9,76 1610 1757 1924 10,32

Из табл. 1 видно, что элитная особь в среднем улучшается на и 10 %. Лучшее из полученных значений отстает от известного оптимального в худшем случае всего на и 1 %. А в большинстве случаев достигает оптимума. Среднее значение отстает от оптимума всего на 8,6 %.

Таблица 2

Выбор элитной особи из трех (граф — Ъга7П58)

Число 20 запусков алгоритма 35 запусков алгоритма 50 запусков алгоритма

повто- Луч- Сред. Луч- Сред. Луч- Сред.

ров/ особей шее шее шее

Знач. Знач. % Знач. Знач. % Знач. Знач. %

элиты улучш. элиты улучш. элиты улучш.

250 28260 30936 33596 10,47 28198 30238 33623 13,3 27004 30246 33492 12,78

500 27927 29922 33519 14,16 27031 29933 33303 13,3 27768 29923 33640 14,63

750 27662 29832 33937 16,16 28010 30221 33604 13,4 26942 30009 33692 14,50

Таблица 3

Выбор элитной особи из пяти (граф — Ъга7П58)

Число повторов/ особей 20 запусков алгоритма 35 запусков алгоритма 50 запусков алгоритма

Лучшее Сред. Лучшее Сред. Лучшее Сред.

Знач. Знач. элиты % улучш. Знач. Знач. элиты % улучш. Знач. Знач. элиты % улучш.

250 27635 30024 33264 12,76 27608 29885 33265 13,3 27667 29972 32948 11,72

500 27779 29814 32745 11,54 27435 29850 33091 12,8 27443 29584 33084 13,78

750 27128 29156 32949 14,94 27506 29508 32977 13,7 26990 29598 33233 14,31

Анализ результатов вычислительного эксперимента позволяет построить диаграммы (рис. 1, 2, 3, 4, 5).

с о тз

'й -м

хл

а £ л

а)

б)

в)

Рис. 1. Процент улучшения элитной особи генетическим алгоритмом (выбор из трех). Количество особей и повторов: 750 (а), 250 (б), 500 (в)

14,3

а) б) в)

Рис. 2. Процент улучшения элитной особи генетическим алгоритмом (выбор из пяти). Количество особей и повторов: 750 (а), 250 (б), 500 (в)

а) б) в)

Рис. 3. Процент отклонения среднего значения от оптимального (выбор элиты из трех). Количество особей и повторов: 750 (а), 250 (б), 500 (в)

а) б) в)

Рис. 4. Процент отклонения среднего значения от оптимального (выбор элиты из пяти). Количество особей и повторов: 750 (а), 250 (б), 500 (в)

а) б) в)

Рис. 5. Процент отклонения лучшего значения от оптимального (выбор элиты из трех). Количество особей и повторов: 250 (а), 500 (б), 750 (в)

щ

5 I

4

И ей

а

с

^

15

ей И

5

1

X

<и «

ей К Л

4 (и н

5

4 О

5 (г

2 СП

ей И 5

ей

а о

-е к X

Анализируя результаты вычислительного эксперимента, можно отметить следующее: при увеличении количества вершин в графе процент улучшения элитной особи увеличился, что говорит о повышении эффективности работы алгоритма с ростом числа вершин в графе. При выборе элитной особи из пяти с двукратным увеличением числа вершин в графе процент отклонения среднего значения от оптимума увеличился приблизительно на 6 %, что вполне допустимо.

Для оценки эффективности работы алгоритма сравним его результаты с генетическим алгоритмом без элитной особи, но с той же стратегией отбора и таким же оператором мутации на графе brazil 58. Результаты вычислительного эксперимента приведены в табл. 4.

Таблица 4

Результат работы генетического алгоритма без элитной особи

Число повторов/ Среднее Лучшее % откл. % откл.

особей из 35 запусков из 35 запусков среднего лучшего

250 35223 29855 38,70 17,56

500 33829 29827 33,21 17,45

750 33716 28722 32,77 13,10

Выводы. Ввод элитной муравьиной особи позволил уменьшить процент отклонения лучшего из найденных значений более чем в 2 раза, а процент отклонения среднего значения — приблизительно на 18 %. Увеличение числа п при выборе элитной особи позволило увеличить эффективность алгоритма примерно на 2 %. Следует также отметить, что с увеличением числа особей и итераций алгоритма улучшаются значения целевой функции.

й о тз

и (U

Ü £ -Й

Библиографический список

1. Гладков, Л. А. Генетические алгоритмы / Л. А. Гладков, В. В. Курейчик, В. М. Курейчик — Москва : Физ-матлит, 2007. — 272 с.

2. Gambardella, L.-M. Ant-Q: A Reinforcement Learning Approach to the Traveling Salesman Problem [Электронный ресурс] / L.-M. Gambardella, M. Dorigo. — Режим доступа: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.4846 (дата обращения: 16.09.15).

3. Dorigo, M. The Ant System: Optimization by a colony of cooperating agents [Электронный ресурс] / M. Dorigo, V. Maniezzo, A. Colorni. — Режим доступа: ftp://iridia.ulb.ac.be/pub/mdorigo/journals/IJ.10-SMC96.pdf (дата обращения: 20.09.15).

4. Gambardella, L.-M. Solving symmetric and asymmetric TSPs by ant colonies [Электронный ресурс] / L.-M. Gambardella, M. Dorigo. — Режим доступа: http://ceit.aut.ac.ir/~meybodi/Learning%20Automata%20papers/LA-Papers-Ebdali/00542672.PDF (дата обращения: 27.09.15).

5. Чураков, М. Муравьиные алгоритмы. / М. Чураков, А. Якушев. — Режим доступа: http://rain.ifmo.ru/cat/ (дата обращения: 25.09.2015).

6. Штовба, С. Д. Муравьиные алгоритмы [Электронный ресурс] / С. Д. Штовба. — Режим доступа: http://www.serhiyshtovba.narod.ru/doc/Shtovba_Ant_Algorithms_Exponenta Pro_2003_3.pdf (дата обращения: 25.09.15).

7. Емельянов, В. В. Теория и практика эволюционного моделирования / В. В. Емельянов, В. М. Курейчик, В. В. Курейчик. — Москва : Физматлит, 2003. — 432 с.

8. Кобак, В. Г. Сравнительный анализ модифицированной модели Гольдберга и муравьиного алгоритма при решении задачи коммивояжера / В. Г. Кобак, И. Ш. Рудова, А. Г. Жуковский // Тр. Сев.-Кавк. филиала Моск. техн. унта связи и информатики. — Ростов-на-Дону, 2015. — T. 1. — С. 362-365.

9. Кобак, В. Г. Решение задачи коммивояжера модифицированной моделью Гольдберга с использованием различных сильных мутаций / В. Г. Кобак, И. Ш. Рудова // Сб. тр. юбилейной конф. студентов и молодых ученых, посвященной 85-летию ДГТУ — Ростов-на-Дону, 2015. — С. 146-156.

10. Решение задачи коммивояжера модифицированной моделью Гольдберга с помощью различного вида мутаций / В. Г. Кобак [и др.] // Тр. Сев.-Кавк. филиала Моск. техн. ун-та связи и информатики. — Ростов-на-Дону, 2014. — T. 1. — С. 258-261.

References

1. Gladkov, LA., Kureychik, V.V., Kureychik, V.M. Geneticheskie algoritmy. [Genetic algorithms.] Moscow: Fizmatlit, 2007, 272 p. (in Russian).

2. Gambardella, L.-M., Dorigo, M. Ant-Q: A Reinforcement Learning Approach to the Traveling Salesman Problem. Available at: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.4846 (accessed: 16.09.15).

3. Dorigo, M., Maniezzo, V., Colorni, A. The Ant System: Optimization by a colony of cooperating agents. Available at: ftp://iridia.ulb.ac.be/pub/mdorigo/journals/IJ.10-SMC96.pdf (accessed: 20.09.15).

4. Gambardella, L.-M., Dorigo, M. Solving symmetric and asymmetric TSPs by ant colonies. Available at: http://ceit.aut.ac.ir/~meybodi/Learning%20Automata%20papers/LA-Papers-Ebdali/00542672.PDF (accessed: 27.09.15).

5. Churakov, М., Yakushev, A. Murav'inye algoritmy. [Ant colony algorithms.] Available at: http://rain.ifmo.ru/cat/ (accessed: 25.09.2015) (in Russian).

6. Shtovba, S.D. Murav'inye algoritmy. [Ant colony algorithms.] Available at: http://www.serhiyshtovba.narod.ru/doc/Shtovba_Ant_Algorithms_Exponenta Pro_2003_3.pdf (accessed: 25.09.15) (in Russian).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

7. Yemelyanov, V.V., Kureychik, V.M., Kureychik, V.V. Teoriya i praktika evolyutsionnogo modelirovani-ya. [Theory and practice of evolutionary modeling.] Moscow: Fizmatlit, 2003, 432 p. (in Russian).

8. Kobak, V.G., Rudova, I.S., Zhukovskiy, A.G. Sravnitel'nyy analiz modifitsirovannoy modeli Gol'dberga i mu-rav'inogo algoritma pri reshenii zadachi kommivoyazhera. [Comparative analysis of Goldberg modified model and ant colony algorithm for solving the traveling salesman problem.] Proc. of Moscow Technical University of Communications and Informatics, North Caucasian Branch. Rostov-on-Don, 2015, vol. 1, pp. 362-365 p. (in Russian).

9. Kobak, V.G., Rudova, I.S. Reshenie zadachi kommivoyazhera modifitsirovannoy model'yu Gol'dberga s ispol'zovaniem razlichnykh sil'nykh mutatsiy. [Traveling salesman problem solution by Goldberg modified model using different strong mutations.] Proc. Conf. of students and young researchers dedicated to the 85th Anniversary of DSTU. Rostov-on-Don, 2015, pp. 146-156 (in Russian).

10. Kobak, V.G., et al. Reshenie zadachi kommivoyazhera modifitsirovannoy model'yu Gol'dberga s pomoshch'yu razlichnogo vida mutatsiy. [Traveling salesman problem solution by Goldberg modified model by different strong mutations.] Proc. of Moscow Technical University of Communications and Informatics, North Caucasian Branch. Rostov-on-Don, 2014, vol. 1, pp. 258-261 (in Russian).

и

Поступила в редакцию 03.11.2015 §

Сдана в редакцию 03.11.2015 ¡Ц

Запланирована в номер 23.03.2016 ¡§

а

С

^

к й и к

к

*

<а н

ч й К Л

ч <и н к

4 о

к

Е 3 и

<й и к

<3

5

Л

о

к К

i Надоели баннеры? Вы всегда можете отключить рекламу.