Бритва Оккама

«Pluralitas non est ponenda sine necessitate»
William of Ockham

Здесь описывается идея некоторого «интеллектуального» детективного сериала, которая была придумана по просьбе одного моего амбициозного друга, уезжавшего покорять Москву. Москва покорилась другу совсем в другой области. Далекой от телевидения и кинематографа. А идея так и не стала полноценным сценарием.

Основная идея сценария крутится вокруг моего скептического отношения к известному со времен Аристотеля методологическому принципу, позже получившему наименование Бритва (Лезвие) Оккама. Считается, что Бритва Оккама является одной из форм выражения Аристотелевского Принципа Достаточного Основания.

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

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

Применение же принципа Бритвы Оккама в каком-либо другом деятельностном контексте может быть оправдано только эмпирически. Т.е. на уровне философии здравого смысла.

Бритва Оккама

Зачем ты так все усложняешь? Мобильный телефон это совсем просто…

Примечательно, что я не нашел ни одной формулировки принципа Бритвы Оккама, кроме приведенных рассуждений, которая не была бы контрпримером к себе самой. Что касается разработки программного обеспечения, то там существует методология, построенная на этом принципе. Это  test-driven development, TDD. Однако, параллельное написание тестов и кода в этом подходе стимулирует осмысленный прогностический подход к обоим составляющим процесса. Использование же программистом одного только принципа Бритвы Оккама и в этом случае больше похоже на форму саботажа, чем на работу.

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

Например, на видеозаписи места преступления видно, как рабочие покидают территорию предприятия в конце рабочего дня. Это обычное, повседневное событие повторяется изо дня в день и не привлекает внимание следствия. Все вроде бы просто и объясняется простейшими посылками. Но оказывается, что предприятие (шахта, фабрика, стройка) давно закрыта и эти люди… Что они там делают?!

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

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

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

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

Share

Алгоритмы. Начальный курс

Algorithms, Part IRobert Sedgewick, Kevin Wayne

 Через несколько дней, 12 августа начнется полезный 6-ти недельный дистанционный курс от Принстонского университета по алгоритмизации. Интересен тем, что в нем обсуждаются вопросы в общем уже хорошо знакомые нашим студентам, но излагаются по западным канонам. Т.е. материал лекций и задания не должны вызывать затруднений у наших студентов. Особенностью данного курса является использование языка Java на котором проведена детализация/реализация алгоритмов и необходимых структур данных. По идее, изучение только этого одного курса не должно отнимать много времени, я бы рекомендовал найти пару часов в день. Кроме того, что вы познакомитесь с американской системой ведения занятий, у вас будет еще и отличный стимул держать в активном состоянии английский язык.

Итак плюсы:

  • освежаем знания по алгоритмизации и структурам данных
  • плотнее дружим с Java
  • знакомимся с «их» стилем преподавания и требованиями к студентам
  • поддерживаем английский

Минусы:

  • требуется серьезное отношение к процессу и хотя бы час времени в день
  • отсутствуют какие-либо серьезные бонусы (дипломы)

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

Советую для начала подробнее познакомиться с описанием курса Algorithms, Part I, а потом принимать решение. В качестве литературы пригодился бы Кормен и собственные материалы авторов курса.

Кроме системы дистанционных курсов Сoursera могу порекомендовать еще http://www.udacity.com и https://www.edx.org. Мне больше всего нравится все же Cursera. Конечно, существует еще много таких систем, перечисленные связаны с крупными университетами и это плюс.

Share

Защищено: Fundraiser

Это содержимое защищено паролем. Для его просмотра введите, пожалуйста, пароль:

Share

Тема оформления

Существует много тем оформления WordPress. Часть из них русифицированы. Кроме дизайнерских изысков в темах интегрированы различные полезные и не очень функции. Например, есть темы, предназначенные для организации чего-то похожего на социальную сеть по типу Facebook. Я не предполагал необходимости таких экзотических функций — только мои персональные заметки. По этому выбрал настраиваемую тему (шаблон) GreenLife кажется отсюда http://wp-templates.ru. Интересно, что соответствующую не русифицированную тему можно купить в сети «всего» за 19$95. Правда, у продавца нашлась более симпатичная тема того же типа — WebDirectory. Но не русифицированная и за деньги. Есть и подобные русифицированные. Например,  iHealth  со встроенным плагином для публикации (расшаривания) записей блога в различных социальных сетях. Аналогичные функции у шаблона Pleased и некоторых других. Из «стандартных» шаблонов разработанных самой командой WordPress самым функциональным наверное является Responsive. Возможно его бы и выбрал, если бы делал все заново.

Если оценивать шаблоны с точки зрения интерактивной привлекательности, то нужно обратить внимание на такие Java темы как Rolex, Bodega, Complete. Удивительно, что использование Java во всех случаях, которые я видел, ограничивается чисто показными эффектами. Т.е. ничего полезного в плане функциональности почему-то не нашел.

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

Share

Формулы на сайте

Первый день отпуска потратил на запуск WordPress на хостинге GoDaddy. Установил плагин для отображения такого   e^{i \pi} + 1 = 0 типа формул в синтаксисе LaTeX. Пока все работает. Плагин WP LaTeX транслирует формулы в png-файлы картинок при помощи сервера WordPress.com. Цвет фона и стили можно настраивать. Многострочные формулы выглядят тоже приемлимо — x = {-b \pm \sqrt{b^2-4ac} \over 2a}. Хотя с размером символов и выравниванием нужно как-нибудь еще повозиться.
Повозился с настройками CSS, но к сожалению универсального решения не нашел. Пришлось подключать MathJax. Ему нужен включенный в браузере JavaScript. Работает стабильно. С фоном, размером символов и расположением формул проблем нет. Однако многострочные формулы выглядят не очень привычно.
Пришлось выбирать сервис генерации изображений. Google Charts оказался весьма пристойным, но прозрачного фона не вышло.

Вот еще несколько ($n$) успешных примеров:
\lim_{x \to 0} {\left(1 + x \right)}^ { \frac{1}{x} } = e
\frac{(a+b )^2}{4} - \frac{(a-b )^2}{4} = ab
\sqrt[3]{x+1}
\lim_{n \to \infty} \left(1 + \frac{1}{n} \right)^n = e
\begin{cases} x + y + z = 3 \\ 2y = x+z\ \\ 2x + y = z \end{cases}
f(x)=\int_{-\infty}^x e^{-t^2}dt
f^\prime(x)\ =\lim_{\Delta x\to0}\frac{f(x+\Delta x)-f(x)}{\Delta x}
\sum_{n=0}^\infty\frac{x^n}{n!}
e^x=\lim_{n\to\infty} \left(1+\frac~xn\right)^n
… и не очень успешных (если в настройках ограничиться генерацией изображений через Google Charts, то все будет хорошо отображаться и в этой части):
\min_{i \in [a, b]}
\iiint_{x^2 + y^2 + z^2 = 1} f(x, y, z) dx dy dz
\int_{0}^{3} f(x) dx
A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{pmatrix}
M_{\cyr maslo}=\frac{\rho_{\cyr maslo}}{\rho_{\cyr kerosin}}M_{\cyr kerosin}

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

Увы, некоторые команды эти системы вообще не знают и выводят возле них знак вопроса
\boxed{E=mc^2}

Формулы внутри \lim_{n \to \infty} \sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6} текста можно записывать и в одну строку \lim\limits_{n \to \infty} \sum\limits_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6} и в несколько. Будут ли они выглядеть по-разному пока угадать сложно.

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

Share