Чисто математическое утверждение вообще почти всегда не несет информации, т.к. утверждение либо истинно, либо ложно. В 3-м случае (есть куча недоказанных теорем, некоторые из которых может(?) быть невозможно как доказать, так и опровергнуть в рамках аксиоматики) лишь возникает повод дополнить аксиоматику. То есть математика = язык. Если применять этот язык к физическим объектам, тогда утверждения становятся уже содержательными, и, наверняка, ошибочными в 99.(9) = 100 % случаев, если их записывать в виде вещественных равенств. А одно яблоко = одно яблоко, как ни крути.
Если количественные утверждения не принимать во внимание, то истина может быть только формальной (математической), но не несущей никакой информации. А в реальном мире истина не достижима. И никакие истины в стиле инварианта Энергия = const не проканают, т.к. эту категорию «энергия» непрерывно подгоняют под этот закон, уточняя модели. Другое дело с инвариантами тензора. Как ни крути его, инварианты сохраняются.
Любая непротиворечивая аксиоматика не полна (теорема Гёделя о неполноте + аппаратная поддержка неполной индукции заставили меня уверовать в это), поэтому остается только «кухонным» (субъективным, эмоциональным) образом разминать фундаментальные определения и аксиомы.
Хотя, стоп, разве есть у человека надежный доступ хоть к какой-то объективной информации? Любая объективная информация, прежде чем попадает в наше сознание, проходит через «испорченный телефон» и теряет свою объективность. То есть мы рассуждаем об объективной информации, даже теоретически не имея возможности её потрогать. Разве это не прекрасно? А с другой стороны, информация, содержащаяся в сознании субъекта — объективна с точки зрения стороннего наблюдателя (но, очевидно, в чистом виде не доступна ему).
Не нравится мне такое разделение на объективное и субъективное. Ведь если человек упорется герычем, то ему определенное время будет хорошо. Но объективно хорошо или субъективно?
Поэтому склоняюсь к тому, что так называемая субъективная информация, хоть она и является лишь отражением информации внешнего мира, но ее можно потрогать сознанием и только она является доступной, в некотором роде, истинной (настоящей, объективной), в отличие от так называемой объективной информации.
Попробую сформулировать в терминах случайных процессов в вольном стиле.
Примем за контекст набор физических законов (если они динамически меняются, то будем считать закон их изменения известным).
Если функция F состояния (совокупностей всех свойств вселенной) от времени является детерминированной, т.е. F = F(t), то информацией будет являться лишь одно состояние F0 в любой конкретный момент времени t0.
Если F является стохастической, т.е. F = F(w,t), то для определения траектории (или реализации) функции F достаточно знать дополнительно к F0 некоторый конкретный исход w0, который определит, как случайные события «реализованы».
В реальности проблематично узнать, как случайные события реализовывались в прошлом, поэтому будем считать часть информации безвозвратно потерянной, т.е. вместо конкретного исхода w0 будем иметь целое множество исходов W (возможно, не счетное), а это не удобно. В будущее тоже заглянуть проблематично.
Тогда имеет смысл рассматривать функцию F12(t,w) на некотором промежутке времени [t1,t2], на котором удалось отследить и запечатлеть конкретную реализацию случайных событий. Тогда информацией будет некоторый исход w0, для запечатленной реализации F12(t) и состояние F0 в некоторый момент времени t0.
Таким же образом можно рассматривать не всю вселенную, а ее часть и учитывать не все законы, а только некоторые, и не в точном виде, а в приближенном, с соответствующей потерей информации.
Форекс – не рынок, на нём можно играть (и, возможно, выигрывать), но не зарабатывать.
Фо́рекс (Forex, иногда FX, от англ. FOReign EXchange — «зарубежный обмен») — рынок межбанковского обмена валюты по свободным ценам
Попыток получить стабильно приносящую прибыль стратегию масса, и все провалились
Из этого не следует, что такой стратегии не существует.
Все равно что утверждать: вечного двигателя нет, потому что все попытки его создания провалились. Деда мороза нет, потому что все деды морозы которых видел оказались не настоящими. Или такого рода ошибки популярны: курильщики умирают в среднем раньше, чем не курящие, следовательно курение влияет на продолжительность жизни.
Где логика? Причина же может быть, например, не курение, а некая третья сущность. Причиной может быть то, что выигрышную стратегию плохо искали, а не её отсутствие в принципе.
Иногда ошибочная логика приводит к верному результату, но не всегда.
Тот пост был написан к тому, что в вычислительных программах узкие места тоже могут занимать малую часть кода, а не для разбора моих заблуждений.
оффтоп
1. Переписывание на ассемблер в теории (в идеале) даст максимальную производительность, для конкретного множества процессоров, то есть временно, поэтому да, толку от этого мало.
2. Использование свойства симметричности наоборот улучшает производительность, это очевидно из приведенного кэш-френдли кода.
3. Таки да, придется использовать обычное строчное представление CSR и PARDISO (Intel MKL) / Eigen, за неимением лучшего.
Matlab лучше решает некоторые минимаксные задачи, чем Maple, ИМХО(проверял своими кривыми руками).
Maple хорош в аналитике, как говорит знакомый д.ф-м н., который использовал его 25+ лет (маразмом вроде бы не болеет).
А для чисто численных методов лучше вручную писать, чтобы не упереться в ограничения конкретного пакета, что в какой-то момент обязательно произойдет.
сейчас пишу свою вычислительную балалайку (мкэ, мдтт) и есть всего 2 критических участка. 1 — итерационное решение разреженной СЛАУ с предобуславливанием и 2 — вычисление элементов матрицы СЛАУ, где много вещественных операций, от которых никуда не деться. Первый участок сжирает ~93% времени и второй сжирает ~5% времени (для больших матриц). И самое узкое место — умножение матрицы на вектор — 91% всех вычислений — занимает 23 строки:
// A*x -> y (x !=y !!!!)
void Slau::amulx(const double *x, double *y)
{
int i, j, t;
// y = 0
for (i = 0; i < N; i++)
y[i] = 0;
// вне диагонали
for (j = 0; j < N; j++) // строка номер j
{
for (t = ind[j]; t < ind[j + 1]; t++) // t — индекс элемента j-й строки
{
i = ai[t]; // столбец номер i
// a[t] — элемент A(j, i)
y[j] += a[t] * x[i];// нижний треугольник
y[i] += a[t] * x[j];// верхний треугольник
//printf(«A(%d, %d) = %lf\n», j, i, a[t]);
}
}
// диагональ
for (i = 0; i < N; i++)
y[i] += d[i] * x[i];
}
Скопировал как есть, написано года ~3 назад.
А это <1% кода. Только сейчас задумался, как можно это оптимизировать. В boost строчно-столбцового формата для симметричных матриц вроде бы нет (за бугром его не юзают почти), а на ассемблер лома переписывать и ассемблер — это временное решение.
Чтение с диска и запись на диск тоже могут кэшироваться оперативной памятью (и естественно кэшами L1,L2..), а не только буфером диска. Какой режим работы подразумевается установившийся или нет? И как там с ассинхронностью в 2016 для диска? Слишком уж загнули с 100 000 тактов обращения к диску.
Не надо передергивать.
В статье многобукафф, но не заметил инфы про ассоциативность. Есть размер кэша, да, но есть еще другого рода ограничение. Если обрабатывать в разных частях памяти блоки, то для конкретного процессора не более K штук таких блоков одновременно эффективно кэшируются (проверял лично).
сами то решили? я тупил пол часа пока не понял зачем в условии неравенство.
для тех кому лень читать приведенное решение:
1. сортируем w[] чтобы получить w[1] <=...<= w[n]
2. для k = 1...N:
сумма элементов любого подмножества размера k принадлежит промежутку AB = [sum(MIN); sum(MAX)] = [сумма первых k элементов w[]; сумма последних k элементов w[]].
Если промежутки AB и [l, u] не пересекаются, то для текущего k решения нет, переходим к следующему
Если AB пересекает [l, u], то решение либо уже найдено (MIN или MAX), либо его легко найти, последовательно заменяя элементы из MIN на элементы из MAX, поскольку при каждой замене нельзя «перескочить» через промежуток [l,u] благодаря неравенству в условии.
А если неравенство в условии убрать, неужели быстрого решения не существует?
Есть обобщенное нормальное и обобщенное гиперболическое распределения, которые содержат многие распределения. Но обобщенный вид затрудняет оценку параметров (не критично), а полу-гуманитарные критерии применимости распределений к реальным задачам слабо распространены на такие виды. Попробуйте убедить, предположим, медиков, что какое-то обобщенное распределение лучше подходит для описания некоторой случайной величины, когда 100 лет уже её описывают в обширных исследованиях, которые считаются фундаментальными, более простым частным распределением. Хотя, если, после оценки, вклад всех параметров в распределение будет существенным, то никто не отвертится и придется принять обобщение.
Знакомый психолог публиковала в зарубежном журнале статью, где математических претензий не было, а отфутболивали именно из-за отсутствия обоснования применимости использованных распределений, пока не были найдены необходимые подтверждающие ссылки.
Получил мало удовольствия от игры синим персом против оранжевых на топовых рейтингах в Prime World. Либо платить, либо тратить кучу времени на развитие замка. До свидания.
Китайская команда Wings таки получила 9кк$ за топовую строчку в Dota 2 на последнем International.
Это к тому, что если главная прелесть игры — игровой процесс, то визуальный стиль мало важен, а монетизация допустима только для визуальных изменений и других плюшек, не влияющих на логику игрового процесса. Таким образом, для класса игр локализация сводится к переводу.
Название статьи провокационное. Получается, что сингулярные распределения — бесполезная альтернатива и создание этих распределений не продиктовано непригодностью описанных тут распределений к некоторым задачам — «случаям жизни»?
Домашнее задание смахивает на задачку с подвохом. Требуется смоделировать множество биржевых систем (тут требуются знания предметной области на уровне бога) и напрямую получить распределения аналитически или откуда-то взять статистику по биржевым системам, подобрать для нескольких дающих надежду распределений оптимальные параметры (оптимизационная задача) и выбрать среди полученных конкретных распределений наиболее точные?
Если количественные утверждения не принимать во внимание, то истина может быть только формальной (математической), но не несущей никакой информации. А в реальном мире истина не достижима. И никакие истины в стиле инварианта Энергия = const не проканают, т.к. эту категорию «энергия» непрерывно подгоняют под этот закон, уточняя модели. Другое дело с инвариантами тензора. Как ни крути его, инварианты сохраняются.
Хотя, стоп, разве есть у человека надежный доступ хоть к какой-то объективной информации? Любая объективная информация, прежде чем попадает в наше сознание, проходит через «испорченный телефон» и теряет свою объективность. То есть мы рассуждаем об объективной информации, даже теоретически не имея возможности её потрогать. Разве это не прекрасно? А с другой стороны, информация, содержащаяся в сознании субъекта — объективна с точки зрения стороннего наблюдателя (но, очевидно, в чистом виде не доступна ему).
Не нравится мне такое разделение на объективное и субъективное. Ведь если человек упорется герычем, то ему определенное время будет хорошо. Но объективно хорошо или субъективно?
Поэтому склоняюсь к тому, что так называемая субъективная информация, хоть она и является лишь отражением информации внешнего мира, но ее можно потрогать сознанием и только она является доступной, в некотором роде, истинной (настоящей, объективной), в отличие от так называемой объективной информации.
Примем за контекст набор физических законов (если они динамически меняются, то будем считать закон их изменения известным).
Если функция F состояния (совокупностей всех свойств вселенной) от времени является детерминированной, т.е. F = F(t), то информацией будет являться лишь одно состояние F0 в любой конкретный момент времени t0.
Если F является стохастической, т.е. F = F(w,t), то для определения траектории (или реализации) функции F достаточно знать дополнительно к F0 некоторый конкретный исход w0, который определит, как случайные события «реализованы».
В реальности проблематично узнать, как случайные события реализовывались в прошлом, поэтому будем считать часть информации безвозвратно потерянной, т.е. вместо конкретного исхода w0 будем иметь целое множество исходов W (возможно, не счетное), а это не удобно. В будущее тоже заглянуть проблематично.
Тогда имеет смысл рассматривать функцию F12(t,w) на некотором промежутке времени [t1,t2], на котором удалось отследить и запечатлеть конкретную реализацию случайных событий. Тогда информацией будет некоторый исход w0, для запечатленной реализации F12(t) и состояние F0 в некоторый момент времени t0.
Таким же образом можно рассматривать не всю вселенную, а ее часть и учитывать не все законы, а только некоторые, и не в точном виде, а в приближенном, с соответствующей потерей информации.
Попыток получить стабильно приносящую прибыль стратегию масса, и все провалились
Из этого не следует, что такой стратегии не существует.
Все равно что утверждать: вечного двигателя нет, потому что все попытки его создания провалились. Деда мороза нет, потому что все деды морозы которых видел оказались не настоящими. Или такого рода ошибки популярны: курильщики умирают в среднем раньше, чем не курящие, следовательно курение влияет на продолжительность жизни.
Где логика? Причина же может быть, например, не курение, а некая третья сущность. Причиной может быть то, что выигрышную стратегию плохо искали, а не её отсутствие в принципе.
Иногда ошибочная логика приводит к верному результату, но не всегда.
оффтоп
1. Переписывание на ассемблер в теории (в идеале) даст максимальную производительность, для конкретного множества процессоров, то есть временно, поэтому да, толку от этого мало.
2. Использование свойства симметричности наоборот улучшает производительность, это очевидно из приведенного кэш-френдли кода.
3. Таки да, придется использовать обычное строчное представление CSR и PARDISO (Intel MKL) / Eigen, за неимением лучшего.
Maple хорош в аналитике, как говорит знакомый д.ф-м н., который использовал его 25+ лет (маразмом вроде бы не болеет).
А для чисто численных методов лучше вручную писать, чтобы не упереться в ограничения конкретного пакета, что в какой-то момент обязательно произойдет.
// A*x -> y (x !=y !!!!)
void Slau::amulx(const double *x, double *y)
{
int i, j, t;
// y = 0
for (i = 0; i < N; i++)
y[i] = 0;
// вне диагонали
for (j = 0; j < N; j++) // строка номер j
{
for (t = ind[j]; t < ind[j + 1]; t++) // t — индекс элемента j-й строки
{
i = ai[t]; // столбец номер i
// a[t] — элемент A(j, i)
y[j] += a[t] * x[i];// нижний треугольник
y[i] += a[t] * x[j];// верхний треугольник
//printf(«A(%d, %d) = %lf\n», j, i, a[t]);
}
}
// диагональ
for (i = 0; i < N; i++)
y[i] += d[i] * x[i];
}
Скопировал как есть, написано года ~3 назад.
А это <1% кода. Только сейчас задумался, как можно это оптимизировать. В boost строчно-столбцового формата для симметричных матриц вроде бы нет (за бугром его не юзают почти), а на ассемблер лома переписывать и ассемблер — это временное решение.
Не надо передергивать.
В статье многобукафф, но не заметил инфы про ассоциативность. Есть размер кэша, да, но есть еще другого рода ограничение. Если обрабатывать в разных частях памяти блоки, то для конкретного процессора не более K штук таких блоков одновременно эффективно кэшируются (проверял лично).
для тех кому лень читать приведенное решение:
1. сортируем w[] чтобы получить w[1] <=...<= w[n]
2. для k = 1...N:
сумма элементов любого подмножества размера k принадлежит промежутку AB = [sum(MIN); sum(MAX)] = [сумма первых k элементов w[]; сумма последних k элементов w[]].
Если промежутки AB и [l, u] не пересекаются, то для текущего k решения нет, переходим к следующему
Если AB пересекает [l, u], то решение либо уже найдено (MIN или MAX), либо его легко найти, последовательно заменяя элементы из MIN на элементы из MAX, поскольку при каждой замене нельзя «перескочить» через промежуток [l,u] благодаря неравенству в условии.
А если неравенство в условии убрать, неужели быстрого решения не существует?
Знакомый психолог публиковала в зарубежном журнале статью, где математических претензий не было, а отфутболивали именно из-за отсутствия обоснования применимости использованных распределений, пока не были найдены необходимые подтверждающие ссылки.
Китайская команда Wings таки получила 9кк$ за топовую строчку в Dota 2 на последнем International.
Это к тому, что если главная прелесть игры — игровой процесс, то визуальный стиль мало важен, а монетизация допустима только для визуальных изменений и других плюшек, не влияющих на логику игрового процесса. Таким образом, для класса игр локализация сводится к переводу.
Домашнее задание смахивает на задачку с подвохом. Требуется смоделировать множество биржевых систем (тут требуются знания предметной области на уровне бога) и напрямую получить распределения аналитически или откуда-то взять статистику по биржевым системам, подобрать для нескольких дающих надежду распределений оптимальные параметры (оптимизационная задача) и выбрать среди полученных конкретных распределений наиболее точные?