Стагнация?
От: Dmi_3 Россия  
Дата: 12.11.05 22:38
Оценка: 1 (1) +2
Немного о простоте и сложности:
Запятыми разделены члены последовательности. Её элементы просты и состоят всего из трёх разных символов.
0, 00, 000, 01, 1, 10, 100, 1000, 02, 2, 20, 200, 2000, 201, 21, 210, 2100, 21000, 202, 22, 220, 2200, 22000, 2201, 221, 2210, 22100, 221000, 2202, 222, 2220, 22200, 222000, 22201, 2221
Вот ещё одна последовательность её элементы сложнее и состоят из 10 символов.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
Что это за последовательность?
Можете ли Вы продолжить последовательность?
Какова вероятность ошибиться при продолжении последовательности?
Ответы на эти вопросы зависит от того, кто Вы и в каком веке живёте.
Для большинства наших современников вопросы в отношении второй последовательности не вызовут трудностей.
Для древних вавилонян отдельные представители которых были умнее нас с Вами вместе взятых трудностей не вызовет первая последовательность. Они без труда узнают в ней натуральный ряд (абстрагируясь от внешнего представления I=0 V=1 X=2) и продолжат его быстрее нас.

Далее проводим аналогии:
Задача = перечислить числа от одного до 35 (очень простая задача, но и языки простые)
Последовательность = программа.
Цифры и приёмы их комбинирования = синтаксические конструкции и семантические приемы, используемые при программировании.
Если Вы знаете (и можете практически применить), конструкции и приёмы то во втором случае программа получиться короче и субъективно понятнее, несмотря на то, что число использованных приёмов и правил больше.
Объективная сложность может быть приближенно оценена по количеству Шенноновской информации. Проще говоря, заархивируйте обе последовательности и сравните размеры архивов (чем больше, тем сложнее).
Если использовать всего одну конструкцию и приём то получиться:
0, 00, 000, 0000, 00000, 000000, 0000000, 00000000, 000000000, 0000000000, 00000000000, 000000000000, 0000000000000, 00000000000000, 000000000000000, 0000000000000000, 00000000000000000, 000000000000000000, 0000000000000000000, 00000000000000000000, 000000000000000000000, 0000000000000000000000, 00000000000000000000000, 000000000000000000000000, 0000000000000000000000000, 00000000000000000000000000, 000000000000000000000000000, 0000000000000000000000000000, 00000000000000000000000000000, 000000000000000000000000000000, 0000000000000000000000000000000, 00000000000000000000000000000000, 000000000000000000000000000000000, 0000000000000000000000000000000000, 00000000000000000000000000000000000
С моей точки зрения такая программа сложнее. С Вашей – проще.
Но давайте рассмотрим семейство программ от 1 до N
В любой позиционной системе счисления её длина и сложность (хотя бы набрать) есть O(N*log(N)) В непозиционной O(N*N)
Необходимость принятия нового ПРИЁМА очевидна? Думаю – Да!
Хорошим тоном считается учёт константы при O(…).
В нашем случае она зависит от основания логарифма (K), которым является число цифр для представления чисел. Понятно, что десятичная программа (K=10) короче двоичной(K=2). Это значит что надо изучать и новые синтаксические конструкции. Но это менее важно.
Вы можете возразить что даже первобытный человек(малограмотный программист) мог считать не используя позиционной системы и мы можем набрать тысячу таких людей. OK! Но с задачей сложности N=1E+7 они не справятся в то время как тысяча умеющих считать позиционно – справятся. При условии что скорость их работы снижается медленнее чем /log(K). А ведь ещё нужен человек способный разбить задачу на подзадачи! Уж он то точно должен уметь считать! А ещё задача может быть трудноразложима (замените натуральный ряд на ряд простых или совершенных чисел). Современные задачи становятся всё сложнее и сложнее… Это не означает что нельзя использовать первобытных. Можно, особенно в относительно простых подзадачах. На что направлено и появление новых языков и политика большинства фирм. Обидно лишь то, что знающие и умеющие больше при этом остаются не у дел. Видимо
a) задачи пока недостаточно сложны
b) скорость работы умеющих снижается быстрее чем хотелось бы.
Если верно второе(а похоже что это так) то это стагнация! И мы никогда не сможем решать сверхсложные задачи.(нифига себе! Довыпендривался! Всё! Пошел повышать скорось своей работы!)
Re: ОТ
От: c-smile Канада http://terrainformatica.com
Дата: 12.11.05 23:17
Оценка:
Здравствуйте, Dmi_3, Вы писали:

D_>Для древних вавилонян отдельные представители которых были умнее нас с Вами вместе взятых трудностей не вызовет первая последовательность. Они без труда узнают в ней натуральный ряд (абстрагируясь от внешнего представления I=0 V=1 X=2) и продолжат его быстрее нас.


По всей видимости имеетеся ввиду романская система счисления? Если да то это далеко от Вавилона.
Римляне её правда не сами изобрели а взяли от этрусков — но это тоже территория современной Италии.

Вавилон же это Ирак современный. По тем временам далеко.
Вавилон прославился же 60-ричной системой.
Их цифры:
http://upload.wikimedia.org/wikipedia/en/1/16/Babylonian_numerals.jpg
От них по всей видимости нам достались 60 минут/секунд.

Извиняюсь
Re: Стагнация?
От: Pavia  
Дата: 13.11.05 20:19
Оценка: +1
Задач трудных море. А вот что бы их решить. Нужно разбить на под задачи. Умения разбивать на подзадачи от начала до конца и есть талант. Проблема заключается в том, что человеку свойственно отбрасывать сразу не которую часть решения. По двум причинам:
1 Подзадача ошибочно принята слишком легкой.
2 Подзадача ошибочно принята сложной, не решаемой.
Re[2]: ОТ
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 16.11.05 08:21
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Вавилон прославился же 60-ричной системой.

CS>Их цифры:
CS>http://upload.wikimedia.org/wikipedia/en/1/16/Babylonian_numerals.jpg

Занятно, система 60-ричная, но отчетливо виден 10-й умножитель. Цифры "ноль" только не хватает.
Интересно, как записать число "60"?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[3]: ОТ
От: reductor  
Дата: 16.11.05 13:04
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Здравствуйте, c-smile, Вы писали:


CS>>Вавилон прославился же 60-ричной системой.

CS>>Их цифры:
CS>>http://upload.wikimedia.org/wikipedia/en/1/16/Babylonian_numerals.jpg

ANS>Занятно, система 60-ричная, но отчетливо виден 10-й умножитель. Цифры "ноль" только не хватает.

ANS>Интересно, как записать число "60"?



первый ответ, который приходит в голову — 6 стрелок влево
потому что действительно очевидно наличие порядков с основанием 10 на картинке
но я не удержался — пошел почитать
60 выглядит как единица (клин вниз) с добавлением нового символа в алфавит (левая половина клина)

матрешка просто
Re: Стагнация?
От: SuperSuperMan  
Дата: 26.11.05 13:30
Оценка: 2 (1) +1
Такая простота хуже воровства!

Я сделаю всех умников просто

0, +, +, +, +, +, +, +, +, +, ... и так N раз.
Сложность будет O(N) а не O(N*log(N))!

Так что им нужно сильно повышать скорость своей работы.
Re: Стагнация?
От: vdimas Россия  
Дата: 26.11.05 18:05
Оценка: +1
Здравствуйте, Dmi_3, Вы писали:

Все это было бы похоже на правду, если бы не существовало понятия повторного использования кода. Мы выезжаем именно на этом, а в твоих рассуждениях я не нашел этого фактора. И вообще, можно еще раз и чуть более обосновательно? Можно пропустить раздел про системы исчисления.
Re[2]: Стагнация?
От: Dmi_3 Россия  
Дата: 27.11.05 12:59
Оценка: 2 (1)
Здравствуйте, SuperSuperMan, Вы писали:

Великолепно!
Вы только что подтвердили необходимость введения нового понятия и новой синтаксической конструкции. Вы использовали новое понятие прибавить единицу и новую конструкцию «+». Осталось сделать ещё пару шагов в область метапрограммирования (или усложнения исходного языка) и золотой ключик у нас в кармане:
1, пока(меньше N) +

Сложность (длина) этой программы просто O(log(N)) в позиционной системе и O(N) в непозиционной. (Для записи числа N нужно место пропорциональное O(…).)
С такой задачей и один SuperSuper-программист обычно справиться, а вот просто программист ежедневно пишущий короткие чисто числовые программы (на вышеприведённых языках) засомневается, как реализовано «пока», «меньше» и «+». Для него это сложно, он привык просто к числам. В этом смысле очень показателен опыт eao197 (а это, судя по рейтингу и отзывам коллег, один из лучших программистов на RSDN):

Топик: cpp\Compile-time вычисления: а оно вообще надо?
26.10.2005 12:23
eao197> … я не хочу писать такой код, который привел ты и Dmi_3. Я не хочу читать такой код. Я хочу держаться подальше от проектов, в которых есть такой код.
16.11.2005 23:25
eao197> Действительно, реализация оказалась не такой уж и сложной

А для меня пока сложно привести ссылки на дискуссию. Но это же просто?! Хотя если я начну со стека протоколов TCP-IP (а тем паче с устройства модема или сетевой карты) это может оказаться действительно сложно.

Простые методы вполне подходящие для программирования маленьких простых задач часто совсем не подходят для программирования больших и сложных. Мне, например, приходилось сталкиваться с такой ситуацией (в более сложном варианте):
big_uint
add(big_uint a, big_uint b)
{
    for(big_uint i0=0;i0<b;++i0)
        ++a;
    return a;
}

big_uint
mul(big_uint a, big_uint b)
{
    big_uint x(0);
    for(big_uint i0=0;i0<b;++i0)
        x=add(x,a);
    return x;
}

big_uint
pow(big_uint base, big_uint exponent)
{
    big_uint x(1);
    for(big_uint i0=0;i0<exponent;++i0)
        x=mul(x,base);
    return x;
}

Здесь используются только простые (для нас, но не для первобытных) понятия «повторить N раз» и «прибавить единицу». Эта программа понятна практически любому. НО…
Профайлер покажет, что при использовании pow() сильно «тормозит» big_uint::operator++(). И это мягко сказано! А люди с полной серьёзностью начнут его оптимизировать. Совет использовать алгоритм быстрого умножения Тоома-Кука не будет восприниматься, ибо этот алгоритм сложен. (Это объективно так. Можете сами посмотреть.)

Однако я не предлагаю использовать сложные методы и конструкции, если Вас удовлетворяет полученное решение. Всё зависит от задачи. Например, многие напишут такой код вычисления чисел Фибоначчи:
int
FibboExp(int n, int a=0,int b=1)
{
    if(n<2) return n?b:a;
    return FibboExp(n-1,a,b)+FibboExp(n-2,a,b);
}

Это решение прямо и просто отражает рекуррентную формулу F(N)=F(N-1)+F(N-2) но Вы вряд ли дождётесь результата вычисления FibboExp(45)
Вот более сложный вариант. Он использует технику запоминания промежуточных результатов. Его уже требуется понимать (или верить).
int
FibboLin(int n, int a=0,int b=1)
{
    if(n==0) return a;
    return FibboLin(n-1,b,a+b);
}

Если (для диапазона int) Вас удовлетворяет время его работы то нет смысла писать
int FiboLogSTD(int n,int& d){
    if(n>=2){
        int const x(FiboLogSTD(n/2,d));
        if(n&1){
            n=d;
            d*=x+x+n;
            n*=n;
            n+=x*x;
        }else{
            n=d;
            d=n*n+x*x;
            n=x*(n+n-x);
        }
    }
    return n;
}
int FiboLog(int n,int a=0,int b=1){
    int f0(1);
    int const f1(FiboLogSTD(n,f0));
    return a*(f0-f1)+b*f1;
}

Несмотря на то, что время работы этого алгоритма O(log(n)).
Совсем другое дело, если мы начнём работать с большими числами. Там линейное время работы второго алгоритма может оказаться неприемлемым.

Абсолютно такие же рассуждения работают и во время написания программы. Если задача проста и ресурсов много – пишем наиболее просто, если сложна и ресурсов мало – сложно. Кстати, квалификацию и внутреннюю дисциплину программистов тоже можно рассматривать как ресурсы. Если их мало — Java, если много — C++. (ой сколько врагов я сейчас нажил этим передёргиванием!)

P.S.
Тема топика возникла как (мои) провокация и передёргивание (в духе eao197)
Мне казалось, что это привлечёт больше внимания к проблеме простоты\сложности.
Видимо я ошибся.
Re: Стагнация?
От: McSeem2 США http://www.antigrain.com
Дата: 27.11.05 15:47
Оценка:
Здравствуйте, Dmi_3, Вы писали:

D_>Вы можете возразить что даже первобытный человек(малограмотный программист) мог считать не используя позиционной системы и мы можем набрать тысячу таких людей. OK! Но с задачей сложности N=1E+7 они не справятся в то время как тысяча умеющих считать позиционно – справятся. При условии что скорость их работы снижается медленнее чем /log(K). А ведь ещё нужен человек способный разбить задачу на подзадачи! Уж он то точно должен уметь считать! А ещё задача может быть трудноразложима (замените натуральный ряд на ряд простых или совершенных чисел). Современные задачи становятся всё сложнее и сложнее… Это не означает что нельзя использовать первобытных. Можно, особенно в относительно простых подзадачах. На что направлено и появление новых языков и политика большинства фирм. Обидно лишь то, что знающие и умеющие больше при этом остаются не у дел.


Почему это "не у дел"? Очень даже у дел.
Но проблема-то ни в каком не программировании компьютеров, проблема глубже. Просто люди наткнулист на такие задачи, которые природой решаются просто и мгновенно, но ни аналитически, ни численно — ну ни в какую. Пример раз. Уравнение Шредингера существует для атома водорода, с очень большим скрипом — для атома гелия. И на этом — все! Но природа-то эти уравнения решает для любой сколь угодно сложной системы. Пример два. Любой белок, если его развернуть в длинную цепочку, в свободном полете снова сворачивается в свою первоначальную форму. Все, что требуется — это знать последовательность остатков аминокислот. Но задача моделирования формы белка является совершенно непосильной. Пример три. Выполнить точное моделирование гравитационного взаимодействия для 8 планет. Пример четыре — рассчет антенн и цепей в электродинамике. Подобных задач — бесчисленное количество в любой области знания.

Меня удивляет эта гигантская пропасть — мгновенное решение задачи в природе и полный ступор при ее моделировании. Что это — несовершенство модели или несоизмеримая мощь (буквально на сотни порядков больше) "вселенского компьютера" по сравнению с нашими методами?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Стагнация?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 27.11.05 16:39
Оценка:
Здравствуйте, Dmi_3

Спасибо, что помянули мое имя в суе , но, боюсь, без точных ссылок на соответствующие сообщения ситуация будет не вполне понятна большинству читателей "Философии программирования".

D_>В этом смысле очень показателен опыт eao197


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

D_>Топик: cpp\Compile-time вычисления: а оно вообще надо?


Вот эта тема: Compile-time вычисления: а оно вообще надо?
Автор: eao197
Дата: 25.10.05


D_>26.10.2005 12:23

D_>eao197> … я не хочу писать такой код, который привел ты и Dmi_3. Я не хочу читать такой код. Я хочу держаться подальше от проектов, в которых есть такой код.

А это отсюда: Re[2]: Compile-time вычисления: а оно вообще надо?
Автор: eao197
Дата: 26.10.05


D_>16.11.2005 23:25

D_>eao197> Действительно, реализация оказалась не такой уж и сложной

А это сообщение: Re[3]: Compile-time вычисления: а оно вообще надо?
Автор: eao197
Дата: 16.11.05

Причем мои слова относились к моей же реализации одного из подхода к упрощению программирования на C++, кодогенерации: [Ruby,C++] RuCodeGen -- простой фреймворк для кодогенерации
Автор: eao197
Дата: 16.11.05
. Причем сделанную не на C++ (против сложности которого я там и выступал), а на Ruby.

D_>P.S.

D_>Тема топика возникла как (мои) провокация и передёргивание (в духе eao197)
D_>Мне казалось, что это привлечёт больше внимания к проблеме простоты\сложности.
D_>Видимо я ошибся.

Тема простоты и сложности была бы очень интересна. Особенно в духе затянувшихся споров об эффективности или преимуществах Оберона. Но лично я ничего не понял из вашего исходного сообщения (Стагнация?
Автор: Dmi_3
Дата: 13.11.05
), ни из Re[2]: Стагнация?
Автор: Dmi_3
Дата: 27.11.05
. В общем, хотелось бы поддержать разговор, да ума не хватает. Вот точно так же мне и не хочется работать с кодом, на понимание которого мне ума не хватает.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Стагнация?
От: Dmi_3 Россия  
Дата: 27.11.05 19:38
Оценка:
Здравствуйте, McSeem2, Вы писали:

>Но проблема-то ни в каком не программировании компьютеров, проблема глубже.


Вообще-то я говорил о сложности именно в программировании, но Ваше сообщение очень интересно.

>Просто люди наткнулист на такие задачи, которые ни аналитически, ни численно — ну ни в какую.

>Пример раз. Уравнение Шредингера существует для атома водорода, с очень большим скрипом — для атома гелия. И на этом — все!
Аналитически — да. Численно (и в реальном времени!) для НЕСКОЛЬКИХ СОТЕН ЛЮБЫХ атомов. Если же хочется промоделировать большую систему (лучше не критическую массу урана), то ничто не мешает обратиться к статистическим методам моделирования системы в целом, а не отдельных её элементов. При этом остаётся возможность подробно рассмотреть (промоделировать) ЛЮБОЙ ЗАДАННЫЙ В ПОСЛЕДНИЙ МОМЕНТ атом в отдельности. Кто сказал, что в природе не так?

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

Это не означает, что для попыток её решения надо использовать простую сортировку пузырьком как это делал один мой знакомый (ещё во времена 286 процессоров).

>Пример три. Выполнить точное моделирование гравитационного взаимодействия для 8 планет.

Успешно решается численно с любой(?) степенью точности. Астероидов в Солнечной системе много больше восьми. Ближайшее время Земля не столкнётся ни с одним из известных чья масса больше опасной. Можно спать спокойно. Планет тоже больше восьми. Орбита Меркурия вычислена с учётом гравитационно-релятивистских поправок с точностью 3 метра на несколько лет вперёд. Кое что об этом вопросе можно прочесть в «Жемчужинах программирования». И хотя задача трёх тел до сих пор(?) не решена аналитически в общем случае, но поведение миллионов звёзд в шаровых скоплениях очень даже предсказуемо. И может быть удовлетворительно(?) решено численно. При этом НЕ используют простых методов интегрирования типа "Эйлера" \ "Ньютона", а используют что-то вроде сложных методов Адамса.

>Пример четыре — рассчет антенн и цепей в электродинамике.

Ну считают же как-то… Наверняка вводят сложные понятия протяжённого проводника с градиентами, роторами, дивергенциями и какими-нибудь наблами, а не классические простые шарики-электрончики моделируют. (не в курсе я)

>Меня удивляет эта гигантская пропасть — мгновенное решение задачи в природе и полный ступор при ее моделировании. Что это — несовершенство модели или несоизмеримая мощь (буквально на сотни порядков больше) "вселенского компьютера" по сравнению с нашими методами?

Думаю и то и другое…
Но меня больше удивляет похожесть нашей Вселенной на модель.
Если бы мне пришлось моделировать Вселенную (прости и сохрани Господи) то я никуда бы не делся от ограниченности скорости распространения взаимодействий (скорость света). Ограничения точности представления (неопределённость Гейзенберга). Статистического моделирования (вероятностное поведение микросистем, законы сохранения, энтропия). Кластерно-иерархического устройства (…-галактики-звёзды-планеты-…-кварки-…). Пришлось бы и постоянную Хаббла ввести, чтобы далёкие части Вселенной убегали от наблюдателя быстрее скорости света и не могли участвовать в моделировании упрощая его. О непрерывности производной (расстояние\скорость) необходимой для численного интегрирования процессов я уже даже не говорю.

Возможно, я бы ввёл обратно-совместимые версии физик. От Аристотелевой через Ньютоновскую к квантово-релятивистской.

Вспоминается анекдот:
Ангел Богу: Господи! Эти людишки открыли ещё один трансурановый элемент. Как будем реагировать?
Бог: Добавим ещё один член в общее уравнение теории поля.

P.S.
Сейчас я готовлю мысли о collision-detection с вычислительной сложностью O(log(log(N))) и менее! Это возможно, но алгоритм сложен, там используются и hash и Фибоначчиевы кучи и лексиграфический поиск, а простые алгоритмы имеют сложность O(N*N). Вот она простота! Кто скажет, что такие алгоритмы не нужны? Я считаю, что к оценке простоты \ сложности нужно подходить с понятием об асимптотике. Сейчас речь шла о вычислительной сложности, но те же идеи можно применить и для оценки сложности написания \ понимания программ.
P.P.S.
А вот подобные мне не нужны! Коммерчески более выгодно быстро и массово решать относительно простые задачи, используя студентов и простые методы. Таких задач подавляющее большинство.
Re[2]: Стагнация?
От: GlebZ Россия  
Дата: 27.11.05 19:48
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Меня удивляет эта гигантская пропасть — мгновенное решение задачи в природе и полный ступор при ее моделировании. Что это — несовершенство модели или несоизмеримая мощь (буквально на сотни порядков больше) "вселенского компьютера" по сравнению с нашими методами?

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

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Стагнация?
От: McSeem2 США http://www.antigrain.com
Дата: 27.11.05 20:33
Оценка: 81 (2)
Здравствуйте, Dmi_3, Вы писали:

D_>Но меня больше удивляет похожесть нашей Вселенной на модель.

D_>Если бы мне пришлось моделировать Вселенную (прости и сохрани Господи) то я никуда бы не делся от ограниченности скорости распространения взаимодействий (скорость света). Ограничения точности представления (неопределённость Гейзенберга). Статистического моделирования (вероятностное поведение микросистем, законы сохранения, энтропия). Кластерно-иерархического устройства (…-галактики-звёзды-планеты-…-кварки-…). Пришлось бы и постоянную Хаббла ввести, чтобы далёкие части Вселенной убегали от наблюдателя быстрее скорости света и не могли участвовать в моделировании упрощая его. О непрерывности производной (расстояние\скорость) необходимой для численного интегрирования процессов я уже даже не говорю.

Кстати говоря, современные космологические теории казалось бы противоречат принципу Тьюринга с его бесконечной лентой. Раз время жизни Вселенной конечно, значит и количество вычислений, которое в принципе можно выполнить в этой Вселенной — тоже конечно. Фрэнк Типлер сделал попытку разрешить это противоречие — даже при условии конечности существования Вселенной, вычисления (и жизнь!) в ней могут продолжаться бесконечно. Вот что пишет Дэвид Дойч об этом:
     С моей  точки зрения,  простейшая точка входа  в  теорию омега-точки --
принцип  Тьюринга. Универсальный генератор виртуальной  реальности физически
возможен.  Такая  машина способна передать  как  любую  физически  возможную
среду, так и  определенные  гипотетические и  абстрактные категории  с любой
желаемой   точностью.  Следовательно,  его   компьютер  имеет   потенциально
неограниченное   требование   дополнительной   памяти   и   может  выполнить
неограниченное  количество  этапов.   Тривиально   было   встраивать  это  в
классическую теорию вычисления, поскольку универсальный  компьютер  считался
абстракцией  в чистом виде. Тьюринг просто  постулировал ленту с  бесконечно
долгой памятью (с самоочевидными,  на его  взгляд,  свойствами),  совершенно
точный   процессор,   не  требующий   ни   мощности,   ни  обслуживания,   и
неограниченное  время. В том, чтобы сделать эту модель  более  реалистичной,
разрешив  периодическое обслуживание,  нет  принципиальной  проблемы, но три
остальных требования --  неограниченная емкость памяти, неограниченное время
обработки   и  энергоснабжение   --  проблематичны   в  свете   существующей
космологической  теории.  В  некоторых  современных  космологических моделях
вселенная после  Большого Сжатия повторно разрушится  через конечное время и
будет также пространственно конечной. Вселенная имеет геометрию  "3-х мерной
сферы", трехмерного аналога двухмерной поверхности сферы. В этой связи такая
космология  наложила бы  конечный предел как  на емкость памяти,  так  и  на
количество этапов обработки, которые  смогла бы осуществить машина до  конца
вселенной. Это сделало бы  универсальный  компьютер физически невозможным, и
принцип Тьюринга был бы  нарушен. В других космологических моделях вселенная
продолжает вечно расширяться и является пространственно бесконечной, что, на
первый  взгляд,  может  предоставить неограниченный  источник  материала для
создания дополнительной памяти.  К сожалению, в большинстве подобных моделей
плотность   энергии,  доступной   мощности   компьютера,  уменьшалась  бы  с
расширением вселенной, и  ее  пришлось бы собирать  очень далеко  от  Земли.
Из-за  того, что  физика налагает на скорость  абсолютный предел -- скорость
света, -- доступ  к памяти компьютера пришлось бы  замедлить, и,  в конечном
итоге,  мы  снова пришли  бы  к  выполнению  только  конечного  числа этапов
вычисления.
     Ключевое   открытие   теории   омега-точки   --  это  открытие   класса
космологических моделей, в которых,  несмотря на конечность  вселенной как в
пространстве, так и во времени, емкость памяти, количество возможных  этапов
вычисления  и  снабжение  эффективной  энергией  неограниченны.  Эта  мнимая
невозможность может  произойти  из-за  чрезвычайной  силы конечных  моментов
разрушения  Большого Сжатия вселенной.  Сингулярности  пространства-времени,
подобные Большому Взрыву и Большому Сжатию, редко бывают спокойными местами,
но  это гораздо  хуже  большинства  из  них.  Форма  вселенной изменится  от
трехмерной  сферы  на  трехмерный  аналог  поверхности  эллипсоида.  Степень
деформации увеличится, потом  уменьшится, потом снова увеличится еще быстрее
по  отношению к  другой оси. Как  амплитуда, так и  частота этих  осцилляции
будет   безгранично   увеличиваться   по   мере   приближения   к   конечной
сингулярности,   так  что   буквально  бесконечное   количество   осцилляции
произойдет,  даже если  конец  наступит за конечное  время. Материя, как  мы
знаем  ее,  не выживет:  вся  материя,  и даже сами атомы,  будет  разорвана
гравитационными     силами      сдвига,      вызванными      деформированным
пространством-временем.   Однако    эти   силы   сдвига    также   обеспечат
неограниченный источник доступной энергии, который  в  принципе можно  будет
использовать для питания компьютера. Как в таких условиях может существовать
компьютер?  Единственным   "материалом",  который  останется   для  создания
компьютеров, будут элементарные частицы  и сама гравитация, предположительно
в каких-то в высшей степени экзотических квантовых состояниях, существование
которых мы (все еще  не имея адекватной теории квантовой гравитации)  сейчас
не можем  ни  подтвердить, ни опровергнуть. (Вопрос об  их экспериментальном
наблюдении,  конечно,  не  стоит).   Если  подходящие  состояния   частиц  и
гравитационного поля  существуют,  то  они  также  обеспечат  неограниченную
емкость  памяти,  и вселенная будет сжиматься  так  быстро,  что бесконечное
количество доступов к памяти станет осуществимым за  конечное время до конца
вселенной. Конечную  точку гравитационного разрушения,  Большое Сжатие  этой
космологии, Типлер называет омега-точкой.


[. . .]


     Процедуры  стабилизации и сопровождающие  их процессы  создания  знания
должны будут постоянно ускоряться, пока в конечном безумии в конечное  время
не будет  создано бесконечное количество  того и другого.  Мы не знаем такой
причины, по которой не должно существовать физических ресурсов осуществления
этого, но  можно  поинтересоваться, почему обитатели  должны подвергать себя
такому беспокойству. Почему они должны продолжать столь аккуратно направлять
гравитационные осцилляции во время, скажем, последней секунды вселенной? Вам
осталось жить всего одну секунду,  почему бы, наконец, просто  не откинуться
на  спинку стула и  не  отнестись  ко  всему  этому проще? Но  это, конечно,
неправильное представление  ситуации. Вряд  ли  можно  было бы  придумать  в
большей степени неправильное представление. Дело в том, что разум этих людей
будет  работать,  как  компьютерная  программа в  компьютерах с  безгранично
увеличивающейся физической скоростью.  Их мысли так же,  как и  наши,  будут
передачами  в  виртуальной  реальности,  выполняемыми   этими  компьютерами.
Действительно,  в конце этой  последней секунды  весь сложный механизм будет
разрушен. Но  мы знаем,  что  субъективная длительность ощущения виртуальной
реальности  определяется не астрономическим временем работы, а вычислениями,
выполненными  за это время.  В бесконечном количестве этапов вычисления есть
время  для бесконечного количества мыслей --  предостаточно времени для тех,
кто мыслит,  чтобы поместить себя в  любую  виртуальную  среду,  которая  им
понравится, и ощущать ее столько, сколько  им этого захочется. Устав от нее,
они могут переключиться на любую другую среду или на любое количество других
сред, которое  они позаботятся  создать.  Субъективно,  они  окажутся не  на
конечных стадиях своей жизни,  а  на самых начальных. Они не будут  спешить,
ибо  субъективно  они будут  жить вечно.  С  одной оставшейся  секундой  или
микросекундой  у них,  тем не  менее, останется "все  время  в  мире", чтобы
сделать больше, ощутить  больше, создать больше -- бесконечно больше  -- чем
кто-либо  в мультиверсе  сделал  бы до  этого  времени. Поэтому у  них  есть
множество  стимулов  посвятить  свое  внимание управлению  своими ресурсами.
Занимаясь  этим,  они   просто   подготавливают  свое  собственное  будущее,
открытое, бесконечное будущее,  которое они будут полностью контролировать и
в которое, в любое определенное время, они просто вступят.
     Мы  можем надеяться, что  разум в омега-точке будет состоять  из  наших
потомков. Это все равно, что сказать:  из наших разумных потомков, поскольку
наши настоящие  физические формы не смогли  бы выжить вблизи омега-точки. На
некоторой  стадии  людям  пришлось  бы   перевести  компьютерные  программы,
которыми является их разум, в более прочное аппаратное обеспечение. На самом
деле, в конечном итоге это пришлось бы сделать бесконечное количество раз.
     Механика "направления" вселенной  к омега-точке  требует  осуществления
действий во всем пространстве. Следовательно,  разум  должен  будет  вовремя
распространиться  по  всей   вселенной,  чтобы  сделать  первые  необходимые
настройки. Это один  из ряда сроков завершения, которым, как показал Типлер,
нам придется удовлетворить -- он также показал, что удовлетворить любому  из
них для  пользы нашего настоящего  знания  физически возможно.  Первый  срок
завершения (как я отметил в главе 8) наступит примерно через пять миллиардов
лет  от сегодняшнего момента, когда  Солнце, если  оставить его  на произвол
судьбы, станет красной  гигантской звездой  и сотрет нас  с  лица Земли.  До
этого  момента мы  должны научиться управлять Солнцем или покинуть Солнечную
Систему. Затем мы  должны  заселить нашу галактику,  потом местные скопления
галактик и потом всю вселенную. Мы должны  делать все это достаточно быстро,
чтобы удовлетворить  соответствующему  сроку  завершения,  но мы  не  должны
продвигаться  вперед так  быстро,  что израсходуем все  необходимые  ресурсы
прежде, чем создадим новый уровень технологии.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Стагнация?
От: Dmi_3 Россия  
Дата: 29.11.05 21:20
Оценка:
Здравствуйте, McSeem2, Вы писали:

[skip]

>… физика налагает на скорость абсолютный предел …

Нет! Физика налагает абсолютный предел лишь на скорость передачи физического воздействия. Нет ограничения на скорость вообще и скорость передачи информации в частности, если она передаётся без физического носителя. Вы сами можете пускать «солнечный зайчик» быстрее скорости света. Тут нет передачи информации но… Есть (на мой взгляд странные и неубедительные) физические опыты где информация якобы передаётся быстрее скорости света. В своё время у Гордона проскакивало…
Люди пока просто не доросли до работы с информацией без физического её представления. Сейчас информация это то, что структурирует материю \ энергию.

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

Ничто не мешает Господу Богу остановить наше (модельное) время, сделать все изменения и вновь запустить его (или не запускать). Может так и происходит. Физики пытаются экспериментально обнаружить квантование времени. Я тоже много раз так делал в своих программах
Мне не очень нравятся как гипотеза о существовании Бога так и гипотеза омега-точки. Последняя даже больше т.к. первая несомненно полезна (в частности для организации социума), а вторая основываясь на неверных(?) постулатах лишь предрекает апокалипсис предлагая сомнительные «утешения». А доказать или опровергнуть эти гипотезы нет никакой возможности в полном соответствии с теоремой Гёделя о неполноте. Можно лишь постулировать существование Бога. Это и есть вера. Увы, пресловутый принцип Аккама мешает мне это сделать.

>Первый(?) срок завершения наступит, когда Солнце станет красной гигантской звездой и сотрет нас с лица Земли.

Кто-то говорил, что улицы Лондона при использовании гужевого транспорта к 19?? году будут завалены слоем навоза на несколько метров в высоту и жить станет невозможно.
Чем не «срок завершения»?

Но все-таки хотелось бы вернуться (в других ветках) к проблеме простоты \ сложности написания программ. Это поможет(?) отодвинуть апокалиптические сроки.
Re[4]: Стагнация?
От: Dmi_3 Россия  
Дата: 29.11.05 21:24
Оценка:
Здравствуйте, eao197, Вы писали:

E>Честно говоря, я не понимаю, о каком именно из моих опытов идет речь. Я здесь не так уж и мало наговорил всякого разного.

E>Причем мои слова относились к моей же реализации одного из подхода к упрощению программирования на C++, кодогенерации...
Увы. Значит я ошибся. Я решил что Вы разобрались с библиотекой Юрия.

E>В общем, хотелось бы поддержать разговор, да ума не хватает.

Дело не в уме а в привычках. Ну и в таланте объяснять...
Re[5]: Стагнация?
От: Cyberax Марс  
Дата: 30.11.05 10:22
Оценка:
Dmi_3 wrote:

>>… физика налагает на скорость абсолютный предел …

> Нет!

Да!

> Физика налагает абсолютный предел лишь на скорость передачи

> физического воздействия. Нет ограничения на скорость вообще и скорость
> передачи информации в частности, если она передаётся без физического
> носителя.

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

А все из-за того, что передача информации со скоростью больше световой
позволит создать машину времени.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[6]: Стагнация?
От: GlebZ Россия  
Дата: 30.11.05 14:47
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Как раз ограничение накладывается на скорость передачи информации, а вот

C>взаимодействия могут идти с любой скоростью. Квантовые взаимодействия
C>вообще мгновенны, но с их помощью нельзя передавать информацию.
Вообще-то можно. Такие модели есть. Что-то типа измерения спина. Но для этого нужен второй канал.

С уважением. Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Стагнация?
От: Dmi_3 Россия  
Дата: 30.11.05 19:43
Оценка:
Здравствуйте, Cyberax, Вы писали:

>>>… физика налагает на скорость абсолютный предел …

D> Нет!
C>Да!
Это на сегодняшний день вопрос веры.

C>А все из-за того, что передача информации со скоростью больше световой

C>позволит создать машину времени.

А чего её создавать? Давно уже создана. Полёт с атомными часами на борту вокруг Земли однозначно выявил разницу скорости хода этих и "стационарных" часов.
Re[5]: Стагнация?
От: c-smile Канада http://terrainformatica.com
Дата: 30.11.05 20:41
Оценка:
Здравствуйте, Dmi_3, Вы писали:

D_>Здравствуйте, McSeem2, Вы писали:


D_>[skip]


[skip]

>>… физика налагает на скорость абсолютный предел …

D_>Нет! Физика налагает абсолютный предел лишь на скорость передачи физического воздействия. Нет ограничения на скорость вообще и скорость передачи информации в частности, если она передаётся без физического носителя. Вы сами можете пускать «солнечный зайчик» быстрее скорости света. Тут нет передачи информации но… Есть (на мой взгляд странные и неубедительные) физические опыты где информация якобы передаётся быстрее скорости света. В своё время у Гордона проскакивало…

Как инетересно это (выделено) предполагается делать?
Re[6]: Стагнация?
От: Dmi_3 Россия  
Дата: 30.11.05 21:32
Оценка:
Здравствуйте, c-smile, Вы писали:

D_>...Вы сами можете пускать «солнечный зайчик» быстрее скорости света.

CS>Как интересно это предполагается делать?

Дождаться солнечной погоды, взять зеркало, отойти подальше от стены и быстро-быстро поворачивая зеркало посылать "зайчика" из стороны в сторону.
Или я чего-то не понял?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.