информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаПортрет посетителяВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
И все таки 20.09.01 18:00  Число просмотров: 822
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> > Я думаю что когда наш гипотетический шахматный автомат
> > закончит
> > свое обучение, то на Земле не останется ни одного
> человека
> > :-)
> Ну, здесь ты не прав, при оптимистическом рассмотрении
> недалёкого будущего, информационные технологии достигнут
> огромных высот, и скорость анализа будет занимать не много
> времени.

Думаю, что даже для тех машин проанализировать 10^100 партий
будет не под силу в течение приемлемого времени, да и разговор шел
не о ближайшем будущем, а о настоящем

> Нет, те ходы при данном расположении фигур, которые
> приведут к победе...
Без коментариев
>
> Кажется это было одно из условий.
> Она продумывала всего несколько ходов вперёд

Еще скажи, что это была IBM PC XT
Шахматы тем и хороши,что до сих пор никто до конца не оценил
все варианты, иначе эта игра не имела бы смысла

<programming>
[C++] new - delete 15.09.01 22:56  
Автор: atom Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как получить значения (или их эквиваленты), возвращаемые операторами new и dekete ?
Суть проблемы:
Система, написанная на си и асме, использует память в разных участках различными способами ( malloc (calloc), прерывания DOS и new). Данная память пермещается между участками системы (разные exe-ки, резиденты com) и в конце концов уничтожается через delete.
Возникли сложности с подтверждением срабатывания new и delete
[C++] new - delete 16.09.01 17:15  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Как получить значения (или их эквиваленты), возвращаемые
> операторами new и dekete ?
> Суть проблемы:
> Система, написанная на си и асме, использует память в
> разных участках различными способами ( malloc (calloc),
> прерывания DOS и new). Данная память пермещается между
> участками системы (разные exe-ки, резиденты com) и в конце
> концов уничтожается через delete.
> Возникли сложности с подтверждением срабатывания new и
> delete

нельзя смешивать между собой разные системы работы с памятью
только соответсвующие пары:
malloc - free
new - delete
new[] - delete[]
...

если очень нужно, то операторы new и delete можно переопределить:

inline operator new(unsigned size)
{
return malloc(size);
}

inline operator delete(void* p)
{
free(p);
}

но вряд ли тебе удасться совместить прерывания DOS и функции стандартной библиотеки C/C++, так как эти функции могут производить запросы у системы больших блоков памяти, а программисту выдавать небольшие - по мере поступления запросов
[C++] new - delete 18.09.01 23:21  
Автор: atom Статус: Незарегистрированный пользователь
<"чистая" ссылка>

Что такое оверлей (overlay DOS) ?
Парочку "золотых сайтов" по сишной и асcемблерной тематике ?
[C++] new - delete 19.09.01 10:20  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
>
> Что такое оверлей (overlay DOS) ?
> Парочку "золотых сайтов" по сишной и асcемблерной тематике
> ?

мне тут посоветовали www.assembler.ru
мне понравилось

а по сишной тематике самой по себе нужен только стандарт языка
сайт скорее нужно искать с более конкретной тематикой

а что такое оверлей я не знаю :)
и щас это наверно уже мало кто помнит :)
в заголовке exe-файла есть поле overlay number
для основного модуля оно равно 0
Не забуду ДОС родную :) 19.09.01 11:22  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> >
> > Что такое оверлей (overlay DOS) ?

> а что такое оверлей я не знаю :)
> и щас это наверно уже мало кто помнит :)
> в заголовке exe-файла есть поле overlay number
> для основного модуля оно равно 0

Если я не ошибаюсь то, оверлей это такая фишка которая позволяет выполнять в DOS программу которая полностью не помещается в оперативную память, это делается посредством подгрузки кода из файла.
Не забуду ДОС родную :) 19.09.01 22:00  
Автор: atom Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Есть предложение обсудить возможность создания ИР (искусственного разума) - для начала как алгоритм какой-нибудь игры, а затем попытаться смоделировать что-то похожее на универсальную системы.
Мои наработки в этом вопросе ограничиваются созданием игрушки "коровы и быки" (это где загадывается четырехзначное число и его нужно угадать "кто быстрее").
Сайты у меня есть, но окло года я к ним не притрагивался (уже забыл все пароли доступа), а новые заводить влом, поэтому если кому интересно, то могу слить прогу или текст (VC++) на мыло.
Наболевшей для меня проблемой является фикция того, что по моим выводам создать шахматы, которые обыгрывали бы человека невозможно (проблемы с просчетом комбинаций у ЭВМ не будет, а вот с выбором верного хода возникают проблемы) - это с одной стороны. А с другой стороны - чемпион мира (не будем показывать на Гарика пальцем) Компьютеру проиграл. Вот с этого парадокса можно было бы и начать ...


Моё мнение... 20.09.01 15:08  
Автор: DamNet <Denis Amelin> Статус: Elderman
<"чистая" ссылка>
Ребят, да есть много книжек по AI. Я думаю что в шахматы машину можно легко научить играть, хотябы методом проб и ошибок, например вложить в машину правила, и заставить её сыграть сама с собой, раз эдак 10^100 раз, я думаю у неё потом не плохо получаться будит. Справка: В партии с Каспаровым играла машина, в которую были вшиты (прописаны) Только партии, сыгранные на турнирах, или ещё как-то, но там не было модели, о которой я говорил. простейший метод Алгоритна для игры можете поискать в книжке Мартина Гаднера.
Изобретателю метода проб и ошибок 20.09.01 17:12  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> Ребят, да есть много книжек по AI. Я думаю что в шахматы
> машину можно легко научить играть, хотябы методом проб и
> ошибок, например вложить в машину правила, и заставить её
> сыграть сама с собой, раз эдак 10^100 раз, я думаю у неё
> потом не плохо получаться будит.

Я думаю что когда наш гипотетический шахматный автомат закончит
свое обучение, то на Земле не останется ни одного человека :-)

Хотелось бы мне посмотреть как машина будет сама играть
Ходить рандомом и запоминать те партии где она выиграла сама у себя :)

> Справка: В партии с
> Каспаровым играла машина, в которую были вшиты (прописаны)
> Только партии, сыгранные на турнирах, или ещё как-то, но
> там не было модели, о которой я говорил. простейший метод
> Алгоритна для игры можете поискать в книжке Мартина
> Гаднера.

Справка: Машина которая играла с Каспаровым действительно
имела вшитые партии, но ты что же думаешь, что зная только это
она могла выиграть ??? Это полный бред !!! Помимо этого она строила неслабое дерево вариантов и имела функции оценки этих вариантов.




Изобретателю велосипеда 20.09.01 17:30  
Автор: DamNet <Denis Amelin> Статус: Elderman
<"чистая" ссылка>
> Я думаю что когда наш гипотетический шахматный автомат
> закончит
> свое обучение, то на Земле не останется ни одного человека
> :-)
Ну, здесь ты не прав, при оптимистическом рассмотрении недалёкого будущего, информационные технологии достигнут огромных высот, и скорость анализа будет занимать не много времени.

> Хотелось бы мне посмотреть как машина будет сама играть
> Ходить рандомом и запоминать те партии где она выиграла
> сама у себя :)
Нет, те ходы при данном расположении фигур, которые приведут к победе...

> Справка: Машина которая играла с Каспаровым действительно
> имела вшитые партии, но ты что же думаешь, что зная только
> это
> она могла выиграть ???
Кажется это было одно из условий.
> Это полный бред !!! Помимо этого она
> строила неслабое дерево вариантов и имела функции оценки
> этих вариантов.
Она продумывала всего несколько ходов вперёд
>
>
>
>
И все таки 20.09.01 18:00  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> > Я думаю что когда наш гипотетический шахматный автомат
> > закончит
> > свое обучение, то на Земле не останется ни одного
> человека
> > :-)
> Ну, здесь ты не прав, при оптимистическом рассмотрении
> недалёкого будущего, информационные технологии достигнут
> огромных высот, и скорость анализа будет занимать не много
> времени.

Думаю, что даже для тех машин проанализировать 10^100 партий
будет не под силу в течение приемлемого времени, да и разговор шел
не о ближайшем будущем, а о настоящем

> Нет, те ходы при данном расположении фигур, которые
> приведут к победе...
Без коментариев
>
> Кажется это было одно из условий.
> Она продумывала всего несколько ходов вперёд

Еще скажи, что это была IBM PC XT
Шахматы тем и хороши,что до сих пор никто до конца не оценил
все варианты, иначе эта игра не имела бы смысла

И все таки 21.09.01 11:09  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
На сколько я знаю в нв проблема ие решается в первую очередь на уровне железа. Проводятся целые симпозиумы по нейро-комп. технологиям. Но проблем пока хватает с головой. И слава богу. Ослу понятно, что построить модель разума используя 16 пользовательских регистров невозможно. А алогоритмы всевозможных игр и комп задач действительно есть, целые тома стоят в магазине на "полянке". Так что как всегда ждемс. Вонючего ветра с запада, покамест задыхаясь от своего.
И все таки 21.09.01 20:10  
Автор: atom Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Разве никто даже и не пытался самостоятельно реализовывать алгоритмы ИР ?
И все таки 21.09.01 23:55  
Автор: Heromantor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если тебя интересуют так сказать азы то вот, а так действительно литературы - море на эту тему.

A: (Sergey Anisimov anis@anis.kchepetsk.ru)

┌────────────────────────────────────────────╥───────────────────────────────
│ Алгоритмы искуственного интеллекта ( AI ) ║
└════════════════════════════════════════════╝

По статье Jang Hin Lang (jang@ecf.toronto.edu)

Я не верю, что возможно обсудить все принципы и методы создания AI (
механизмов самообучения ) в компьютерных программах. Поэтому Вашему
вниманию будут предложены лишь их часть, а вернее всего два алгоритма
создания AI в компьютерных программах.

┌──────────────────╥─────────────────────────────────────────────────────────
│ Алгоритм нейрона ║
└══════════════════╝

Это наименее сложный из алгоритмов. Рассмотрим вначале схематичное
изображение нейрона:


Dendrite Дендрит | ------------ |
(Ввод) ----------------- O | | Аксон - один
. их может быть | Тело нейрона | O ---------------
. несколько | cell body | Axon (вывод)
(Ввод) ----------------- O | |
--------------

Где O - synapse. Синапс служит для соединения контактов между собой и
исполнительными механизмами.

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

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

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

- установите коэффициенты w и порог срабатывания t в
нашем рассмотрении к неким произвольным значениям.

- установите на каждый ввод x(0), x(1), x(2),...., x(n-1)
( прим. перев. Я здесь не понял - видимо надо дать на каждый ввод
либо 1 либо 0 :( )

- вычислите сработал ли вывод сравнив пороговое значение и сумму
коээфициентов ввода


n - 1
-----
\
Сумма коэфф. = w (i) * x (i)
/
-----
i = 0

- измените коэффициеты, для подтверждения правильных решений и
устранения неверных.
( прим. перев. Я не понял как менять эти коэффициенты, на
основании чего ? :( )

┌──────────────────────────────────────╥─────────────────────────────────────
│ Алгоритм Кохенена, или алгоритм Сети ║
└══════════════════════════════════════╝

Этот алгоритм, назван в честь профессора T. Kohonen с факультета
Информатики в Университете Helsinki, Финляндия. Вместо сравнения
входных коэффициентов к порогу срабатывания, ( как в случае с
алгоритмом нейрона ) Кохонен сравнил коэффициенты всех выходов, и
выбрал набор выходов имеющих коэффициенты, которые близко
соответствовали (согласовались) с коэффициентами входов.
Вот ссылка на его работу:

Kaelbling, Leslie Pack
Learning in Embedded Systems
The MIT Press, Cambridge, Massachusetts
(c) 1993
ISBN 0-262-11174-8


Самоообучающаяся сеть состоит из матрицы выходов j, которые все
соединяются с каждым входом i.

----------------
\ O O O \
\ \
выхода j \ O O O \
\ \
\ O O O \
----------------


Входа i O O

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

Алгоритм позволяет определить выход-"победитель" - j*, который
точно подходит к ожидаемому выходу, как определенно входами i.
Изменение коэффициента j* и его окружения будет создавать желаемые
результаты.

( прим. перев. Вообщеничегоне понял :( )

Кохенен успешно реализовал эту методику для системы распознования
речи в середины восьмедисятых годов XX века. Вот его алгоритм:


1. Инициализация сети
- определите матрицу w(ij) (0 <= i <= n-1) которая определяет
коэффициенты от входа i во выход j. Установите
минимальные значения коэффициентов n входов. Установите радиус
окружения вокруг выхода j, N(j), к некоторому большому значению.

2. Установите входа
- Установите входа x(0), x(1), x(2),...., x(n-1), где x(i) - ввод i.

3. Вычислите расстояние
- Вычислите расстояние d(j) между входами i и каждым выходом j по
формуле:


n - 1
-----
\
d(j) = (x(i) - w(ij))^2
/
-----
i = 0

4. Выберите минимальное расстояние и обозначите выход j с
минимумом d(j) - j*.

5. Обновите веса
- обновите вес для узла j* и его окружения как определено
размером границы N(j).


w(ij) = w(ij) + M * (x(i) - w(ij))

Коэффициент M используется чтобы управлять корректировкой
коэффициентов выходов. Его значение должно устанавливаться в
диапазоне [0.5, 1] и затем постепенно уменьшаться, по линейной
функции от номера цикла обучения.

6. Если ожидаемое решение не было обнаружено, повторите
обучающийся цикл ( шаги 2-5 ).

7. Решение устанавливает S-сеть, которую можно использовать
компьютеру против игрока.

Например, сеть состоит из 16 выходов, 4 входов и размер окружения
равен 4, алгоритм Кохенена может разработать стратегию действий
всего за 216 ходов ( 9 * 4! ), что очень хорошо.

┌─────────────╥─────────────────────────────────────────────────────────────
│ Примечание ║
└═════════════╝

А вот алгоритм выдранный из переписки.

- cut -

Newsgroups: fido7.other.nice.sources
From: George Korablev <George.Korablev@p72.f207.n5020.z2.fidonet.org>
Date: Fri, 22 Nov 96 20:05:40 +0300
Subject: [News] Re: Самообучающиеся программы


Сердечно приветствую,дорогой Alexey!

Wednesday November 20 1996.В 03:58, Alexey Efimov изрек из своих недр в адрес
George Korablev следующее:

GK>> Да ты не рубишь разницу между обучающейся экспертной системой и
GK>> обучающейся программой. Хотя игра м.б. построена по принципу
GK>> экспертной системы и экспертная система по принципу игры. Могу
GK>> поделиться мыслями - как построить экспертную системы (плагиат из
GK>> одноименной книжки - валяется в библио-глобусе)

AE> Попpобуй... поделись.

Все-таки Sorry за плагиат, но раз уж просят...

Допустим есть система из двух объектов, имеющих по три свойства.
Hапример птица и самолет. Пусть "1" - это присутствие признака, а "0"
- наоборот.

Крылья Оперение Шасси
Птица 1 1 0
Самолет 1 0 1

Заводим внутри программы массивы 2х3 и 1х3, изначально прописанные
нулями. Массив 1х3 будет вектором наших вопросов.

Режим обучения/отгадывания:
Мы говорим системе: што есть "крылья"+"шасси" (1,0,1). Система
при отгадывании выполняет следующую манипуляцию:

1. умножает вектор наших вопросов на все строки в массиве признаков
поочереди.
2. Получаем два результата.
3. Выбираем максимальный. (это и есть ответ на наш вопрос)

Т.к. все были нули, программа говорит: "Птица?", вы отвечаете "Нет".
Далее происходит следующий алгоритм:
1. Если программа не угадала, то ваш вектор ответов вычитается из
строке массива соответствующему овтету, а к остальным прибавляется.
2. Если программа угадала, то ничего не происходит.

В нашем случае после первых наших вопросов имеем:
Птица -1 0 -1
Самолет 1 0 1

Задаем след. вопрос: што есть "крылья"+"перья" (1,1,0)?
Программа:
Птица : -1+0+0 = -1
Самолет : 1+0+0 = 1
ответ: Самолет
Вы: неверно

Программа:
Птица 0 1 -1
Самолет 0 -1 1

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

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

P.P.S. Кстати можно использовать количественые значения признаков
типа "ноги" при вариантах ответов 1 :), 2, 3 :), 4 и т.д. тоже будет
работать и намного точнее.

P.P.P.S ;)
Приведенный пример экспуртной системы - одноуровневый. о можно на ее
основании построить N-мерную модель. Hапример каждый элемент плоского
массива - это результат по поискам максимальных элементов из других
массивов.

- cut -

( прим. перев. IMHO это понятней. ;)) )

┌────────────────────────╥───────────────────────────────────────────────────
│ Примечания переводчика ║
└════════════════════════╝

Данный документ составлен Анисимовым С.Ю. 02/1997. г. К-Чепецк,
Кировской обл. Россия. root@anis.velcom.vyatka.su

Переводчик не несет ответственность за неверную информацию, и за
повреждения техники и тел при использовании этого документа.

С наилучшими пожеланиями, для всех любителей программировать игры !
Vale !
:))) Телега и лошадь 20.09.01 11:46  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Как я понимаю ты хочешь создать AI :)
Только начать нужно не с программ, а с мат. модели. А для начала перелопатить все существующие нароботки. А их уже не мало. Так же необходимо, ИМО, пройти курс Когнитивной психологии, благо ее создавали инженеры. А уже потом создавать свою модель, итолько после этого что либо "программить".
Вообщем дело не одного года, и на докторскую потянет :)
А теперь вопрос: оно тебе надо ?
Не надо заблуждаться 20.09.01 10:54  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> Наболевшей для меня проблемой является фикция того, что по
> моим выводам создать шахматы, которые обыгрывали бы
> человека невозможно (проблемы с просчетом комбинаций у ЭВМ
> не будет, а вот с выбором верного хода возникают проблемы)
> - это с одной стороны. А с другой стороны - чемпион мира
> (не будем показывать на Гарика пальцем)
> Компьютеру проиграл. Вот с этого парадокса можно было бы и начать ...
===============================================================

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

> Наболевшей для меня проблемой является фикция того, что по
> моим выводам создать шахматы, которые обыгрывали бы
> человека невозможно

Исходя из моего жизненного опыта, если по моим выводам
что-то не должно происходить, но это происходит значит
МОИ ВЫВОДЫ ИЛИ ПРЕДПОСЫЛКИ НЕВЕРНЫ, а не наоборот !!!

С уважением
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach