Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Математика

Говорим на свободные темы
offlineАватара пользователя
VDV_forever  
имя: Дмитрий
Администратор
 
Сообщения: 3859
Зарегистрирован: 22 мар 2009, 12:36
Пол: Мужчина
Поблагодарили: 982 раз.

Математика

Сообщение VDV_forever » 23 окт 2012, 11:05

Хотелось бы разобраться вот в каком вопросе - СКО. Знаю что Саша специалист в этом деле и с теорией вероятностей он на ты ;)

Задача как мне кажется не простая как это может показаться на первый взгляд.

1. Имеется набор значений отличных от нуля, т.е. значения с ошибками. В идеале все они должны быть 0, но у меня не идеальный случай.
Допустимый максимальный разброс этих ошибок равен +-3

2. Как вычислить по этим значениям среднеквадратичное отклонение? Сколько этих значений необходимо набрать для вычисления среднеквадратичного отклонения? Чем среднеквадратичное отклонение отличается от среднеквадратичной ошибки измерения и суммарного среднеарифметического значения?

Смотрю на формулы и туплю: :oops:

Изображение

Изображение

Изображение

Изображение

Изображение

кроме того есть инфа здесь, которую завтра буду изучать :)

http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5

http://investment-analysis.ru/metodFC2/daily-variance-arithmetic-mean-deviation.html

http://investment-analysis.ru/task/tasFKStat.html

Какое же это изобретение Интернет!!!! Супер!

Вот, нашел, то что надо:

http://statanaliz.info/teoriya-i-praktika/10-variatsiya/15-dispersiya-standartnoe-otklonenie-koeffitsient-variatsii.html
http://www.handbookhmm.ru- Познай все тонкости игры!
Вернуться к началу

offlineАватара пользователя
VDV_forever  
имя: Дмитрий
Администратор
 
Сообщения: 3859
Зарегистрирован: 22 мар 2009, 12:36
Пол: Мужчина
Поблагодарили: 982 раз.

Re: Математика

Сообщение VDV_forever » 29 окт 2012, 10:32

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

Есть данные (обычный числовой ряд), СКО и дисперсия
http://www.handbookhmm.ru- Познай все тонкости игры!
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2155 раз.

Re: Математика

Сообщение AlexSpl » 29 окт 2012, 10:44

Посмотри тут. Может быть, поможет.
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Математика

Сообщение Владимир » 05 апр 2016, 05:06

Ну я даже не знаю, куда это написать.

Задали мне задачку наши преподаватели: написать реферат по истории шахматных алгоритмов и компьютеров. Написал; совершенно не умею/ не считаю правильным бессовестно копировать по 2 страницы разом, поэтому писал долго. Насколько "всё плохо" пока не знаю (сдаю сегодня), зато наконец сообразил, как работает (a,b)-отсечение и что такое нулевой ход.

Кто-нибудь кроме меня читал про проекты "Пионер" и "Chess Computer Sapiens" Михаила Ботвинника? Необычная штука, которая работала... должна была работать через поиск пути от одной фигуры до другой и способности фигур соперника её на этом пути "перехватывать".
Для шахмат не очень подходит, зато для более сложных игрушек выглядит интересно.

Как там у нас со взглядами на правильный геройский ИИ? Неужели кто-то ещё считает, что простые эвристики с разбором всего одного хода - это круто и правильно?
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Математика

Сообщение Zelya » 05 апр 2016, 13:41

Владимир писал(а):

Как там у нас со взглядами на правильный геройский ИИ? Неужели кто-то ещё считает, что простые эвристики с разбором всего одного хода - это круто и правильно?


viewtopic.php?f=7&t=411&p=12428#p12428

Там внизу:
Zelya писал(а):

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

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Математика

Сообщение t800 » 05 апр 2016, 13:52

Владимир писал(а):

Кто-нибудь кроме меня читал про проекты "Пионер" и "Chess Computer Sapiens" Михаила Ботвинника? Необычная штука, которая работала... должна была работать через поиск пути от одной фигуры до другой и способности фигур соперника её на этом пути "перехватывать".


Я прочитал! Ботвинник написал программу "Пионер", но она была глючная поэтому Ботвинник пошел на фальсификацию
И сам вместо своей программы сыграл в шахматный этюд, а Берлингер его разоблачил. Вот!
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Математика

Сообщение Владимир » 05 апр 2016, 14:27

Zelya, я помню. Просто после всего прочитанного захотелось ещё раз вернуться к предмету и попробовать свои силы. Буду благодарен, если вы чётко опишете свою функцию оценки - не обязательно в виде кода, главное, чтобы ничего не было пропущено (включая и числовые коэффициенты).

t800 писал(а):

Я прочитал! Ботвинник написал программу "Пионер", но она была глючная поэтому Ботвинник пошел на фальсификацию
И сам вместо своей программы сыграл в шахматный этюд, а Берлингер его разоблачил. Вот!


Молодой человек, не будьте так категоричны. Версию про мошенничество я тоже читал. Но меня заинтересовал скорее вопрос о возможности создать ИИ по принципам Ботвинника, чем то, что же он сам сделал на самом деле.
Вот здесь, например, излагается прямо противополжная оценка проекта:
http://atimopheyev.narod.ru/AfterPIONEE ... ps.ALL.HTM
А ещё есть книги самого Ботвинника, например "От шахматиста к машине" (1979 года).

Для тактической части Героев подход Ботвинника тоже мало подходит. А вот игрушки вроде моих солдатиков могут использовать его принципы. Ну например:
https://habrahabr.ru/post/206680/
Вернуться к началу

offlineZelya  
Мастер
Мастер
 
Сообщения: 390
Зарегистрирован: 04 янв 2011, 15:16
Пол: Не указан
Поблагодарили: 203 раз.

Re: Математика

Сообщение Zelya » 05 апр 2016, 15:26

Код сейчас найти сложновато будет. Вот немного псевдокода из головы:
Код: Выделить всё
int CalculateDamage(unit you, unit enemy)
{
   int maxDamage = GetDamage(you.MaxDamage, you.Attack, enemy.Defence);
   int minDamage = GetDamage(you.MinDamage, you.Attack, enemy.Defence);
   int result = (maxDamage*_chance + minDamage*(100-_chance))/100;   //_chance is optional parameter, which related to damage calculation logic and has values in percent (usually near 50)
                                                   //It the simpest case it will be int result = (maxDamage + minDamage)/2;   
   return result;
}

int GetAttackScore(unit you, unit enemy)
{
   int distance = GetDistance(cell, enemy.Position);
   if (distance <= you.Steps){
      int damage = CalculateDamage(you, enemy);
      int score = GetUnitScoreByType(enemy)*damage;
      
      
      int unitsKilled = CalculateUnitsKilled(enemy, damage)      //Optional calculation. Means that it's more preferable to kill unit rather then just hurt it.
      score += unitsKilled*GetUnitScoreByType(enemy)*_killBonus    //_killBonus can be quite big value, 100-1000 or can be calculated based on unit health. Like _killBonus= enemy.HP or_killBonus= enemy.HP*2
      
      
      //score decrease by back-hit should be added here
   }
   return 0;
}

int GetUnitScoreByType(unit unitInfo){
   int maxDamage = CalculateDamage(you.MaxDamage, you.Attack, 1);
   int minDamage = CalculateDamage(you.MinDamage, you.Attack, 1);
   int result = maxDamage*_chance + minDamage*(100-_chance)/100;
   
   if (unit.CanFly)
      result = result*_flyBonus; //_flyBouns = 1.5 can play with this value.
   if (unit.CanShoot)
      result = result*_shootBonus; //_shootBonus = 2 (can be a function related to number of shoots)
   return result;
}

int CalculateCellScore(point cell){
   int result
   for (int i=0; i<_enemyUnits.Length; i++){
      unit enemy = _enemyUnits[i];
      int distance = GetDistance(cell, enemy.Position);
      int score = GetUnitScoreByType(enemy)/(2^distance);// exponential algorithm will be better
   }
}

void GetTheBestCellToMove(unit you){
   point cellToMove = you;
   int maxMoveScore = 0;
   point cellToAttack = null;
   int maxAttackScore = 0;
   foreach (point cell in map){
      int distance = GetDistance(cell, enemy.Position);
      if (distance > you.Steps)
         continue;
   
      int moveScore = CalculateCellScore(cell);
      int attackScore = 0;
      unit target = null;
            
      unit[] targetsToAttck = FindEnemiesToBeAttacked()
      foreach (unit enemy in targetsToAttck){
         int as = GetAttackScore(you, enemy);
         if (as > attackScore)
            attackScore = as
            target = enemy;
      }
      
      //Approach1 dynamic calculation
      if (attackScore*_attckBonus + moveScore > maxAttackScore*_attckBonus + maxMoveScore){//_attckBonus about 2-10
         //Set new max values
      }
      
      //Approach2 attack is more preferable
      if (attackScore>maxAttackScore){
         //Set new max values
      }else if (attackScore=maxAttackScore && moveScore > maxMoveScore){
         //Set new max values
      }
      
   
   }


}



Это грубая оценка "полезности" хода юнита. Здесь не учитаны бонусы от перекрытия стрелков (как и штрафы для своих стрелков) и еще может что-то пропустил.

На базе этой "полезности" можно внести более глубокую оценку. Это я еще непрбовал. Например, сколько очков мы набъем за N ходов и сколько противник.
Но можно пойти еще дальше. Можно оценивать стретегическую карту, а не результаты ходов. Иметь четыре параметра:
1. Суммарный потенциал врага по силе (на базе вышеприведенной "полезности" юнитов)
2. Суммарный потенциал своей армии по силе (то же)
3. Суммарный тактический бонус врага ("полезность" занятых клеток)
3. Суммарный тактический бонус своей армии (то же)
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Математика

Сообщение t800 » 08 апр 2016, 12:35

Владимир писал(а):

А вот игрушки вроде моих солдатиков могут использовать его принципы. Ну например:
https://habrahabr.ru/post/206680/



Мне кажется это не Искусственный Интеллект! Я думаю что ИИ должен сам обучаться как надо играть, а в статье стратегию как надо играть придумывает человек и потом просто пишет программу про то как он придумал! Я думаю что это не правильно, правильней было бы он придумал придумать как написать программу чтобы она сама обучалась как надо играть и училась на собственных ошибках. А так это не Искусственный Интеллект а просто робот. Вот!
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2155 раз.

Re: Математика

Сообщение AlexSpl » 22 окт 2017, 14:23

Автомат умеет генерировать случайные числа равновероятно в диапазоне [1; 2] (от 1 до 2): в режиме 1 он генерирует только целые числа, в режиме 2 - только рациональные, в режиме 3 - только иррациональные.

Вопрос: какова вероятность, что автомат сгенерирует два одинаковых (равных) числа одно за другим в режиме 1, 2 и 3?

Режим 1: P = 1/2 (сгенерировал 1) * 1/2 (не сгенерировал 2) + 1/2 (сгенерировал 2) * 1/2 (не сгенерировал 1) = 1/2 (50%).

Логика:

Режим 2: так как рациональных чисел в диапазоне [1; 2] бесконечно много, то вероятность того, что автомат сгенерирует два равных рациональных числа одно за другим, равна 0.
Режим 3: так как иррациональных чисел в диапазоне [1; 2] бесконечно много, то вероятность того, что автомат сгенерирует два равных иррациональных числа одно за другим, равна 0.

Интуиция:

Режим 2: Так как автомат может сгенерировать любое рациональное число из диапазона [1; 2], то вероятность того, что он сгенерирует два одинаковых рациональных числа одно за другим, не равна нулю.
Режим 3: Так как автомат может сгенерировать любое иррациональное число из диапазона [1; 2], то вероятность того, что он сгенерирует два одинаковых иррациональных числа одно за другим, не равна нулю.

Далее, известно, что иррациональных чисел "намного больше", чем рациональных. Поэтому вероятность того, что автомат сгенерирует два одинаковых иррациональных числа одно за другим, больше вероятности того, что автомат сгенерирует два одинаковых рациональных числа одно за другим. Возвращаясь к логике, получаем что вероятность 0 в режиме 2 больше вероятности 0 в режиме 3, т.е. существует как минимум два нуля, причём они сравнимы (т.е. один из нулей может быть больше или меньше другого).

Главный вопрос: Где косяк? :smile2:
Вернуться к началу

След.

Вернуться в Поболтаем?

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 6

cron