2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение29.10.2006, 04:10 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
О! Тогда Ваше объяснение:
esperanto писал(а):
Авторы имеют в виду алгоритм сложности tetta(n)
высоко содержательно.

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

я имел в виду, что мне не понятно, какую именно сложность авторы имеют в виду: среднюю, типичную, гарантированную,... а совсем не что значит «линейная» :wink: .

 Профиль  
                  
 
 
Сообщение29.10.2006, 08:34 


12/10/06
56
незваный гость писал(а):
:evil:
О! Тогда Ваше объяснение:
esperanto писал(а):
Авторы имеют в виду алгоритм сложности tetta(n)
высоко содержательно.

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

я имел в виду, что мне не понятно, какую именно сложность авторы имеют в виду: среднюю, типичную, гарантированную,... а совсем не что значит «линейная» :wink: .


Тут ничего не поделать двусмысленность языка. Тем более что после вашего замечания ывы стали анализировать заведомо худший алгоритм, что и привело меня к выводу, что вы не поняли асимптотику предложенного авторами алгоритма :) Но если я вас правильно понял, то: Используя невероятностные алгоритм поиска порядковой статистики, получим алгоритм линейный от n и не зависящий от к. в худшем случае

Добавлено спустя 2 минуты 18 секунд:

Говорить о среднем тут не уместно, ибо не заданна функция распределения на входных данных

 Профиль  
                  
 
 
Сообщение29.10.2006, 18:48 
Заслуженный участник


15/05/05
3445
USA
esperanto писал(а):
По-поводу последнего замечания вы не правы. Вот представте себе вы староста и заказываете врача в деревню.
Врач, первого типа не вылечит 10% больных и они умрут.
Врач второго типа, сможет оказать повторную помощь тем больным которых он не вылечил и уже в среднем 1\100 людей останется не вылечеными.

Да, согласен, Вы правы, если возможно многократное применение алгоритма на одних и тех же данных. Т.е. если врач второго типа успевает (ДО вскрытия :) ) распознать свою ошибку и поставить новый диагноз. Ваш пример мне понравился.

 Профиль  
                  
 
 
Сообщение29.10.2006, 20:31 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
esperanto писал(а):
Говорить о среднем тут не уместно, ибо не заданна функция распределения на входных данных

А почему не уместно? Существует конечное число наборов данных, мы можем считать их равновероятными. И иметь ассимптотику, вполне полезную и заслуживающую доверия. Весьма полезную, если эта операция (поиск $k$ максимальных) повторяется множество раз.

Добавлено спустя 5 минут 37 секунд:

esperanto писал(а):
Первый метод, не прост(относительно) И описывается в книги Риверста.

А какой книге Риверста? Или как называется алгоритм?

 Профиль  
                  
 
 
Сообщение29.10.2006, 21:54 


12/10/06
56
незваный гость писал(а):
:evil:
esperanto писал(а):
Говорить о среднем тут не уместно, ибо не заданна функция распределения на входных данных

А почему не уместно? Существует конечное число наборов данных, мы можем считать их равновероятными. И иметь ассимптотику, вполне полезную и заслуживающую доверия. Весьма полезную, если эта операция (поиск $k$ максимальных) повторяется множество раз.


Почему не уместно?


можно привести различные доводы, например,
Приведу пример.
Имеется граф на п-вершинах. Задача узнать есть ли в графе клика размером 0.01*log(n).

Алгоритм:
верни ответ такая клика есть.
конец

Такой алгоритм при равновероятном распределении на входных данных, ошибается с экспоненциально малой вероятностью. Алгоритм ошибается только на графах у которых нет клики, но при равновероятном распределении, доля таких графов экспоненциально мала. Т.е для n>1000 вероятность ошибки меньше вероятности того, что вселенная взорветься в конкретный момент. Например поэтому равновероятные оценки вызывают у меня предостережение.

Кроме того, зачастую данные задает противник, а в этом случае он даст наихудший случай. И в этом случае вероятностная быстрая сортировка, лучше быстрой невероятностной сортировки. Хотя в среднем они равна асимптотически.


с уважением

 Профиль  
                  
 
 
Сообщение30.10.2006, 01:13 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
esperanto писал(а):
Приведу пример.

Простите, я не понял, как Ваш пример соотносится с моим вопросом. Я говорил о средней сложности, а не о средней правильности алгоритма.

Я не понял также насчет противника. Я обычно решаю задачи по программированию в условиях кооперирования с заказчиком. То есть данные никто намеренно не конструирует. Если же именно поведение в худшем случае важно (например, в real time), то выбираются алгоритмы с гарантированным худшим временем. Ну и что? Как это исключает оценку в среднем?

Впрочем, предположение о равновероятности начальных данных является сильным и, действительно, зависит от предметной области. Например, во многих практических случаях данные часто либо почти отсортированы в прямом либо обратном порядке. Но в MS-овской документации по STL формулировки совсем расплывчаты. А стандарт мне было (и есть) смотреть лень.

Я плохо понимаю термины «вероятностная» и «невероятностная» быстрые сортировки. Они, все-таки, не общепринятые (в отличии от быстрой сортировки (quicksort), которая, несмотря на вариации с выбором серднего элемента и другие, все таки хорошо определена — c пирамидальной или Шелла не спутаешь. И за сортировку слиянием не примешь.).

Кстати, не поленился я и слазить в перый том Фихтенгольца. Обозначения $\Theta$ там нет, зато такие величины он обозначает как эквивалентные $\sim$ (а более высокий порядок обозначает как ${\rm o}()$). Кнут же использует именно ${\rm O}$ как обозначение эквивалентной величины. Так что резонный вопрос — откуда дровишки (обозначения)?

 Профиль  
                  
 
 
Сообщение30.10.2006, 07:30 


12/10/06
56
незваный гость писал(а):
Кстати, не поленился я и слазить в перый том Фихтенгольца. Обозначения $\Theta$ там нет, зато такие величины он обозначает как эквивалентные $\sim$ (а более высокий порядок обозначает как ${\rm o}()$). Кнут же использует именно ${\rm O}$ как обозначение эквивалентной величины. Так что резонный вопрос — откуда дровишки (обозначения)?


А какой книге Риверста? Или как называется алгоритм?


http://en.wikipedia.org/wiki/Big_O_notation
Мне кажется нотация была введена в том виде в каком она есть сейчас, уже после Фихтенгольца.
"Использование тетта обозначений рекомендована Кнутом" - Алгоритмы построение и анализ Кормен, Риверст, Лейзерсон - втророе издание


Добавлено спустя 2 минуты 38 секунд:

незваный гость писал(а):
:

Я плохо понимаю термины «вероятностная» и «невероятностная» быстрые сортировки. Они, все-таки, не общепринятые (в отличии от быстрой сортировки (quicksort), которая, несмотря на вариации с выбором серднего элемента и другие, все таки хорошо определена — c пирамидальной или Шелла не спутаешь. И за сортировку слиянием не примешь.).



Another common choice is to randomly choose a pivot index, typically using a pseudorandom number generator. If the numbers are truly random, it can be proven that the resulting algorithm, called randomized quicksort, runs in an expected time of Θ(n log n)
http://en.wikipedia.org/wiki/Quicksort

Добавлено спустя 8 минут 57 секунд:

незваный гость писал(а):
: Простите, я не понял, как Ваш пример соотносится с моим вопросом. Я говорил о средней сложности, а не о средней правильности алгоритма.
)?


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

Вот еще и третий артуменгт, в теории вероятностей, равномерное распределение, не лучше того же нормального или пуасоновского. А среднее время работы при пуасоновском распределении может отличаться от среднего времени равновероятного. Но если программа оперирует с потоком простейших событий, то Пуасоновский поток, куда лучше чем равновероятное. Также можно сказать, что нормальное распределение подходит больше равномерного, благодаря широкому использованию центральной предельной теоремы

 Профиль  
                  
 
 
Сообщение30.10.2006, 10:01 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Спасибо за развернутый ответ и ссылки. Мы-таки говорили на разных языках. Теперь я Вас понимаю.

esperanto писал(а):
"Использование тетта обозначений рекомендована Кнутом"

Cormen, Leiserson, Rivest писал(а):
Knuth [182] traces the origin of the O-notation to a number-theory text by P. Bachmann in 1892. The o-notation was invented by E. Landau in 1909 for his discussion of the distribution of prime numbers. The Ω and Θ notations were advocated by Knuth [186] to correct the popular, but technically sloppy, practice in the literature of using O-notation for both upper and lower bounds. Many people continue to use the O-notation where the Θ-notation is more technically precise. Further discussion of the history and development of asymptotic notations can be found in Knuth [182, 186] and Brassard and Bratley [46].


Я пытаюсь найти статью Кнута, на которую ссылается википедия. Но мне тем более интересно: использование ${\rm O}$ в русском издании «Искусства программирования на ЭВМ» — это артефакт перевода или так в оригинале (оригинал я тоже попробую найти, но это, скорее всего, займет больше времени)? (Впрочем, первое издание «Искусства программирования» вышло до этой «основопологающей» статьи, и, видимо, Кнут не счел нужным менять текст книги.)

[to advocate — отстаивать, защищать, пропагандировать. Похоже, еще один артефакт перевода]

esperanto писал(а):
called randomized quicksort

Я бы скорее перевел как рандомизированная быстрая сортировка. Вероятностная — это что-то probabilistic. Это что, принятый перевод?

esperanto писал(а):
Вот еще и третий артуменгт, в теории вероятностей, равномерное распределение, не лучше того же нормального или пуасоновского. А среднее время работы при пуасоновском распределении может отличаться от среднего времени равновероятного. Но если программа оперирует с потоком простейших событий, то Пуасоновский поток, куда лучше чем равновероятное. Также можно сказать, что нормальное распределение подходит больше равномерного, благодаря широкому использованию центральной предельной теоремы

Ну разумеется, говоря о среднем, формально говорят с уточнением о принимаемом распределении данных. Но для данных обычно известно характерное, наиболее популярное распределение. Скажем, средняя величина выигрыша при 10000 бросаниях монетки будет распределена по Гауссу (по Стьюденту), но сама последовательность — равномерно (особенно, если монетка честная). И так далее. Почему же нельзя говорить о среднем времени сортировки, предполагая равную вероятность входных последовательностей? Можно, явно оговаривая это. И никаких двусмысленностей не возникает. Хотя предполагать равномерное распределение не всегда уместно.

Ваш же исходный пример мне живо напоминает анекдот о малолетнем гении из деткого сада: на любой, сколь угодно сложный, вопрос (допускающий ответ да-нет) он отвечает правильно в целых 50% случаев! Все-таки правильность в среднем сродни средней температуре по больнице (включая морг) — корректна, но не информативна. В отличии от среднего времени работы, которое значимо.

Кстати, о сортировке и примерах. :D Мне пришлось как-то раз поучать студента, который проверял правильность ответа путем проверки упорядочивания результата. Я порекомендовал ему сортировку за линейное время — записывать в ответ 1, 2, 3,… Его критерию правильности удовлетворяло.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group