Здравствуйте, дорогі мешканці Хабра! У цій публікації (а, швидше за все, і циклі) я розповім про мою реалізації одного з алгоритмів шифрування. Чому про реалізацію? Тому що ідея не нова, і стверджувати те, що задумка належить саме мені, не можна. Але спосіб досить цікавий, тому дізнатися про нього варто.

В цій частині я досить коротко опишу принцип роботи самого алгоритму і мою реалізацію.

Читати далі →

Битва дроїдів і джедаїв на клітинному автоматі

Фільми, де величезні армії сходяться один з одним на полі бою в епічної битві зазвичай викликають в людях бурю емоцій. Сцени битв з "Зоряних воєн" з майстерно володіють світловими мечами джедаями і ордами бойових дроїдів — не виняток.
Але іноді буває цікаво подивитися на сам процес битви як би з висоти пташиного польоту і побачити весь хід розвитку подій. Для цього можна використовувати різні засоби віртуальної симуляції. В цьому пості наведено приклад моделювання битви між бойовими дроидами Федерації і орденом Джедаїв з допомогою такої простої дискретної моделі як клітинний автомат.


Читати далі →

Пам'яті Соломона Голомба (1932-2016): автора регістра зсуву з лінійним зворотним зв'язком максимальної довжини і полиомино


Переклад поста Стівена Вольфраму (Stephen Wolfram) "Solomon Golomb (1932-2016)".
Висловлюю величезну подяку Поліні Сологуб за допомогу в перекладі і підготовці публікації




Зміст
Найбільш часто використовуваний математичний алгоритм в історії
Як я зустрів Сола Голомба
Історія Соломона Голомба
Регістри зсуву
Передісторія регістрів зсуву
Для чого потрібні послідовності, що генеруються регістрами зсуву?
— <a href=«habrahabr.ru/company/wolfram/blog/309232/#7»Ну і де ж ці регістри?
Клітинні автомати і регістри зсуву з нелінійним зворотним зв'язком
Полиомино
Інша частина історії



Найбільш часто використовуваний математичний алгоритм в історію
Октиллион. Мільярд мільярдів мільярдів. Це дуже приблизна оцінка того, скільки разів мобільний телефон або інший пристрій згенерувало біт за допомогою регістра зсуву з лінійним зворотним зв'язком максимальної довжини. Думаю, це самий використовуваний математичний алгоритм в історії. Автор — Соломон Голомб, помер 1 травня, з яким ми були знайомі більше 35 років.

Основою книги Соломона Голомба «Послідовності регістрового зсуву», опублікованій в 1967 році, були його роботи 1950-х рр. А її зміст живе в кожній з сучасних систем зв'язку. Прочитайте специфікації для 3G, LTE, Wi-Fi, Bluetooth або навіть для GPS, — і ви знайдете згадки про многочлени, що визначають послідовності, що генеруються регістрами зсуву, які ці системи використовують для кодування відправляються ними даних. Соломон Голомб — людина, який створив ці многочлени.

Читати далі →

Музика, Mathematica та обчислювальна всесвіт: автоматичне створення музики на основі клітинних автоматів


Переклад поста Стівена Вольфраму (Stephen Wolfram) "Music, Mathematica, Computational and the Universe" про чудовому ресурсі WolframTones, робота якого була недавно відновлена на новій площадці Wolfram Cloud (сайт, створений в 2005 р., був недоступний пару років, так як використовував не підтримується сучасними браузерами рішення).
Висловлюю величезну подяку Кирилу Гузенко за допомогу в перекладі.


Наскільки складно створити людську музику? Таку, щоб пройти музичний аналог тесту Тюрінга?

Хоча музика зазвичай має певну формальну структуру, що відзначали піфагорійці ще 2500 років тому, за своєю суттю вона вельми людяна: відображення чистого творчості, яке є суть визначальна характеристика людських здібностей.

Але що є творчість? Це те, що було необхідно протягом всієї біологічної та культурної еволюції? І воно може також існувати у системах, які не мають нічого спільного з людьми?

У своїй роботі над книгою Новий вигляд науки (A New Kind of Science) я досліджував обчислювальну всесвіт можливих програм і виявив, що навіть дуже прості програми можуть показувати разюче багатий і складний характер, нарівні, наприклад, з тим, що можна зустріти в природі. І, спираючись на розроблений принцип обчислювальної еквівалентності, я прийшов до переконання, що не може бути нічого, що принципово відрізняє наші людські здібності від будь-яких процесів, які відбуваються в природі, або навіть в дуже простих програмах.

Але що можна сказати про музику? Деякі люди, виступаючи проти принципу обчислювальної еквівалентності, як аргумент використовували свою віру в те, що "не можуть існувати прості програми, які зможуть провести серйозну музику".

І мені стало цікаво: дійсно музика є щось особливе і виключно людське? Чи все таки її можна чудово створювати автоматично за допомогою обчислень?

Читати далі →

Що таке простір-час насправді?


Переклад поста Стівена Вольфраму "What Is Spacetime, Really?".
Висловлюю величезну подяку Кирилу Гузенко KirillGuzenko за допомогу в перекладі і підготовці публікації.


Примітка: даний пост Стівена Вольфраму нерозривно пов'язаний з теорією клітинних автоматів та інших суміжних понять, а також з його книгою A New Kind of Science (Новий вигляд науки), на яку з цієї статті йде велика кількість посилань. Пост добре ілюструє застосування програмування в науковій сфері, зокрема, Стівен показує (код наводиться в книзі безліч прикладів програмування на мові Wolfram Language в області фізики, математики, теорії обчислюваності, дискретних систем та ін
Зміст
Проста теорія всього?
Структура даних Всесвіту
Простір як граф
Може бути, немає нічого, крім простору
Що є час?
Формування мережі
Висновок СТО
Висновок У (Загальної теорії відносності)
Частинки, квантова механіка та інше
У пошуках всесвіту
Ок, покажіть мені Всесвіт
Займатися фізикою чи ні — ось в чому питання
Що потрібно?
Але настав час?
Сто років тому Альберт Ейнштейн опублікував загальну теорію відносності — блискучу, елегантну теорію, яка пережила цілий вік і відкрила єдиний успішний шлях до опису простору-часу (просторово-часового континууму).

Є багато різних моментів в теорії, вказують, що загальна теорія відносності — не остання крапка в історії про просторі-часі. І справді, нехай мені подобається ОТО як абстрактна теорія, однак я прийшов до думки, що вона, можливо, на цілий вік відвела нас від шляху пізнання істинної природи простору і часу.

Я розмірковував про пристрої простору і часу трохи більше сорока років. На початку, будучи молодим фізиком-теоретиком, я просто брав эйнштейновскую математичну постановку задачі спеціальної та загальної теорії відносності, а так само займався деякою роботою в квантової теорії поля, космології та інших сферах, ґрунтуючись на ній.

Але близько 35 років тому, частково натхненний своїм досвідом в технічних областях, я почав більш детально дослідити фундаментальні питання теоретичної науки, з чого і почався мій довгий шлях виходу за рамки традиційних математичних рівнянь і використання замість них обчислень і програм як основних моделей в науці. Незабаром після цього мені довелося з'ясувати, що навіть дуже прості програми можуть демонструвати дуже складну поведінку, а потім, через роки, я виявив, що системи будь-якого виду можуть бути представлені в термінах цих програм.

Надихнувшись цим успіхом, я став міркувати, може це мати відношення до найважливішого з наукових питань — фізичної теорії.

По-перше, такий підхід здавався не дуже перспективним — хоча б тому, що моделі, які я вивчав (клітинні автомати), здавалося, працювали так, що це повністю суперечило всьому тому, що я знав з фізики. Але десь у 88-му році — в той час, коли вийшла перша версія Mathematica, я почав розуміти, що якщо б я змінив свої уявлення про простір і час, можливо, це до чого то б мене привело.

Читати далі →

Стівен Вольфрам: Рубежі обчислювального мислення (звіт з фестивалю SXSW)


Переклад поста Стівена Вольфраму (Stephen Wolfram) "Frontiers of Computational Thinking: A SXSW Report".
Висловлюю величезну подяку Кирилу Гузенко за допомогу в перекладі.


минулого тижня я виступав на SXSW Interactive 2015 в Остіні, штат Техас. Ось кілька відредагована стенограма мого виступу:


Зміст
Найбільш продуктивний рік
Мова Wolfram Language
Мова для реального світу
Філософія Wolfram Language
Програми розміром в один твіт
Обчислювальне мислення для дітей
Enter запитів на природній мові
Масштабна ідея: Символьне програмування
Мова для розгортання
Автоматизація програмування
Масштабні програми
Інтернет речей
Машинне навчання
Дослідження Обчислюваної Всесвіту
Обчислювати, подібно до того, як це робить мозок
Мова як символьне уявлення
Пост-лінгвістичні поняття
Стародавня історія
Чим буде займатися штучний інтелект?
Безсмертя і за його межами
Коробка трильйона душ
Назад у 2015 рік

Читати далі →

Іглобрюх і дари «Життя»



Багато програмісти, принаймні мого покоління, знають гру «Життя», правила якої були запропоновані британським математиком Джоном Конвеєм (John Conway) в 1970 році. Але що знають небагато, так це те, що вона досі активно розвивається і радує новими відкриттями. Історією одного з таких відкриттів я хочу поділитися в цій статті.
Читати далі →

-фон неймановский комп'ютер на базі комбінаторної логіки

Доброго дня. У цій статті я розповім про своє хобі-проект не-фон неймановского комп'ютера. Архітектура відповідає функціональній парадигмі: програма є дерево застосувань елементарних функцій один до одного. Залізо — однорідна статична мережа примітивних вузлів, на яку динамічне дерево програми спроектовано, і по якій програма «повзає» вычисляясь.
Приблизно так працює дерево, тільки тут для наочності обчислюються арифметичне вираження, а не комбінаторне; крок на малюнку — один такт машини.

Зараз готовий ранній прототип, що існує як у вигляді потактового програмного симулятора, так і у вигляді реалізації на ПЛІС.

Читати далі →

Клітинний автомат Stepper

В цій статті пропонуються правила для двовимірного клітинного автомата, який, з одного боку, дуже схожий на гру Життя Джона Конвея (conway's Game of Life), а з іншого — володіє істотними відмінностями. Насамперед його відрізняє збільшений до трьох кількість станів клітин, підвищена здатність до самоорганізації, необмежений час активної еволюції і необмежену кількість рухомих конфігурацій.

Для стабільних конфігурацій нові правила збігаються з правилами гри Життя, тому всі стабільні конфігурації в грі Життя існують і в нових правилах. В описуваному клітинному автоматі існує великий клас рухомих конфігурацій, космічних кораблів. Всі ці конфігурації переміщуються з одного і того ж поступального механізму, який нагадує рух і крокового екскаватора і людину на милицях. Подібні космічні кораблі я назвав степпер (stepper), а саме правило Steppers. Так його і будемо називати надалі.

У Steppers існує досить багато осциляторів, причому, деякі осцилятори з гри Життя працюють і в Steppers, що говорить про спадкоємність правил. І, нарешті, знаменитий глайдер Конвея, так само існує у пропонованих правилах. У статті буде розглянута динаміка випадковим чином заповнених решіток, розкрито механізм руху степерів, описані знайдені на даний момент осцилятори і степпери. Так само будуть наведені приклади зіткнень і складного функціонального поведінки.

_r00.png
[00] Приклад рухомої конфігурації, яка генерує потік степерів

Читати далі →