Автоматический подбор параметров движка

Тема в разделе "Машинное отделение", создана пользователем WildCat, 16 фев 2007.

  1. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я все вылечил. Только теперь, наверно, придется заново добывать движки, т.к. не все архивы я сохранял.
    А вылеченые экзешники могут быть глючными (Shredder глючит очень явно).
  2. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У меня стоит NOD32 с ежедневным обновлением, с первого декабря ни одного вируса не было. До этого стоял Нортон, в итоге словил по полной программе.
  3. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    У меня недавно стоял Касперский. Пару дней назад заменил на Avast. Изредка вирусы находятся, но, кажется, не такие опасные.
  4. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Пока результаты такие (все сыграли по 57 партий). Мои версии, которые я начинал генерить с нуля показывают очень плохие результаты из-за того, что часто делают неправильные размены. Orlov, а ты сомневался в значимости материальных весов :)
    Все остальные не показывают какого-то особого усиления по сравнению с дефолтной версией.
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А ты какими алгоритмами порождаешь новые?
    Чтоб настроить шкалу из 5 параметров (материал) абсолютно достаточно сканирования пространства (один алгоритм генерации новых - Случайная точка на сфере)...
  6. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Может партий мало?.... PieceValue 400 400 600 1200 по default, PieceValue 373 412 545 1204 по моей лучшей версии, а результат: нет особого усиления. Зачем платить больше? :)
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Скорей всего не партий мало, а сходимость плохая.
    При плохой сходимости - может пойти не к экстремуму, а в "случайном" направлении.

    Именно по этой причине.
    Это не оптимальные значения, а просто некоторые случайные значения недалеко от Дефолтных.
  8. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Как я понимаю, чтобы увеличить сходимость, нужно больше матчей играть. По времени, выходит, больше недели. То ли будет, когда дело дойдёт до настройки реальной программы+ с разбиением для разных типов центра ?!......
  9. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Если алгоритмы плохие - то большое число партий не спасет.
    А если алгоритмы хорошие - то и сотню, и больше параметров можно настроить.
  10. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я настраивал с контролем 0.01 сек на ход. Возможно большое влияние имели неточности таймера.
    А у остальных тестеров было всего-лишь чуть больше 10 итераций. Вряд ли это могло дать существенный прирост.
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Да, 10 итераций это очень мало.

    Я сейчас отлаживаю алгоритмы на 100 итерациях -
    Это около полутора месяцев счета на одном компе (100 особей в один круг) Но все тесты показывают - случайный поиск сходится очень хорошо, даже на огромном числе параметров, но от алгоримов генерации новых особей зависит очень много - разница в скорости сходимости при разных алгоритмах генерации может быть в сотни раз.
  12. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Запускать сегодня тестирование?
  13. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Текущая таблица оценки простой после 250 часов счета на очень плохих алгоритмах:
    a1 - Левый нижний угол.

    Код:
    7 162 123 124 184
    6   173 165 174 143
    5 170 190 124 145
    4   154 132 162 166
    3 145 163 165 141
    2   125 172 182 129
    1 147 200 169 204
       a b c d e f g h
    Оценка по полям:
    Код:
    g1(204) c1(200) c5(190) g7(184) f2(182) f6(174) b6(173)
    d2(172) a5(170) e1(169) h4(166) d6(165) e3(165) c3(163)
    f4(162) a7(162) b4(154) a1(147) a3(145) g5(145) h6(143)
    g3(141) d4(132) h2(129) b2(125) e7(124) e5(124) c7(123)
  14. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Пока лучше не запускать.
  15. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Некоторые движки используют статические таблицы для начала, середены и конца партии. На первый взгляд выглядит очень логичным. Не пробовал применить?
    Например в smash это выглядит так:

    // pawn
    {
    {
    0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, 1,-30,-30, 1, 1, 1,
    0, 0, 0, 4, 4, 0, 0, 0,
    0, 0, 0, 10, 10, 0, 0, 0,
    1, 1, 2, 7, 7, 2, 1, 1,
    4, 4, 4, 8, 8, 4, 4, 4,
    10, 10, 10, 10, 10, 10, 10, 10,
    0, 0, 0, 0, 0, 0, 0, 0
    },
    {
    0, 0, 0, 0, 0, 0, 0, 0,
    1, 1, 1, -4, -4, 1, 1, 1,
    3, 3, 3, 6, 6, 3, 3, 3,
    6, 6, 6, 8, 8, 6, 6, 6,
    12, 12, 12, 12, 12, 12, 12, 12,
    20, 20, 20, 20, 20, 20, 20, 20,
    30, 30, 30, 30, 30, 30, 30, 30,
    0, 0, 0, 0, 0, 0, 0, 0
    }
    },


    // knight
    {
    {
    -10,-20, -6, -6, -6, -6, -20, -10,
    -8, 0, 0, 6, 6, 0, 0, -8,
    -8, 1, 8, 6, 6, 8, 1, -8,
    -6, 1, 8, 12, 12, 8, 1, -6,
    -6, 2, 11, 14, 14, 11, 2, -6,
    -6, 2, 7, 10, 10, 7, 2, -6,
    -8, -3, 0, 0, 0, 0, -3, -8,
    -100,-8, -6, -6, -6, -6, -8, -100
    },
    {
    -10, -8, -6, -6, -6, -6, -8, -10,
    -8, 0, 0, 6, 6, 0, 0, -8,
    -6, 2, 7, 10, 10, 7, 2, -6,
    -6, 2, 10, 14, 14, 10, 2, -6,
    -6, 2, 10, 14, 14, 10, 2, -6,
    -6, 2, 7, 10, 10, 7, 2, -6,
    -8, -3, 0, 0, 0, 0, -3, -8,
    -10, -8, -6, -6, -6, -6, -8, -10
    }
    },

    // bishop
    {
    {
    1, 0,-20, 0, 0,-20, 0, 1,
    1, 6, 3, 1, 1, 3, 6, 1,
    2, 5, 6, 8, 8, 6, 5, 2,
    6, 6, 12, 14, 14, 12, 6, 6,
    6, 6, 12, 14, 14, 12, 6, 6,
    2, 5, 4, 6, 6, 4, 5, 2,
    1, 2, 2, 2, 2, 2, 2, 1,
    -1,-2, 0, 0, 0, 0, -2, -1
    },
    {
    1, 1, 0, 0, 0, 0, 0, 1,
    1, 6, 2, 2, 2, 2, 6, 1,
    2, 5, 12, 8, 8, 12, 5, 2,
    3, 8, 10, 15, 15, 10, 8, 3,
    3, 8, 10, 15, 15, 10, 8, 3,
    2, 5, 12, 8, 8, 12, 5, 2,
    1, 6, 2, 2, 2, 2, 6, 1,
    1 , 1, 0, 0, 0, 0, 1, 1
    }
    },

    // rooks
    {
    {
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0,
    0, 1, 2, 4, 4, 2, 1, 0
    },
    {
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0,
    0, 1, 4, 6, 6, 4, 1, 0
    }
    },

    // queen
    {
    {
    0, 0, 5, 5, 5, 5, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0
    },
    {
    -2, 0, 1, 3, 3, 1, 0, -2,
    0, 4, 5, 6, 6, 5, 4, 0,
    1, 5, 7, 8, 8, 7, 5, 1,
    3, 6, 8, 10, 10, 8, 6, 3,
    3, 6, 8, 10, 10, 8, 6, 3,
    1, 5, 7, 8, 8, 7, 5, 1,
    0, 4, 5, 6, 6, 5, 4, 0,
    -2, 0, 1, 3, 3, 1, 0, -2
    }
    }, ...
    }
  16. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вот она, страшная правда:
    Код:
     1. WildCat 7.10.Fruit.169   138.0 / 221
     2. WildCat 7.10             136.0 / 221
     3. WildCat 7.10.Orlov.39    134.5 / 221
     4. WildCat 7.10.Kvadrat.202 134.0 / 222
     5. WildCat 7.10.Fruit.117   133.5 / 220
     6. WildCat 7.10.Kvadrat.169 133.5 / 221
     7. WildCat 7.10.Fruit.167   132.0 / 220
     8. WildCat 7.10.Kvadrat.205 131.0 / 222
     9. WildCat 7.10.Orlov.21    127.0 / 221
    10. WildCat 7.10.Orlov.44    116.5 / 221
    11. WildCat 7.10.WildCat.225  44.5 / 222
    12. WildCat 7.10.WildCat.262  42.0 / 222
    13. WildCat 7.10.WildCat.253  35.5 / 222
    Но это версии, которые спаривались. Теперь будем смотреть насколько почкование пойдет.
  17. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Если я их сам буду настраивать, то они все равно получаться одинаковыми.
    А автоматикой надо, для начала, с простыми таблицами разобраться.
  18. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Давно показано, что генетические алгоритмы в шахматах... как бы это сказать помягче...
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Генетические алгоритмы в игровой программе!!!
    А тут идет речь о настройке ОФ. Это разные вещи.

    Давно доказано... Марковым? Который настраивал ОФ спусками и достиг при этом хороших результатов. Доказано мной? Я сумел настроить спусками таблицу из 28 параметров в шашках. Васиком? Который судя по всему использует те-же методы настройки ОФ.

    Могу продолжить перечислять. Отлично настраивается ОФ генетикой/спусками в уголках, Калахе. Любой набор тестов с ручным изменением параметров ОФ - это те-же спуски/генетические алгоритмы. Так что все занимаются такой настройкой. Только есть два варианта - ручная настройка и полностью автоматическая. Я уже не в первый раз убедился что Автоматический поиск экстремумов функций многих переменных намного лучше ручного :)
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Откуда это известно?
  21. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Объясни почему если сам будешь руками настраивать то получатся одинаковые таблицы?
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Это известно из постов Васика. Я подборку не сохранял, но суть такова - некими мат. методами Васик получил веса всех малофигурных сочетаний, и возможно исключил малозначимые.
    Посты Васика сохранял Марков - точнее может сказать он. Пост Васика о том что он посчитал веса малофигурных сочетаний - я видел совсем недавно.

    И еще раз - не доказано, а просто не умеет играть ни одна шахматная программа с генетикой в самой программе. Не работают генетические алгоритмы есно при выборе хода, а не при поиске экстремумов фунции. Весь мир ищет экстремумы именно автоматически. Выч. методами.
  23. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я не говорил "доказано". Я говорил - "показано". Почувствуйте разницу.
    А что такое "с генетикой в самой программе"?
  24. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Вот два свидетельства десятилетней давности: http://satirist.org/learn-game/methods/ga/chess.html

    Выводы авторов одинаковые: генетический метод, конечно, работает (с чего бы ему не работать), но даёт результат не лучший, чем ручная настройка.
  25. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Так нужна статистика по сходимости в зависимости от методов?
    Он очень интересна! Добавление при генереции несколько процентов собей полученных усреднением всех параметров двух или трех особей улучшает сходимость почти в десять раз. Полное отсутствие такого метода очень плохо сказывается на сходимости, но и если таким методам получать слишком много особей - это тоже очень плохо, процесс вырождается через несклько итераций.

    На 100 особях хорошо показывает себя метод когда 90% особей порождается почкованием (случайное изменение всех параметров), и 10% особей - среднее значение между двумя случайными из "хороших"

    Kнов=(K1+K2)/2, потом есно приводим к точке на сфере.

    Почкование - обязательно должно вызывать большое изменение ОФ.
    На моем тесте почкование это - берем случайную особь из "хороших",
    Путь вектор его параметров Kh. Берем случайный вектор на Сфере Ksf.
    И параметры новой оcоби это нормализованный вектор (Kh*5+Ksf)/6

    Но такой метод будет работать только на Сфере. В пространстве можно попробовать прибавку случайного вектора длиной 1/10 от размера пространства.

    Если параметры разделены на несколько генов, то во втором случае меняется только один случайных ген. Для первого метода - Ситуцию с несколькими генами я только начал настраивать.
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    В том то и дело, что это выводы более чем десятилетней давности, на слабой технике, скорей всего еще было потрачены сутки на настройку (а у меня потрачено в десятки раз больше компьютерного времени), и алгоритмы - полный бред. Просто взяты "от балды".

    Полнейшая ерунда. У меня ситуация после почти миллиона игр!
    Чуствуешь разницу? :)

    2000 партий на бредовых алгоритмах взятых от балды, и 1000000 партий на алгоритмах, на нстройку которых на мат. модели потрачены недели...
  27. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Есть мнение зубров шахматного программирования о том, что как таковая подстройка ОФ не важна, главное что бы основные признаки были учтены. И к тому же не известно сколько пунктов ЭЛО получил
    Васик "идеально" настроив ОФ. Если это 15-20, то смысла заниматься этим нет. Возможно в скором времени мы и получим ответ на этот вопрос с Вашей помошью :)
  28. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Ни одного такого мнения я не видел. Можно ссылку на современное мнение именно ЗУБРА о том что автоматическая подстройка ОФ не дает ничего?
    А вот мнение Васика и Маркова я видел. А они всяко могут считаться именно Зубрами. Посты Маркова есть в ветке посвященной его программе на этом форуме.

    Я могу дать цифры в шашках - с нормальными контролями я получил больше 100 пунктов Эло прибавки. Пока 100 пунктов... :)

    На суперкоротких контролх, на которых производилась настройка - это больше 200 пунктов Эло прибавки.

    В шашки таким способом настраиваю ОФ не только я, но и например автор второй по силе программы по результатам последнего чемпионата...
  29. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    А результаты - сравнимые :D
    Судя по записи WildCat #366...
  30. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не у WildCat-а 1000000 партий, и точный тюнинг алгоритмов, а у меня :)
  31. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    WildCat:Но это версии, которые спаривались.

    Результаты в записи #366, скорее, доказывают, что люди не тем способом размножаются. Ничего хорошего он (способ) не даёт. :D
  32. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А чтоб узнать какое мнение действительно имеют Зубры - проще послушать что они говорят в чате.
    http://home.pacific.net.au/~tommyinoz/tlcv.html

    Я например там пол-года назад слышал мнение именно Зубров, что всю свою Силу Рыбка получила именно от расчета ОФ выч. методами (и возможно тюнинга таким-же образом переборных алгоритмов). И больше ничего нового типа в Рыбке нет! (не считая того что для расчта был сильно изменен вид ОФ)
    И что автомаическая настрока ОФ дает очень много. И об этом Говорит не только Васик, Марков, но и например Тод Рамшдадт (Главрук).
    Еще авторы Дип Блю настраивали ОФ выч. методами.
  33. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Авторы книги "Машина играет в шахматы".
    Такими темпами Вы можете получить в шашках идеальную ОФ, но тогда и перебор будет ненужен. ???
    Так?
  34. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    "...но сам процесс!" © Поручик, из анекдота
  35. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Я писал об этом - суть размножения это когда объединяются признаки в гены, так что гены между собой по возможности не связаны. И размножение - это в новой особи каждый ген берется без изменений от одного из родителей.

    Примеры объединения в ген - Все признаки коня, все признаки слона и т.д. Отдельный ген должен описывать взяимосвязь всех признаков (масштабировать фигуры и вес позиционных признаков/метериала между собой) Спаривание хорошо работает только при очень большом количестве особей (при большой популяции)
    Иначе (при малом размере популяции) даже в природе начинается вырождение вида.

Поделиться этой страницей