Снижение сложности вычислений при операциях с векторами и матрицами

Автор: admin от 26-03-2018, 11:00, посмотрело: 75

Введение



Ввиду того, что при решении задач оптимизации, дифференциальных игр, и в 2D и 3D расчётах, а вернее при написании софта, который проводит вычисления для их решения одними из наиболее часто выполняемых операций являются векторно-матричные преобразования типа Снижение сложности вычислений при операциях с векторами и матрицами, где Снижение сложности вычислений при операциях с векторами и матрицами — скалярные значения, Снижение сложности вычислений при операциях с векторами и матрицами — вектора или матрицы размерности Снижение сложности вычислений при операциях с векторами и матрицами.



Собственно вот такие:



Снижение сложности вычислений при операциях с векторами и матрицами

(источник).



Так, чтобы не углубляться в теорию оптимизации за примерами достаточно вспомнить формулу численного интегрирования Рунге-Кутты четвёртого порядка:



Снижение сложности вычислений при операциях с векторами и матрицами



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



Как можно заметить основную массу математических операций как для векторов, так и для матриц составляют:




  • сложение и вычитание — более быстрые;

  • умножение и деление — более медленные.



О сложности вычислений хорошо написано в соответствующем курсе МФТИ.



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



Соответственно есть смысл заняться снижением количества операций привносящих наибольшую сложность — умножения (математика) и операции управления памятью (алгоритмика).

Категория: Операционные системы » Linux

 

FastReport.Mono. Часть 1: Запуск демонстрационного Web-отчета

Автор: admin от 26-03-2018, 11:00, посмотрело: 95

В связи с тем, что официальная документация FastReport.Mono устарела, и даже не понятно к какой версии дистрибутива Debian она относится (могу предположить, что к 6 или младше), решил написать более-менее вменяемую инструкцию по установке демонстрационного Web-интерфейса для просмотра отчетов.



Проблема возникла из-за маячащей перспективы переезда одного из проектов, где использовался FastReport.Net, с Windows + Oracle на Linux + PostgreSQL. Кроме того, заинтересовала возможность реализации всего в виде микросервисов в контейнерах Docker. Увы — «гладко было на бумаге, да забыли про овраги»: пришлось столкнутся с рядом нюансов, которые постараюсь более-менее подробно описать и предложить возможные варианты решения проблем.



В процессе делал заметки-напоминалки для себя в wiki проекта, и лишь потом попытался все систематизировать. В итоге получилось много текста, публикацию попробую разделить, ориентировочно, на три части:




  • Запуск демо-отчета

  • Использование FastReport в контейнерах Docker

  • Подключение к БД



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

Категория: Операционные системы » Linux

 

Архитектура приложения на Akili framework

Автор: admin от 24-03-2018, 20:20, посмотрело: 107

Архитектура приложения на Akili framework


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

Категория: Операционные системы » Linux

 

«Из Японии в Сингапур»: новый подводный кабель пройдет через 9 стран Азии

Автор: admin от 24-03-2018, 20:20, посмотрело: 151

Консорциум Southeast Asia-Japan 2 подписал соглашение с японским производителем телекоммуникационного оборудования NEC Corporation на прокладку подводного кабеля SJC2 с пропускной способностью 144 Тбит/с. Кабель соединит девять стран.



О подробностях проекта далее.



«Из Японии в Сингапур»: новый подводный кабель пройдет через 9 стран Азии

Категория: Операционные системы » Linux

 

Марвин Мински «The Emotion Machine»: Глава 2 «Отпечатыватели»

Автор: admin от 24-03-2018, 20:20, посмотрело: 127

Марвин Мински «The Emotion Machine»: Глава 2 «Отпечатыватели»




§ 2-3 Отпечатыватели (Imprimers)

“Сейчас, стыд является ментальной мерой позора, в которой мы сжимаемся от осознания позора, а не от последствий действий, и нам остается только предполагать, какое составляется о нас мнение, из этого следует, что люди, перед которыми мы чувствуем стыд- это те, чье мнение имеет для нас значение. Эти люди являются: те, кем мы восхищаемся; те, кто восхищается нами; те, восхищение которых мы желаем добиться; те, с которыми мы противоборствуем; и те, чье мнение мы уважаем.”

— Аристотель в Риторике 2,6
Наш язык имеет огромное количество слов для описания нашего эмоционального состояния. Когда мы описывали игру Кэрол с грязью, мы уже должны были использовать целую дюжину: влечение, смятение, тревогу, самоуверенность, разочарованность, беспокойство, фрустрацию, страх, склонность, удовольствие, гордость, удовлетворение, стыд и печаль.



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



Студент: Вы уже начали обсуждать, что она должна иметь что-то вроде “связующих элементов”, которые заставляют её реагировать подобным специфическим образом — прямо как говорил Аристотель, из-за беспокойства её матери. Но это никак не объясняет почему одна только похвала не может сделать цель желанной, а это зависит от, ммм…, я не могу придумать правильное слово для описания этого — “человека к которому она привязана”?

Категория: Операционные системы » Linux

 

Установка Debian с корнем на шифрованном ZFS зеркале

Автор: admin от 24-03-2018, 20:20, посмотрело: 188

Установка Debian с корнем на шифрованном ZFS зеркале


Предисловие


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


Для решения этой проблемы, я начал строить свой NAS, который даст мне, ко всему прочему, дополнительные возможности.


Изучив, какие сейчас имеются ОС для решения данной задачи, я пришёл к выводу, что изо всего многообразия, наиболее развиты, широко используемы и, следовательно, проработаны, FreeNAS на основе FreeBSD и OpenMediaVault на основе Debian, созданный одним из разработчиков FreeNAS.


FreeNAS стабилен, удобен, гибок и вообще хорош, но попытавшись его поставить, вместо FreeBSD bsdinstall, я увидел совершенно урезанный инсталлятор, в котором я могу только выбрать диски и ввести пароль root: даже разметить диски нельзя.
GELI мне понравился больше cryptsetup на Linux, как и BSD-шный parted.
Попытавшись сделать root на шифрованном разделе, я понял, что эта задача нетривиальна, несмотря на то, что они уже используют root на ZFS.
Затем, пообщавшись, с сообществом FreeNAS, которые стали доказывать, что FreeNAS — не ОС, а приложение, я решил установить OMV.


К тому же, Debian — моя основная ОС и с Linux дела обещали быть проще...


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

Категория: Операционные системы » Linux

 

Документирование API — документация из тестов

Автор: admin от 21-03-2018, 06:45, посмотрело: 141

Пост в продолжение темы экспериментальных решений (https://habrahabr.ru/post/350382/), откуда будет переиспользован код для примера. В прошлом посте я затронул тему, как можно написать тесты на простой сервис, когда он выступает в роли черного ящика и из кода теста у нас нет прямого доступа к коду тестируемой программы. Ещё раз остановлюсь на том, что тестируемый сервис был реализован на языке Go, а тесты к сервису на языке Ruby и фрэймворке для тестирования RSpec. Стэк был выбран из собственных предпочтений и не имеет ключевого значения к рассматриваемой теме. В этой статье хочу рассмотреть вопрос документирования API, вновь используя не совсем стандартное решение.

Категория: Операционные системы » Linux

 

Ускоряем время сборки и доставки java web приложения

Автор: admin от 21-03-2018, 06:45, посмотрело: 88

TLTD



  • удалил jar из сборки проекта

  • заменил его таском, который быстрее в 7 раз


  • Ускоряем время сборки и доставки java web приложения


    Детали и результат под катом.

    Категория: Операционные системы » Linux

     

    Паттерны проектирования в Cocos2d-x

    Автор: admin от 21-03-2018, 06:45, посмотрело: 109

    Привет, Хабр! Представляю вашем вниманию перевод статьи "Design Patterns in Cocos2d-x" автора Aleksei Pinchuk.



    Статья будет интересна для разработчиков Cocos2d-x и тех, кто изучает паттерны. Она выполнена в форме краткого конспекта, в котором можно быстро посмотреть где применяется тот или иной паттерн в Cocos2d-x. Целью статьи не является полное описание каждого паттерна.

    Категория: Операционные системы » Linux

     

    Neoquest 2018: «Дирижабль? Ага!»

    Автор: admin от 21-03-2018, 06:45, посмотрело: 160

    Neoquest 2018: «Дирижабль? Ага!»Недавно закончился CTF NeoQuest 2018. Под катом разбор второй части задания про дирижабль, ZeroNet, регистр сдвига с обратной связью и систему линейных уравнений.

    Категория: Операционные системы » Linux