LINUX.ORG.RU — Русская информация об ОС Linux

[#]  
Sun-ch

Международный чемпионат по искусственному интеллекту

Опубликованы результаты международного чемпионата в области AI, организованного в университете Ватерлоо (Канада), при спонсорской поддержке Google. Приятно было увидеть в числе финалистов несколько представителей из России. Удивительным оказался тот факт, что среди победителей, попавших в top10, все 100% использовали язык C++.

>>> Подробности

Метки: ai, чемпионат

Sun-ch # (02.03.2010 12:15:38)
Проверено: boombick (02.03.2010 17:15:26)
Juick

[#] Ответ на: комментарий от anonymous 03.03.2010 16:32:45  
dave

> Грабли в backtracking-е, когда один шаблон обломался, и надо вернуться проверять второй.

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

dave ***** (03.03.2010 16:46:30)
[#] Ответ на: комментарий от anonymous 03.03.2010 16:34:23  

> Так и запишем - что такое алгебра ты не знаешь.

> Вычисления - это частный случай преобразований.

>http://en.wikipedia.org/wiki/Symbolic_computation

Прочитал... вот что пишет ваша англицкая википедия

> Symbolic computation or algebraic computation, relates to the use of machines, such as computers, to manipulate mathematical equations and expressions in symbolic form ...

И что там такое, что выходит за рамки того, что уже говорил ранее... там идет речь о применение "Symbolic computation" при манипуляции с "mathematical equations"(математическими уровнениями) и выражениями в символьной форме. И где это в все применяется? В компьютерах -- the use of machines, such as computers...

Где упоминание самой Алгебры, а?

rjaan ** (03.03.2010 16:49:08)
[#] Ответ на: комментарий от rjaan 03.03.2010 16:34:37  
dave

> А мне уже нечего терять :-)))

Еще почти ничего не потеряно. Спор-то возник на пустом месте. Так же и просто мог бы быть разрешен, ан нет. Ты ведь, вроде бы, ничего такого неразумного еще не говорил. Кроме того поста про алгебру и вычисления, конечно. :)

dave ***** (03.03.2010 16:53:37)
[#] Ответ на: комментарий от anonymous 03.03.2010 16:45:01  

> Ты сам их начал. Так что или бери свои слова про
> символьные вычисления обратно,


Я сказал, что символьные вычисления в Common Lisp не имеют никакого отношения к алгебре. Привел подтверждения этого, в виде ссылок на набор функция для работы с символами в Common Lisp, а так же на реальный код, полностью соответствующий моему пониманию, и ссылался я не только на свой код. Эта моя аргументация была полностью проигнорирована и единственной реакции было то, что я мол не знаю что-то такое алгебра. При чём тут алгебра, до сих пор понять не могу.

> Какой код тебе нужно то, упёртенький?

> Я уже сказал - весь компилятор SBCL такой.


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

archimag ** (03.03.2010 16:55:20)
[#] Ответ на: комментарий от archimag 03.03.2010 15:17:59  
Sun-ch

>а также ядерная физика. Это имеет значение?

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

Sun-ch # (03.03.2010 16:59:20)
[#] Ответ на: комментарий от qsloqs 03.03.2010 16:23:50  
Sun-ch

>Сколько я видел программистов все используют C, C++, Java, Asm. На остальное плюются.

Asm надо понимать, вставленный в тело ява программы?

Sun-ch # (03.03.2010 17:03:09)
[#] Ответ на: комментарий от dave 03.03.2010 16:53:37  

> Еще почти ничего не потеряно. Спор-то возник на пустом месте. Так же и просто мог бы быть разрешен, ан нет. Ты ведь, вроде бы, ничего такого неразумного еще не говорил. Кроме того поста про алгебру и вычисления, конечно. :)

На самом деле все, что тут творится -- детский сад... потому что реальная работа программиста исчисляется работающими программами, а не высоким интеллектуальным трепом...

> Кроме того поста про алгебру и вычисления, конечно. :)

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

rjaan ** (03.03.2010 17:03:47)
[#] Ответ на: комментарий от qsloqs 03.03.2010 16:25:45  
Sun-ch

>Не спроста же Линус писал ядро на С.

Это явы просто тогда еще небыло, иначе бы он зачеты хрен получил.

Sun-ch # (03.03.2010 17:04:40)
[#] Ответ на: комментарий от rjaan 03.03.2010 17:03:47  
Sun-ch

>потому что реальная работа программиста исчисляется работающими программами, а не высоким интеллектуальным трепом...

Чуваки, которые придумали лисп, пролог, ML и прочие хаскели, между прочим, были профессорами. И только их широкий кругозор и отличная математическая подготовка позволили им сделать это. Это тебе не пых-пых на коленке залудить, для чего не надо бетта-редукции всякие знать.

Sun-ch # (03.03.2010 17:09:27)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 16:59:20  

> Да, а что вы можете сказать про калибровочные поля смешанного типа
> симметрии с произвольными спинами?


Ничего, а что-то должен говорить? Я занимался воздействием радиации (в основном электронов и протонов) на солнечные элементы (ФЭПы). Вам это интересно?

archimag ** (03.03.2010 17:10:13)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:09:27  

И какой из этого надо сделать вывод?

archimag ** (03.03.2010 17:13:11)
[#] Ответ на: комментарий от archimag 03.03.2010 17:10:13  
Sun-ch

Ну не знаю, вообще то, человек занимающийся ядерной физикой должен знать про калибровочные поля и я ошибаюсь?

Sun-ch # (03.03.2010 17:14:41)
[#] Ответ на: комментарий от dexter_mps 02.03.2010 18:20:45  
xintrea

> а ктонить видел видео с профайла нашего - что на 23м месте? *ROFL*

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

xintrea * (03.03.2010 17:14:46)
[#] Ответ на: комментарий от archimag 03.03.2010 17:13:11  
Sun-ch

Да очень простой, без знания теории типизированного лямбда-исчисления, компилятор хаскеля тебе не написать. И еще много чего.

Sun-ch # (03.03.2010 17:16:19)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:14:41  

> человек занимающийся ядерной физикой должен знать
> про калибровочные поля и я ошибаюсь


Ошибаетесь, изучения воздействия высокоэнергетичных заряженных частиц на p--n-переход не имеет к этому особого отношения. Тем более, что я занимался не теорией, а по большей части практикой. Плюс, были ещё разные аспекты, типа тепловых моделей, или методики измерений параметров ФЭПов, поэтому на первом месте физика полупроводников, а на втором ядреная.

archimag ** (03.03.2010 17:19:26)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:16:19  

> Да очень простой, без знания теории типизированного
> лямбда-исчисления, компилятор хаскеля тебе не написать


Ну так и не горю желанием. Я занимаюсь как-то больше более практичными задачами.

archimag ** (03.03.2010 17:20:20)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:09:27  

> Чуваки, которые придумали лисп, пролог, ML и прочие хаскели, между прочим, были профессорами. И только их широкий кругозор и отличная математическая подготовка позволили им сделать это. Это тебе не пых-пых на коленке залудить, для чего не надо бетта-редукции всякие знать.

А никто лисп, пролог, ML и прочие хаскели, не ругает, а вот С++ уже начинает обрастать никому непонятной терминологией :-)))

rjaan ** (03.03.2010 17:29:19)
[#] Ответ на: комментарий от archimag 03.03.2010 16:55:20  

>Я сказал, что символьные вычисления в Common Lisp не имеют никакого отношения к алгебре.

archimag, любые *символьные вычисления* -- это алгебра. "Работа с символами в CL" -- это не обязательно *символьные вычисления*

>При чём тут алгебра, до сих пор понять не могу.

Как можно говорить, что Х не имеет отношения к А, если ты не определить А?

scabarocci (03.03.2010 18:15:15)
[#] Ответ на: комментарий от scabarocci 03.03.2010 18:15:15  

> "Работа с символами в CL" -- это не обязательно
> *символьные вычисления*


Не обязательно, но обработка информации в символьном виде это символьные вычисления?

> Как можно говорить, что Х не имеет отношения к А,

> если ты не определить А?


Хорошо, какое отношения функция intern имеет к алгебре? Какое отношение к алгебре имеет функция get?

archimag ** (03.03.2010 18:20:38)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:03:09  
korvin_

> Asm надо понимать, вставленный в тело ява программы?

наоборот же

korvin_ ** (03.03.2010 19:06:50)
[#] Ответ на: комментарий от archimag 03.03.2010 17:19:26  
dave

Теперь я понял, почему тебя зациклило на слове "практика" :)

dave ***** (03.03.2010 19:34:47)
[#] Ответ на: комментарий от dave 03.03.2010 19:34:47  

> Теперь я понял, почему тебя зациклило на слове "практика" :)

И почему же? В этом есть что-то ненормальное?

archimag ** (03.03.2010 19:42:40)
[#] Ответ на: комментарий от archimag 03.03.2010 19:42:40  
dave

Нет, конечно. Но психоанализ только за деньги! :)

dave ***** (03.03.2010 20:02:07)
[#] Ответ на: комментарий от archimag 03.03.2010 18:20:38  

>обработка информации в символьном виде

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

Под символьными вычислениями я в первую очередь имею в виду, например, то, что описывается в разделах 2.3.2 и 2.5.3 SICP.

scabarocci (03.03.2010 20:30:28)
[#] Ответ на: комментарий от LORd 02.03.2010 18:20:42  
ugoday

> Сам перешел на него только 2 года назад, отличный язык

Расскажите, какие кромп С++ ЯП вы знаете?

ugoday *** (03.03.2010 21:30:20)
[#] Ответ на: комментарий от scabarocci 03.03.2010 20:30:28  

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


Я приводил примеры выше. В контексте Common Lisp я понимаю под этим вычисления связанные с встроенным типом данных symbol.

> Под символьными вычислениями я в первую очередь имею в виду,

> например, то, что описывается в разделах 2.3.2 и 2.5.3 SICP


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

archimag ** (03.03.2010 21:50:32)
[#] Ответ на: комментарий от archimag 03.03.2010 21:50:32  

> вычисления связанные с встроенным типом данных symbol

ну, особых-то *вычислений* у тебя там, вроде, не было. Или для тебя любое использование типа данных symbol -- это "символьное вычисление"? Тогда это у тебя "неверное представление о предмете".

> Алгебраические преобразования - самый очевидный, и при этом один из самых бесполезных в реальной практике примеров.

В первом приближении (да и большинство понимает именно так), символьные вычисления это и есть алгебраические преобразования. Насчет реальной практики -- "it depends". У кого-то как раз это весьма полезная реальная практика.

Ты пишешь много полезного кода на CL, но это не отменяет того, что у тебя довольно неожиданное и странное представление о том что такое символьные вычисления и какова их польза.

scabarocci (03.03.2010 22:07:10)
[#] Ответ на: комментарий от scabarocci 03.03.2010 22:07:10  

> ну, особых-то *вычислений* у тебя там, вроде, не было.

cl-closure-template - это пример широкого использования символьных вычислений? Мне так кажется, что она просто пронизана ими.

> у тебя довольно неожиданное и странное представление о том что такое

> символьные вычисления и какова их польза


Почему странное? Символьные вычисления широко разрекламированы в старых книгах, в частности, указывается, что символьные вычисления было одним из леймотивов создания лиспа. Но эта алгебра, это дифференцированние совсем не выглядит чем-то достаточно значимым, что бы об этом стоило так много говорить. Это просто было возможно первым применением (кстати, реализованным на Fortran, а не на лисп). Я этого не понимал. Мне потребовалось время, что бы понять насколько важна работа с символами в Common Lisp, и что дифференцирование просто самый очевидный пример. Я ориентируюсь на дизайн языка, на его логику, на примеры практического использования и это даёт мне основания думать, что моё понимание значительно ближе к задумке авторов языка, чем эта пресловутая алгебра.

archimag ** (03.03.2010 22:18:52)
[#] Ответ на: комментарий от archimag 03.03.2010 22:18:52  

> Мне так кажется, что она просто пронизана ими

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

scabarocci (03.03.2010 22:36:36)
[#] Ответ на: комментарий от scabarocci 03.03.2010 22:36:36  

> В каком файле исходников и где именно это раскрывается наиболее ярко?

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

Кстати, другой хороший пример использования символьных вычислений - исходный код AIMA, реализация логики первого порядка.

archimag ** (03.03.2010 22:50:22)
[#] Ответ на: комментарий от scabarocci 03.03.2010 22:36:36  

cl-closure-template имеет следующие компоненты:

1. expression.lisp - парсер выражений (типа "$a + $b[3]"), по сути, это сильно переработаный infix.lisp из AIMA. Совершенно явный пример символьных вычислений, при чём точно не в алгебраическом стиле, поскольку обработка идёт посимвольно.

2. template.lisp - парсер тэгов шаблонов. Информация о правилах разметки сохраняется в свойствах символов, из которых потом собирается парсер, который выдает результата парсинга в виде s-выражения, содержащем символы и строки.

3. common-lisp-backend.lisp - преобразует распарсенный шаблон в символьное представление кода на Common Lisp и компилирует его в машинный код.

4. javascript-backend.lisp - преобразует распарсенный шаблон в символьную форму, требуемую для parenscript, с помощью которой потом компилирует в код на Javascript

5. t/cl-backend-test.lisp - тесты для CL бэкэнда. Используется lift, которая сохраняет всю информацию о тестах в символьном виде в свойствах символов.

6. t/js-backend-test.lisp - на основе символьной информации, сохраннёной в cl-backend-test.lisp генерит тесты для jsunittest.js в формате parenscript, с помощью последнего получает реальный javascript и запускает веб-сервер, в котором можно проверять результаты тестов.


Тянет на пример использования символьных вычислений?

archimag ** (03.03.2010 23:06:51)
[#] Ответ на: комментарий от scabarocci 03.03.2010 22:36:36  

Ещё могу рассказать про cl-routes, которая тоже суть и основной код двусторонняя унификация символьных выражений, представляющих распарсенные шаблоны url.

И вообще, символьные вычисления в веб-быдлокодинге рулят ;)

archimag ** (03.03.2010 23:21:18)
[#]  

А чем собственно определение алгебры из русской википедии не подходит? КОторое про изучение множеств элементов и операций над ними. Вполне себе классическое. Не?

anonymous (04.03.2010 0:57:40)
[#] Ответ на: все 100% использовали язык C++ от anonymous 03.03.2010 13:23:49  
www_linux_org_ru

Re: все 100% использовали язык C++

> все 100% использовали язык C++ Наверное все дело в организации чемпионата. Для настоящего ИИ лиспу нет равных

35% а не 100%

www_linux_org_ru **** (04.03.2010 1:05:50)
[#] Ответ на: комментарий от anonymous 04.03.2010 0:57:40  

> А чем собственно определение алгебры из русской википедии не подходит?

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

archimag ** (04.03.2010 1:11:21)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 12:24:11  
www_linux_org_ru

> Наверное "С-машину" создать нельзя, в силу отсутствия подходящего формализма.

Саныч, ты хоть остатки связи с реальностью не теряй, а?

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

Для лиспа это будет хотя бы сдвиг направо тэгированных значений и умножение тэгированных значений.

www_linux_org_ru **** (04.03.2010 1:13:33)
[#] Ответ на: комментарий от archimag 04.03.2010 1:11:21  

Арчи, спокойствие :). Это я другому анонимусу писал. Может он всетаки осчастливит нас своим определением алгебры и символьных вычислений :).

anonymous (04.03.2010 1:16:47)
[#] Ответ на: комментарий от anonymous 04.03.2010 1:16:47  

Я понял, поэтому и написал, ибо точно не осчастливит.

archimag ** (04.03.2010 1:20:40)
[#] Ответ на: комментарий от rjaan 03.03.2010 17:03:47  
www_linux_org_ru

> На самом деле все, что тут творится -- детский сад... потому что реальная работа программиста исчисляется работающими программами, а не высоким интеллектуальным трепом...

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

Да и грабли знать заранее, до того как на них напоролся, весьма полезно.

www_linux_org_ru **** (04.03.2010 1:21:10)
[#] Ответ на: комментарий от archimag 04.03.2010 1:20:40  

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

anonymous (04.03.2010 1:34:16)
[#] Ответ на: комментарий от anonymous 04.03.2010 1:34:16  

> Если это было описание генерации и исполнения тестов, то в таком
> контексте сивольными вычислениями было бы выдача формального

> доказательства корректности или некорректности тестируемого


Перечитай заново, ты ничего не понял.

archimag ** (04.03.2010 1:37:39)
[#] Ответ на: комментарий от Sun-ch 03.03.2010 17:03:09  
qsloqs

Я думаю да, я в туалете на перекурах слышал ихние разговоры. Очень странные люди =)

qsloqs ** (04.03.2010 1:59:32)
[#] Ответ на: комментарий от www_linux_org_ru 04.03.2010 1:21:10  

> Да и грабли знать заранее, до того как на них напоролся, весьма полезно.

Увы, знаю по своему опыту и опыту моих коллег, пока сам по ним не пробежишься, не прочувствуешь удара рукояти в лоб, все это будет абстрактно. Но, в тоже время, знание об этих граблях думаю, что смягчит удар ;-)))

rjaan ** (04.03.2010 2:51:20)
[#] Ответ на: комментарий от anonymous 04.03.2010 1:34:16  

> Вот только то, что ты выше описал не тянет на символьные вычисления.
> Если это было описание генерации и исполнения тестов, то в таком

> контексте сивольными вычислениями было бы выдача формального

> доказательства корректности или некорректности тестируемого.


Вдогонку, описал более подробно здесь: http://archimag-dev.blogspot.com/2010/03/2.html, может быть так поймёшь, хотя я уже не надеюсь.

archimag ** (04.03.2010 2:53:37)
[#]  

http://csclub.uwaterloo.ca/contest/profile.php?user_id=1376 я лучший из россии и 23 место в мире Google AI Challenge

anonymous (04.03.2010 8:14:38)
[#]  

Ну правильно, С++, а как иначе, если грамотно работать с STL/BOOST, то по простоте, скорости и надежности кода уделает любой другой язык.

anonymous (04.03.2010 10:45:26)
[#] Ответ на: комментарий от archimag 04.03.2010 1:37:39  
dave

> Перечитай заново, ты ничего не понял.

>>-----Цитата---->>

anonymous> Лисп рулил (и до сих пор рулит) в другой связанной с AI областью - computer algebra systems, то бишь, символьная математика.

archimag> Открою большой секрет: символьные вычисления, являющиеся одной из самых сильных сторон лиспа, не имеют никакого отношения к алгебре...

<<-----Цитата----<<
dave ***** (04.03.2010 10:55:45)
[#] Ответ на: комментарий от dave 04.03.2010 10:55:45  

dave, ты собственно что хочешь сказать?

Ты по прежнему считаешь, что:

>>-----Цитата---->>

Symbolic computation и algebraic computation - синонимы.

<<-----Цитата----<<

Фраза не твоя, но выше ты выдал например такое:

>>-----Цитата---->>

Многие математики действительно не знают, что такое Common Lisp. Но, скорее всего, все отлично знают, что такое символьные вычисления, и регулярно используют такие системы. Сам баловался будучи студентом и даже прибегал к их помощи пару лет назад для своей программы, что немало сэкономило нервов и времени. Причем здесь Common Lisp? на нем это проще реализовать. Там действительно можно напрямую работать с символами. Но о каком "вычислении" над символами может идти речь вне контекста математики? (хотя сам термин "вычисление" в последнее время стал многозначным - монада, вон, тоже подразумевает некое вычисление)

<<-----Цитата----<<

И судя из твоих предыдущих ходов можно сделать вывод, что ты искренне исчитаешь, что

>>-----Цитата---->>

Symbolic computation и algebraic computation - синонимы.

<<-----Цитата----<<

Так в чём заключается твоя позиция?

archimag ** (04.03.2010 11:26:59)
[#] Ответ на: комментарий от anonymous 04.03.2010 10:45:26  

Не правильно. Plain C, без всяких boost-ов, если грамотно им пользоваться уделает любой C++.

anonymous (04.03.2010 11:29:00)
[#] Ответ на: комментарий от archimag 04.03.2010 2:53:37  

Ты странную терминологию используешь. Что за "символьная форма" такая? Списочная, тогда уж.

anonymous (04.03.2010 11:31:24)

О Сервере - Правила форума
http://www.linux.org.ru/

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