Как стать автором
Обновить
1
Карма
0
Рейтинг

Пользователь

  • Подписчики 2
  • Подписки 11
  • Публикации
  • Комментарии

Что такое логическое программирование и зачем оно нам нужно

ПрограммированиеData MiningАлгоритмыPrologМатематика

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


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


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

Вот эту оплошность я и собираюсь сегодня исправить.


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Просмотры26K
Комментарии 22

Wolfram Language (Mathematica) — это просто игрушка

МатематикаФункциональное программирование
Я засомневался в своей точке зрения, см. подробнее в одном из UPD.

Хочу поговорить о Wolfram Language (далее WL). Прошу прощения за сумбурность изложения, пост вырос из попытки ответить на этот коммент от Nilis.

WL — это всё-таки узкоспециальный язык. Просто Wolfram решил подзаработать денег, и для этого стал продвигать свой WL ещё и как язык общего назначения. Если вам понравился именно WL — значит, вы просто ещё не познали другие языки. Также замечу, что WL — это не свободное ПО, в отличие от кучи других языков, включая тот же питон.

Лет 6-10 назад, когда я учился в школе, я знал лишь BASIC, Pascal/Delphi, C/C++ и WL. Из ОС имел дело лишь с Windows. Не знал, что такое скриптовые языки (perl, python, bash), не знал самого понятия «скрипт». Думал, что командный интерфейс — это устаревший интерфейс и что единственный правильный интерфейс программы — это графический. Программировал я на Delphi и WL. Программы на Delphi всегда были графическими. За исключением олимпиадного программирования, там в требованиях к программам было, что они должны быть текстовыми, я их писал на Delphi и C++. Когда я узнал о WL, я был им очарован, также как и вы. Потому что код на WL был гораздо короче, чем на Delphi/C++. И вообще, потому что WL был совершенно не похож на Delphi и C++. Потому что там была возможность программировать функционально. Я познакомился с функциональным программированием на примере WL, я не знал, что существуют «стандартные» функциональные языки — Haskell, Lisp и ML.
Читать дальше →
Всего голосов 77: ↑44 и ↓33+11
Просмотры54K
Комментарии 110

Автомобиль Honda установил мировой рекорд по расходу топлива: 2.4 литра на 100 км

Транспорт
image
Фото Honda News

Японский автопроизводитель Honda попал в Книгу рекордов Гинесса: автомобиль Civic Tourer 1.6 i-DTEC показал рекордно низкий расход дизельного топлива во время 25-дневнего путешествия команды из трёх человек по 24 странам Европейского союза. В пересчёте на европейскую систему мер автомобиль затратил в среднем 2.345 литра на 100 км. Другими словами, в среднем одного литра дизельного горючего хватает на 42.65 км пути. При этом абсолютно никаких модификаций для серийно выпущенного автомобиля не производилось.
Узнать подробности
Всего голосов 17: ↑16 и ↓1+15
Просмотры21K
Комментарии 34

Улучшение производительности Python 2.7

Высокая производительностьOpen sourcePythonКлиентская оптимизация
Перевод

От переводчика: в двух словах, в декабре 2015 выйдет релиз Python 2.7.11, ускоряющий работу интерпретатора CPython до 20%. Ниже перевод статьи с LWN.net, рассказывающей о сути и процессе произошедших изменений в коде. Имена, в произношении которых я не уверен, даны в оригинальном написании. Об ошибках и неточностях перевода просьба, как обычно, сообщать в личные сообщения.

Несмотря на то, что разработка Python 2 (а конкретно ветки Python 2.7.x) находится сейчас в состоянии «никаких новых фич», которое в обычной ситуации заранее ставит крест на любых крупных изменениях, команда разработки приняла решение рассмотреть и принять backport-патч из Python 3, привносящий заметное улучшение производительности интерпретатора.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Просмотры19K
Комментарии 5

CLion 1.0 — мощный инструмент для мощного языка

Блог компании JetBrainsПрограммированиеC++
В сентябре прошлого года мы порадовали вас новостью о начале программы публичного превью (Public Early Access Program) нашей новой кросс-платформенной IDE для разработки на C и C++ — CLion. А уже сегодня мы готовы сказать — релиз CLion 1.0 состоялся! За два года от первого (полушутливого) объявления о начале разработки C++ IDE мы прошли огромный путь — переосмыслили свои навыки и умения по работе с кодом на C++, дружно освоили CMake, расширили команду, протестировали CLion на десятках больших проектов на C и C++.

Но самое главное — это каждодневная поддержка C++ коммьюнити, которое (спасибо вам!) приняло нас очень благосклонно. Спасибо за слова поддержки, репорты багов, предложения новых фич, сотни ретвитов и репостов наших новостей и анонсов! Сегодня мы готовы показать вам и рассказать, что же вошло в CLion 1.0.


Читать дальше →
Всего голосов 83: ↑81 и ↓2+79
Просмотры56K
Комментарии 157

Беспроводной HDMI — в каждую квартиру

ГаджетыМониторы и ТВУмный дом


На краудфандинговом сайте Indiegogo начался сбор средств на очень полезный гаджет AIRTAME — это конвертер WiFi-HDMI, который позволяет подключать телевизор/монитор/ноутбук по HDMI, только без проводов.

Устройство похоже на Google Chromecast, но возможности AIRTAME гораздо шире (подробнее под катом).
Читать дальше →
Всего голосов 57: ↑52 и ↓5+47
Просмотры96K
Комментарии 57

Робот-пылесос Kärcher RC 3000: опыт эксплуатации

ГаджетыРобототехника
В своей жизни я встречал людей, которым нравится пылесосить. Да, именно так, сам процесс наведения чистоты доставляет удовольствие. Причина может быть разной — от демонстрации собственной нужности до мизофобии.

Однако среди широкого спектра придуманных человечеством мотивов для проведения ежедневной уборки жилища, я не смог найти свой. Лень неизменно одерживала верх как над рациональными доводами о необходимости пылесосить каждый день, так и над эмоциональными порывами, энергии которых хватало только на то, чтобы выругаться: "Почему опять никто не убрался!"

Признавшись себе однажды в том, что дело не в «нехватке времени» или «усталости после работы», а в банальном нежелании брать в руки этот чертов пылесос, я решил, что нужно процесс уборки как-то автоматизировать, например, купить робота-уборщика.

Прочного и надежного робота-уборщика, способного нормально функционировать в самых тяжелых условиях:



Мой выбор пал на RC 3000 от Karcher, впечатлениям от эксплуатации которого и посвящается данная статья.

Осторожно: под катом много фотографий и видеороликов
Всего голосов 317: ↑303 и ↓14+289
Просмотры252K
Комментарии 330

Самые известные/оригинальные телефоны от Nokia: вспоминаем то, что было

ГаджетыИстория ITСмартфоны


Да, скорее всего, мы уже не увидим новые модели телефонов/смартфонов от Nokia, поскольку свой профильный бизнес компания продала корпорации Microsoft. Тем не менее, за долгие годы лидерства финский производитель создал немало интересных устройств, которые можно считать «иконами» всего сектора телефонов/смартфонов. Были решения удачные, были не очень, но все это и способствовало развитию рынка смартфонов/телефонов. Под катом много фотографий, так что будьте осторожны, если у вас платный трафик.

Читать дальше →
Всего голосов 108: ↑84 и ↓24+60
Просмотры122K
Комментарии 226

Лампа накаливания или люминесцентная или светодиодная

Энергия и элементы питания
Представляю вашему вниманию обзор посвященный сравнению 3-х типов лам: лампа накаливания, люминесцентная, светодиодная. Я попробую ответить на вопрос что же покупать накал/люмен/светодиод?
Итак. В нашем эксперименте будут участвовать 5 ламп разных мощностей и типов.
image
Слева направо:
Лампа накаливания 60 Вт (на фото отсутвует — заимствовал в подъезде ибо дома не нашел. Лампа возвращена в подъезд и в фотосессии не участвует)
Лампа накаливания 93 ВТ
Светодиодная лампа 3 В Теплый белый
Светодиодная лампа 9 Вт Теплый белый
Ртутная лампа фотон 26 Вт 4200 К Холодный белый
Читать дальше →
Всего голосов 69: ↑48 и ↓21+27
Просмотры142K
Комментарии 186

Доставка из США за 5-10 дней по цене USPS

Управление e-commerce
До наступления 2013 года оставалось 30 дней, когда я решил подарить жене ipad mini. Официальный store.apple.com не справлялся со спросом на mini, о чем красноречиво свидетельствовала надпись est shipping in 2 weeks.

Отказываться от mini в качестве подарка не было никакого желания, поэтому был штурмом взят ebay, цены на котором заметно подросли, и 16gb+cellurar модель ушла за $500.

До наступления 2013 года оставалось 15 дней, у меня был выигранный лот и туманная перспектива получить его в Спб до 31 числа…
И я ее получил, за 10 дней, тариф за отправку составил $48.5.
Читать дальше...
Всего голосов 150: ↑138 и ↓12+126
Просмотры158K
Комментарии 160

Обзор бюджетных 7" планшетов: Kindle Fire, Nook Tablet, BB PlayBook

Планшеты
Однажды, тоскливым ноябрьским вечером, я случайно обнаружил в интернете информацию о том, что в продажу поступила новая версия моего любимого планшетника, которая теперь называется Nook Tablet. Изменения относительно Нук Колора выглядели существенными — 16 гигабайт памяти, двухядерный гигагерцовый процессор, 1 гигабайт оперативной памяти. Некисло, подумал я, и решил — Хочу!

Правда, голос разума заговорил во мне. Говорил он примерно следующее — «Есть же еще куча конкурентов, почему именно нук, посмотри хотя бы на Kindle Fire». В итоге, после раздумий, было принято решение купить и киндл тоже, на месте разобраться, что мне больше по душе, а лишнее устройство продать. Получил зарплату и закупил себе оба аппарата, через ebaytoday. Между делом продал свой nook color, и остался у нас в семье только нук жены, а я стал ждать своих планшетников, тоскливо обозревая интернет через маленький экран своего ламборгини.

Когда планшетники уже были на складе EBTD — неожиданно началась акция на BlackBerry PlayBook по 199 долларов. Интересно, подумал я — тот же 1 ггц двухядерный процессор, тот же гиг оперативной памяти, но вместо андроида — ОС реального времени QNX. Ну решил и его тоже заказать, правда не обошлось без сложностей. В итоге заказал за 260 долларов на ebay плейбук с обложкой — в принципе цена такая же как если бы заказал плейбук с офф сайта.

Пока плейбук дошел, пока сформировали посылку — было уже 9 декабря. А 12 декабря посылка отправилась в сторону России. Не прошло и месяца Чуть больше месяца спустя — они у меня:

Читать дальше →
Всего голосов 67: ↑57 и ↓10+47
Просмотры18K
Комментарии 107

Новые поисковые операторы в gmail

Облачные сервисы
Я никогда не упирался в лимит свободного почтового места в gmail, пока не стал форвардить рабочую почту в персональный аккаунт. Могу допустить, что вы и без рабочих вложений достигли 10гб лимита и отчаянно вылавливаете старые письма с большими и ненужными вложениями от всяких рекламных рассылок и анонсов. 
Более хитрые пользователи использовали специально заточенные под это сервисы, кто-то перелопачивал письма вручную, но теперь для этого (и не только) появились новые поисковые операторы…
Читать дальше →
Всего голосов 85: ↑82 и ↓3+79
Просмотры23K
Комментарии 24

CLion — долгожданная IDE от JetBrains для С/С++ разработчиков — открывает публичный EAP

Блог компании JetBrainsПрограммированиеC++
Последнее время ни один пост от нашей компании не обходился без традиционного вопроса от читателей, «А когда же выйдет ваша кросс-платформенная C/C++ IDE?». И вот сегодня, наконец, мы готовы сказать: Public Early Access Program началась!



Если коротко: тут — скачать, здесь — почитать ознакомительную инструкцию, а под катом — подробности.
Читать дальше →
Всего голосов 165: ↑163 и ↓2+161
Просмотры137K
Комментарии 268

Изгибаемые многогранники

Математика
Recovery mode
Посмотрим на многугольник с жесткими сторонами, в вершинах которого помещены шарниры. Если у него более трех вершин, то он может изгибаться — длины сторон далеко не однозначно определяют многоугольник. А что происходит с многогранниками в трехмерном пространстве? Если зафиксировать форму их граней, смогут ли они изгибаться?


Оказывается, что иногда могут, но это очень редкое свойство
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Просмотры17K
Комментарии 2

Задачи на собеседованиях в Яндексе

Блог компании ЯндексC++Алгоритмы
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Всего голосов 221: ↑178 и ↓43+135
Просмотры346K
Комментарии 329

Крупнейшая афера с Bitcoin происходит прямо сейчас

Информационная безопасность
Из песочницы
Одна из крупнейших афер в истории сети Bitcoin происходит прямо сейчас. 96000 BTC, а это почти сто миллионов долларов, по состоянию на текущий момент, было выведено со счетов клиентов, поставщиков и администраторов сайта SheepMarketplace (SMP) в минувшие выходные. SMP был одной из главных площадок, пришедших на замену SilkRoad, который был закрыт в октябре, а теперь, в результате этой аферы закрыт и сам SMP. Пока трудно точно утверждать, что именно происходит, но пользователи сайта пытаются разгадать эту головоломку на популярном сайте reddit.com в саб-реддите r/sheepmarketplace.

image

Вот что известно на данный момент: злоумышленнику (одиночке или группе людей) удалось подделать остатки средств на счетах пользователей, показывая, что у них были биткоины в собственных кошельках на сайте, в то время как на самом деле они уже были переведены. В течение недели весь сайт планомерно опустошался, так что к выходным, когда администрация сайта поняла, что что-то происходит, и закрыла площадку, со счетов пользователей было списано гигантское количество средств. И всё это произошло всего через несколько дней после того как другой конкурент SilkRoad — Black Market Reloaded — объявил, что завершает работу из-за неспособности вместить массовый приток новых пользователей, покидающих SheepMarketplace.
Читать дальше →
Всего голосов 293: ↑268 и ↓25+243
Просмотры307K
Комментарии 298

Поверхностно об основах рыночной архитектуры и алготрейдинге

Алгоритмы
Из песочницы
Tutorial
Многие знают, что одно из первых, что говорят в техническом ВУЗе — забыть все, что проходили в школе. Данная рекомендация актуальна и здесь. Полезно иногда с чистого листа начать.

На данный момент все рынки автоматизированы. По этой причине какие-то экономические объяснения ценообразования являются некими рудиментами. Рулят алгоритмы + некое ручное вмешательство.

Задача каждого торгового алгоритма всегда одна и та же — принести денег владельцу. Алгоритм тем лучше, чем больше денег он в состоянии принести.
Читать дальше →
Всего голосов 83: ↑72 и ↓11+61
Просмотры96K
Комментарии 74

Разбираем интерфейсные детали-ошибки на примере одного банковского клиента

ТипографикаUsability
Tutorial
Время изменилось. Теперь в одиночку можно написать приложение для миллионов человек. Не нужно думать ни о хостинге, ни о дистрибуции, ни о масштабируемости — облака сделают всё за вас.

Теперь один человек может влиять на миллионы. А значит, тем сильнее бремя ответственности за собственные действия и за выпускаемое качество. Метро в бедные послевоенные годы делалось таким помпезным и «дворцовым» не только ради хвастовства, а чтобы миллионы простых людей каждый день развивали вкус.

Стоит сейчас какому-нибудь «Энгри бёрдз» написать «2-е птицы», и все молодое поколение будет неправильно наращивать окончания у числительных (на самом деле, наращиваются только порядковые числительные: «2-й дом», «1-му победителю», но «2 птицы»).

Поэтому любой уважающий себя клиентский программист давно должен прочитать Тафти, Чихольда, Раскина и Мильчина. Даже если у вас есть дизайнер и редактор в компании. Потому что и он иногда может нести чушь (всё зависит от квалификации). Или, наоборот, чтобы правильно следовать гайдлайнам и продолжать развивать приложение в едином стиле.

Поговорим сегодня о внимании к деталям на одном практическом примере (будет много картинок).

Читать дальше →
Всего голосов 210: ↑157 и ↓53+104
Просмотры73K
Комментарии 183

Поиск решений в логических играх на примере гомоку

Алгоритмы
Из песочницы

Вступление


Вообще, речь пойдёт не о классической гомоку, а о русской вариации «пять в ряд». У вас есть листок бумаги в клеточку. Правила игры такие же, как в крестиках-ноликах. Отличие лишь в том, что необходимо выстроить линию из 5 элементов.

image

За такой нехитрой игрой мы прослушали не одну лекцию. Меня всегда раздражало, что моя блестящая стратегия разбивается о собственную невнимательность. Ну ничего, думал я, вот напишу программу, которая не будет делать ошибок, я тогда всем им покажу! Раз плюнуть! Пару циклов, правда, надо повозиться с пользовательским интерфейсом, но за пару вечеров управлюсь. С момента окончания института прошло 10 лет, а программу я всё ещё не написал.
Читать дальше
Всего голосов 40: ↑39 и ↓1+38
Просмотры40K
Комментарии 11

Что такое IT в крупном инвестиционном банке

Программирование


Поиграем в ассоциации. IT в громадном инвестиционном банке – что приходит на ум? Строгий контроль над процессом разработки? Куча умных людей, знающих чем фьючерсы отличаются от форвардов? Команды, с легкостью пишущие многопоточный и защищённый код? Или, может быть, месье – пессимист и думает, что «там все как у всех»?

Я последние четыре года проработал на банки. Один год на Credit Suisse, офшорно из России с командировками в Лондонский офис, и 3 года – на Citigroup, живя в Нью-Йорке. И вот что я вам скажу: IT в банках – это интеллектуальное гетто, со всеми своими минусами и…минусами. Там встречаются очень умные ребята, крутые команды, но их значительно меньше чем в среднем по индустрии, а основная же масса работников – это зомби, производящие очень плохой код и затем костыли и припарки к нему.

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

Читать дальше →
Всего голосов 116: ↑114 и ↓2+112
Просмотры70K
Комментарии 130

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность