Посты с тэгом оптимизация


[Перевод] Оптимизация при помощи линейного поиска на Python

Линейный поиск — это алгоритм оптимизации, который может использоваться для целевых функций с одной или несколькими переменными. Он предоставляет возможность использовать алгоритм одномерной оптимизации, например поиск методом деления пополам (бисекции) для многомерной целевой функции, работая с линейным поиском для определения оптимального размера шага в каждом измерении от известной точки до оптимума. Мы уже делились переводами Джейсона Браунли, например статьёй о смешанных ансамблях, а в этом учебном руководстве, которое мы перевели к старту курса о машинном и глубоком обучении, рассказывается об основах: вы узнаете, как на Python с помощью линейного поиска выполнить оптимизацию.



В поисках упорядоченного множества в Python: разбираемся с теорией и выбираем лучшую реализацию


Множество (Set) — структура данных, которая позволяет достаточно быстро (в зависимости от реализации) применить операции add, erase и is_in_set. Но иногда этого не достаточно: например, невозможно перебрать все элементы в порядке возрастания, получить следующий / предыдущий по величине или быстро узнать, сколько элементов меньше данного есть в множестве. В таких случаях приходится использовать Упорядоченное множество (ordered_set). О том, как оно работает, и какие реализации есть для питона — далее.

Читать дальше →


Pythonnet. Как запустить C# код из Python

На сегодняшний день Python является одним из самых популярных языков программирования, но даже это ему не помогает покрыть все потребности программистов. Самый очевидный минус чистого CPython - это его скорость, поэтому некоторые программисты выбирают для своих задач другие языки программирования, а кто-то просто реализует узкие места на C/C++.

Однако бывают случаи, когда есть какая-то база кода, написанного на C#, а возможности быстро переписать всё на Python/C/C++ нет. Тогда встает вопрос “как подключить C# к Python”. Для этого была разработана библиотека pythonnet. В этой статье разберем: как запустить C# код на Python и что из этого может получиться.

Ознакомиться


Python & оптимизация времени и памяти

Зачастую скорость выполнения python оставляет желать лучшего. Некоторые отказываются от использования python именно по этой причине, но существует несколько способов оптимизировать код python как по времени, так и по используемой памяти. 

Хотелось бы поделиться несколькими методами, которые помогают в реальных задачах.

Изучить статью


Оптимизация инвестиционного портфеля по методу Марковица

Есть много реализаций данного метода. В том числе и на Python. Реализовал еще раз (см. ссылка на GitHub). Можно использовать как заготовку программного кода.

Конечно приведем стандартную диаграмму облака сгенерированных портфелей.



Читать дальше →



Как выбрать лучший инструмент автоматизации для вашей работы в Revit. Дизайнеры против программистов

Новые средства автоматизации выводят планирование на новый уровень развития.

Какой инструмент позволит нам сэкономить тысячи часов за счет автоматизации процессов BIM в Revit?


На данный момент у нас есть 4 варианта автоматизации Revit:



  • Dynamo (графическое программирование с открытым исходным кодом)
  • Rhino.Inside (бета-версия, с Кузнечиком это как Динамо)
  • PythonShell или pyRevit (Python с Revit API)
  • C # (C # с Revit API)


На графике я собрал свои мысли на эту тему:



Эта диаграмма может помочь вам объяснить менеджерам, в каких случаях, что нужно применять и какова ценность каждого из инструментов.


[Из песочницы] Генетический алгоритм на Python для поиска глобальных экстремумов

Предыстория


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



И поэтому я решил написать свой небольшой пакет на Python с наглядной визуализацией алгоритма, по которой будет удобно настраивать этот алгоритм и искать тонкости выбранной модели.

В этой небольшой статье я хотел бы поделиться процессом, наблюдениями и итогами.
Читать дальше →


[Перевод] Реализуем преобразования кода на Python

Привет, Хабр.

Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.
Читать дальше →



Python v3.x: как увеличить скорость декоратора без регистрации и смс

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



[Перевод] Что я узнал про оптимизацию в Python

Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали!



Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, тестирования и инструмента CI. Mercurial также в основном написан на Python. Множество своих сторонних проектов я тоже писал на нем.

Во время своей работы я получил немного знаний о производительности Python и о его средствах оптимизации. В этой статье мне хотелось бы поделиться этими знаниями.

Мой опыт с Python в основном связан с интерпретатором CPython, в особенности CPython 2.7. Не все мои наблюдения универсальны для всех дистрибутивов Python или же для тех, которые имеют одинаковые характеристики в сходных версиях Python. Я постараюсь упоминать об этом во врем