[УТИЛИТА] Симулятор Танта - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Heroes 3 Tournament - Турниры по 3-им Героям - ONLINE Тут вы можете объявить о своем турнире или принять участие в объявленных турнирах Heroes Of Might And Magic 3. Этот раздел для Online-турниров, чемпионатов, сражений и просто совместных игр - ONLINE.

Ответ
Страница 1 из 3
 
Опции темы
#1
Старый 05.08.2019, 21:11
  #1
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
[УТИЛИТА] Симулятор Танта

TL DR: прогресс можно наблюдать здесь: https://ihromant.github.io

SMOrc
SMOrc SMOrc
SMOrc SMOrc SMOrc
SMOrc SMOrc
SMOrc

Здравствуй, дорогой чятик. Думаю, все сльішали про AlphaZero, которьій сейчас считается непобедимьім в шахматах. Под капотом у AlphaZero есть так назьіваемое машинное обучение на нейронньіх сетях. И с его помощью благодаря простой стратегии обучения (машина учится играть так же как люди - путем наигрьіша и набивания шишек) он в конце концов порвал Стокфиша. Ето бьіло лирическое отступление.

На самом деле в коде АльфаЗеро ничего сложного нету с точки зрения вечности. (например, здесь https://gist.github.com/erenon/cb42f...e6f44a7ac54023 можно посмотреть псевдокод). Вопрос в инфраструктуре (Гугл под ето дело вьіпустил так назьіваемьій TPU-чип) и в количестве компов что ету модель считают. Также с псевдокода вьі можете видеть, что заменив всего несколько частей кода, можно тот же алгоритм для Го или Шоги применить.

К чему я веду? Я веду к тому, что кто понял как работает АльфаЗеро, тот может (захватить вселенную) писать АІ для любой игрьі какую пожелает (как например пишут ботов для Дотьі которьій уже походу рвет чемпионов International https://openai.com/five/ ).

Конечно, Герои имеют общее как с дотой (рандом, неполнота информации), так и с шахматами (полная походовость). Но на самом деле в некоторьіх случаях герои очень простьіе с точки зрения вариантов. Вот один из вариантов я бьі хотел рассмотреть.

Предположим у вас есть Тант. Статьі 1-2-5-8, маньі 120. И 350 скелетов. И утопа 1-2 маячит перед глазами. Вопрос знатокам из чятика: лезть туда или не лезть? Санек например не принимает ход, делает в редакторе карту и гоняет там ету битву 3-4 раза и после етого решает что делать в тот момент когда оппонент матерится "почему он ход не принимает?". Опустив шуточки, в утопе у нас все очень предопределено на самом деле (драконьі врежутся в определенньіе стеки, моралей нет, у нас в качестве ответа очень мало толковьіх вариантов - щит, деф, атака, подождать, анимейт), и так до победьі (или поражения).

В общем, модель очень хорошо ложится на алгоритм машинного обучения что назьівается Reinforced learning. Принцип прост - лезем в утопу, делаем какое-то предположение, получаем (удалено модером), делаем вьіводьі, пробуем новое. Или побились хорошо, думаем как меньше маньі потратить.

Теперь о связи с другой одной игрой. Есть игра "крестики-нолики". Думаю, ее кто-то уже играл на парах или в школе. Игра на самом деле очень похожа на взятие Тантом утопьі. Вариантов примерно такое же число, в конце концов есть результат, можно вариировать количество ответов (например, играть не 3х3 3 в ряд, а 5х5 или 5х6 4 в ряд, или 15х15 5 в ряд). Если научить компа играть ету игру, то путем несложньіх манипуляций можно научить компа брать Тантом утопьі.

Извините за долгое вступление, теперь наконец суть. Я смог научить компа играть в крестики-нолики 3х3 3 в ряд, 5х5 4 в ряд что он не проигрьівает, а если зеваешь - то вьіигрьівает. Сделал ето именно с помощью алгоритма Reinforced learning и машинного обучения на нейронньіх сетях. Код можно посмотреть здесь https://github.com/Ihromant/reinforced-learning .

Я почти уверен, что с его можно адаптировать для случая с Тантом и утопой. Тоесть научить компа брать утопу с минимумом потерь, а если потерь нету - то с минимумом потерь маньі. Если идти дальше - то потом можно идти и к взятию конс (хоть до микрения гарпиями цехов), просто ето сложнее, дольше и его нельзя перепрьігнуть.

Теперь спрашивается почему я ето все создал. Во-первьіх, похвастаться (ну да, ЧСВ). Во-вторьіх, я приблизился к етапу, где кто-то уже может помочь. Вариантов явньіх я вижу пока 2:
1. Мне надо модель взаимодействия драконов со скелетами. Я думаю, что смогу со временем впилить ету модель, но во-первьіх я работаю, во-вторьіх имею другую деятельность. А дело ето требует усидчивости и немного скучное. А тренировать на неправильной модели - будут неправильньіе советьі. Потом модель может вьірасти и до взятия конс и прочего. Но надо знатока поведения компов что сможет перевести свой опьіт войньі с компами в код.
2. Тренировка моделей не делается мгновенно. Дальше надо будет тренировать пошагово. Процесс довольно скучньій на самом деле. Запустил, подождал, сохранил в файлик. Файлик где-то вьіложил, кто-то другой его тоже запустил, потренировал, вьіложил. Надо комп с хорошой видеокартой (у меня ноут, комп в планах, но щас нету). Потому, что чтобьі научить компа играть в 5х5 крестики нолики - то занимает ето 2 часа работьі на моем рабочем мощном компе). Можете представить сколько времени займет тренировка взятия консьі.

В общем, где-то так пока. Обсуждаем.
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#2
Старый 06.08.2019, 18:25
  #2
^
leiz
 
Аватар для leiz
Регистрация: 13.10.2012
Сообщения: 13
leiz - уровень боевого духа
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Я скептически настроен по поводу ИИ, но если вдруг "взлетит", то вы не боитесь таким образом случайно "убить" игру онлайн и оффлайн-турниры? А то ведь паранойя по поводу того, что у оппонента нвидиевский ящичек под столом спрятан, будет лечится только прямой видеотрансляцией (и то не факт).
leiz вне форума
Ответить с цитированием
#3
Старый 06.08.2019, 23:29
  #3
^
Meo
 
Аватар для Meo
Регистрация: 23.03.2007
Адрес: Эрефия
Сообщения: 557
Meo - уровень боевого духа
1576
Отправить сообщение для  Meo с помощью ICQ meo #8801
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Я тоже одно время прикидывал насчет AI в героях, как достойного противника. ИМХО, теоретически реализуемая, но титаническая задача. Даже по глобальному, стратегическому AI. Но человекочасов тут надо немеряно..

А по боевкам в основе должен лежать простой перебор всевозможных вариантов на 2..n ходов вперед, на основе все-таки некоего тактического "скелета", со сравнением по некоей формуле отношения потерь врага к собственным.
Разумеется, перед этим надо аналитически вывести реальный боевой алгоритм AI (драконов) и тогда уже можно будет обучать нейросеть действительно быстро.

Дефолтный AI считает, как нанести наибольшие потери, но только за текущий ход, и что стоит "подарить" ему еще немного процессорного времени? Три хода вперед, на вскидку, это 200х200х200 вариантов - "семечки" для сегодняшнего "железа!"

Цитата:
Сообщение от leiz
вы не боитесь таким образом случайно "убить" игру онлайн
Если реализовать продукт в виде новых костылей-калькуляторов, то да. Но в идеале - создать бота. И заставить сотни клонов таких ботов самообучаться в непрерывных виртуальных боях..
__________________

Безземельный дон с HeroesPortal, инкогнито.
Meo вне форума
Ответить с цитированием
#4
Старый 07.08.2019, 11:07
  #4
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от leiz
Я скептически настроен по поводу ИИ, но если вдруг "взлетит", то вы не боитесь таким образом случайно "убить" игру онлайн и оффлайн-турниры? А то ведь паранойя по поводу того, что у оппонента нвидиевский ящичек под столом спрятан, будет лечится только прямой видеотрансляцией (и то не факт).
Нет, не думаю. Во-первьіх я не думаю сделать полного бота. Я уже писал на счет сложности вьічислительной и прочей. В планах есть сделать битву в утопе Тантом, в идеале еще взятие обьектов (потому, что там бьістро битва заканчивается) с учетом статов и магии в книжке героя. На счет микрения нейтралов - уже не знаю хватит ли мощности и моего умения. Потому бонус так себе, на самом деле. Похоже на то, как запускать во время игрьі "Взятие склепов Complete edition" на ютубе. Вроде потери немного меньше (не думаю что он порвет суперопьітного игрока), но таймер залит.
Цитата:
Сообщение от Meo
Я тоже одно время прикидывал насчет AI в героях, как достойного противника. ИМХО, теоретически реализуемая, но титаническая задача. Даже по глобальному, стратегическому AI. Но человекочасов тут надо немеряно..

А по боевкам в основе должен лежать простой перебор всевозможных вариантов на 2..n ходов вперед, на основе все-таки некоего тактического "скелета", со сравнением по некоей формуле отношения потерь врага к собственным.
Разумеется, перед этим надо аналитически вывести реальный боевой алгоритм AI (драконов) и тогда уже можно будет обучать нейросеть действительно быстро.

Дефолтный AI считает, как нанести наибольшие потери, но только за текущий ход, и что стоит "подарить" ему еще немного процессорного времени? Три хода вперед, на вскидку, это 200х200х200 вариантов - "семечки" для сегодняшнего "железа!"


Если реализовать продукт в виде новых костылей-калькуляторов, то да. Но в идеале - создать бота. И заставить сотни клонов таких ботов самообучаться в непрерывных виртуальных боях..
Да, основная сложность - ето вьівести реальньій боевой AI. Потому, что machine learning - он учится на том, на чем тьі его учишь. Научил на кошках - он и умеет на кошках, а при виде человека теряется. Кое-что конечно может переиспользовать, но например если тьі учил его взятию утоп без жаждьі крови, а потом с жаждой - то придется скорее всего переучивать с ноля потому, что он тупо не будет знать что с жаждой делать (модель там ооооооочень важна).
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#5
Старый 11.08.2019, 02:48
  #5
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Бьіла оказалось проблема. У меня на 300 000 испьітаниях для крестиков-ноликов 5х5 бот проходил локальньій минимум потом влазя в бесконечное блуждание. Добавил логирование, запустил на миллионе. Оказалось что да, учится, и очень хорошо учится. Веселая медитация на вечер получилась. Можете запускать и медитировать на консоль смотря как машина обучается.
Миниатюры
Нажмите на изображение для увеличения
Название:  Screenshot from 2019-08-11 01-43-00.png
Просмотров: 59
Размер:	47.8 Кбайт
ID:	59922  Нажмите на изображение для увеличения
Название:  Screenshot from 2019-08-11 01-49-10.png
Просмотров: 97
Размер:	75.9 Кбайт
ID:	59923  
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#6
Старый 11.08.2019, 13:10
  #6
^
Grando
Регистрация: 23.03.2013
Сообщения: 1818
Grando - уровень боевого духа
1563
Grando#0355
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

А чо там, в го боты уже научились играть без ошибок ?
__________________
https://www.twitch.tv/grando__
Grando вне форума
Ответить с цитированием
#7
Старый 12.08.2019, 00:17
  #7
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от Al Feyn
А чо там, в го боты уже научились играть без ошибок ?
5x6 (в теории вьіигрьішное). Вьіглядит норм, но я недоволен. Завтра на работе попробую исправить. Когда получу то, чего хочу (в конце игру без изьянов и хороший перебор вариантов) - то буду делать сохранение версий AI.
Миниатюры
Нажмите на изображение для увеличения
Название:  Screenshot from 2019-08-11 21-49-05.png
Просмотров: 40
Размер:	39.1 Кбайт
ID:	59925  
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#8
Старый 18.09.2019, 12:33
  #8
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Обновление (если кому-то интересно).

1. Очень много передельівал потому, что сначала сделал все под крестики-нолики (например делал оценку по последствию действия, а не по комбинации состояние-действие). Также вьіделил хороший кусок кода в "агента", теперь есть много агентов, интересньіх и разньіх (которьім управлять может комп, которьім управляет минимакс, которьім управляет QLearningAI на базе пофигу или Map или нейронки).
2. Разделил "тренировку" и "игру". Теперь тренировать можно постепенно, сохраняя промежуточньіе результатьі на диск. Соответственно, если че-то упало, просто берем предьідущий результат и начинаем опять. Также можно контролировать сколько тренировать в текущий момент.
3. Бьіла проблема с тем, что со временем нейронка вьірождалась в NaN (в общем, портилась бесповоротно), из-за чего поменял функцию активации с ReLu на Sigmoid на первом слое. Учится немного медленнее, но уже пошел на 4 миллион, брат жив, зависимости нету.
4. Вьіделил результат игрьі, еще не сделал конвертации результата непосредственно в вьівод нейронки, но уже препятствий никаких нету.
5. Есть идея попробовать convolutional layer, но он поможет для крестиков-ноликов, но не для героев (хотя если усложнить в дальнейшем структуру нейронки - то анализ поля можно будет пропускать через него, а анализ остального (магии, статов героя и прочего) через плотньій слой.

В общем, к чему я все ето. Я 25 сентября буду вьіступать в своей компании и показьівать то, чего добился с крестиками-ноликами. До етого буду полировать то, что есть и делать презентацию. Если кто-то хочет - может начать реализовьівать состояние для героев в ето время. (завлекаю ) Если нет - то вероятно начну уже сам что-то пилить с октября именно по героям.

3х3 учится за 1,5 миллиона испьітаний так, что не проигрьівает минимаксу (тоесть играет идеально).

Внизу картинки для привлечения внимания (как учится 5х5, 4 в ряд).
Миниатюры
Нажмите на изображение для увеличения
Название:  5x5_1000k_sigmoSoft.png
Просмотров: 51
Размер:	32.1 Кбайт
ID:	60238  Нажмите на изображение для увеличения
Название:  5x5_1500k_sigmoSoft.png
Просмотров: 17
Размер:	28.2 Кбайт
ID:	60239  Нажмите на изображение для увеличения
Название:  5x5_2000k_sigmoSoft.png
Просмотров: 17
Размер:	28.9 Кбайт
ID:	60240  Нажмите на изображение для увеличения
Название:  5x5_3000k_sigmoSoft.png
Просмотров: 31
Размер:	42.3 Кбайт
ID:	60241  
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#9
Старый 29.09.2019, 14:01
  #9
^
ДаУ
 
Аватар для ДаУ
Регистрация: 17.09.2013
Адрес: Украина
Сообщения: 824
ДаУ is off the scale
1239
Отправить сообщение для  ДаУ с помощью ICQ petro#3772
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от Ihromant
Можете представить сколько времени займет тренировка взятия консьі.

В общем, где-то так пока. Обсуждаем.

Может лучше сделаем герои более линейными, как шахматы; отстроил гильду получил именно то заклинание, 3 разных строения для заклов контроля; с карты убираем все свитки святыни заклинаний; взамен добавляем чтото другое; насчет ИИ есть же опция пвп, нужно лишь ее доработать; а также можно сделать для новичкев ОХ для 5 и больше игроков; чтобы больше игроков приходило.

Нужно переделать опцию пвп битвы с возможностью отказатся от боя тому кто играет за ИИ, если бой 100% проиграшный; чтобы лишнее не кликать.
__________________
672466033
Миха#7845
Ландау лев https://www.youtube.com/watch?v=PNj_9EQxDoI&t=1174s

Тут делимся книгами http://forum.heroesworld.ru/showthre...27#post1139927
ДаУ вне форума
Ответить с цитированием
#10
Старый 29.09.2019, 15:09
  #10
^
ffoolabezlp
Регистрация: 03.10.2018
Сообщения: 170
ffoolabezlp - уровень боевого духа
1456
Отправить сообщение для  ffoolabezlp с помощью ICQ ffoolabezlp#7126
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от ДаУ
Может лучше сделаем герои более линейными, как шахматы; отстроил гильду получил именно то заклинание, 3 разных строения для заклов контроля; с карты убираем все свитки святыни заклинаний; взамен добавляем чтото другое; насчет ИИ есть же опция пвп, нужно лишь ее доработать; а также можно сделать для новичкев ОХ для 5 и больше игроков; чтобы больше игроков приходило.

Нужно переделать опцию пвп битвы с возможностью отказатся от боя тому кто играет за ИИ, если бой 100% проиграшный; чтобы лишнее не кликать.

О, я наконец-то узнал, кто такой легендарный ДаУ, о котором все говорят.

Сделать герои еще более линейными чем в хоте, или на джебе?
Интересно.

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

Есть типичный пример из недавних игр:
В начале 2019го вышла кастомка в доте, Dota Auto Chess, которая в своё время собрала нереальный хайп, и смотрело DAC больше чем собственно доту.
Габен, понял что тут пахнет бабками и хайпом, Риоты поняли, что тут пахнет бабками и хайпом, EpicGames поняли что тут пахнет бабками и хайпом.
В это же время, Drodo - авторы сей кастомки, пилили мобильную игру и саму кастомку.
Как итог, Drodo заключают контракт с EpicGames, а Riot и Valve решают создать свои клоны.
Так как мобилку без особых проблем можно создать на Unity, c уже имеющимися модельками, а y Riot есть своя платформа в виде LoL, эти игры выходят в один день, опережая EpicStore на несколько месяцев.
Габен с Riot говорят, вот у нас бета версии игр, идите к нам, мы будем их апдейтить и проводить турики с призовыми. И игроки, как бараны идут в недопиленую хрень, потому что бабки, бабки, бабки.
EpicGames понимают что запахло жареным, и обьявляют турнир на 1кк баксов.
Потом выпускают свою игру, а она сырее досок пролежавших 7 суток под дождем, половина функционала не работает и попахивает провалом.
А турик мы анонсировали, а все даты уже есть.
Как итог отборочные турика переносятся на мобильную версию Дродо авто чесс.
И игроки как зомби идут играть в неё, трениться, ибо миллллллллиоооооооооооооон.
А слотов 2, а игроков дохера, а игра рандомная.
Как итог отыграв отборочные к турниру, все забивают на игру.
Итого, что мы имеем:
Высер Габена (андерлордс не могу иначе назвать)
Немного иная казуальщина от Riot, с стыренной идеей и так себе реализацией
Мобилка от дродо отстающая на 2 месяца в развитии.
Неготовая игра от Эпикгеймс.
И прекраснейшая кастомка, в которой куча нововведений и интересных страт.
И все уже просрали свой онлайн...
__________________
ffoolabezlp вне форума
Ответить с цитированием
#11
Старый 30.09.2019, 02:13
  #11
^
Aiwe
 
Аватар для Aiwe
Регистрация: 09.01.2013
Адрес: Питер
Сообщения: 1328
Aiwe - уровень боевого духа Aiwe - уровень боевого духа
1709
Отправить сообщение для  Aiwe с помощью ICQ Aiwe#4050
Выставка наград
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

__________________
http://heroes3.tv/aiwe
Aiwe вне форума
Ответить с цитированием
#12
Старый 10.05.2020, 00:11
  #12
^
Ihromant
 
Аватар для Ihromant
Регистрация: 14.08.2011
Сообщения: 1456
Ihromant - уровень боевого духа
1742
Отправить сообщение для  Ihromant с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Бот берет склепьі. Если хотите посмотреть результат - смотрите в самому конце последние полчаса. Если хотите посмотреть все байто ужасьі - смотрите с самого начала.
https://www.twitch.tv/videos/615773537

Вьі понимаете куда все идет, я надеюсь? Kappa
__________________
Мой любимьій размер - тройка. Будь то конса, утопа или сиськи
ICQ:5676388
Ihromant вне форума
Ответить с цитированием
#13
Старый 10.05.2020, 10:27
  #13
^
Vigo
 
Аватар для Vigo
Регистрация: 22.10.2007
Адрес: Москва
Сообщения: 2288
Vigo - уровень боевого духа Vigo - уровень боевого духа Vigo - уровень боевого духа
1268
Отправить сообщение для  Vigo с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Иван, Вы больны на голову, Вам как можно скорее надо лечиться! )
__________________
Всё будет хорошо!!! Только неизвестно когда... НО ОБЯЗАТЕЛЬНО БУДЕТ!!!
Но!...
Слушай всех, прислушивайся к немногим, решай сам...

Vigo вне форума
Ответить с цитированием
#14
Старый 10.05.2020, 11:30
  #14
^
Dirty_Player
 
Аватар для Dirty_Player
Координатор
Регистрация: 29.04.2007
Адрес: Las Vegas, Nevada
Сообщения: 11586
Dirty_Player - уровень боевого духа Dirty_Player - уровень боевого духа Dirty_Player - уровень боевого духа
1750
Отправить сообщение для  Dirty_Player с помощью ICQ Dirty_Player#3487
Выставка наград
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от Ihromant
Вьі понимаете куда все идет, я надеюсь? Kappa
Погосты! А затем и цеха!!!!
Dirty_Player вне форума
Ответить с цитированием
#15
Старый 10.05.2020, 12:40
  #15
^
Pridu
Регистрация: 14.06.2013
Сообщения: 566
Pridu - уровень боевого духа
1414
Отправить сообщение для  Pridu с помощью ICQ
По умолчанию
Re: [УТИЛИТА] Симулятор Танта

Цитата:
Сообщение от Dirty_Player
Погосты! А затем и цеха!!!!
а как венец революции гайды повровеля
Pridu вне форума
Ответить с цитированием
Ответ
Страница 1 из 3


Опции темы



Часовой пояс GMT +4, время: 09:47.


vBulletin v3.5.0, Copyright ©2000-2020, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru