Профиль пользователя заблокирован в режиме deactivate сроком с 5 января 2019 г. и навсегда по причине: см. п. 7.4. правил Сервиса
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (16)

Лучшие ответы пользователя

Все ответы (13)
  • Собираюсь учить С++, но какими знаниями надо обладать?

    @d0lph1n
    Почему-то в последнее время люди одержимы языками программирования, возносят их в абсолют, делают из них манну небесную, эдакую сакральную мудрость, особенно если речь заходит о C или C++. Для того, чтобы научиться программировать, не нужно знать ничего. Поэтому дерзайте - если Вы смогли осилить физику, осилить такую ерунду, как язык программирования, Вам труда не составит. :)

    UPD. Я, кстати, рекомендую Вам прочесть следующие книги и в следующей последовательности:
    1. "Доусон Майкл - C++ через программирование игр". Там, конечно же, не рассказывается, как в одно лицо создать "Кваку", но зато полно красивых и содержательных абстракций, которые не только упростят понимание, но и помогут по-настоящему полюбить язык.
    2. А после Доусона возьмите "Солтер - C++ для профессионалов". Именно после Доусона. Очень хорошая книга в хорошем переводе.

    После этих двух прочтите (погуглите) о современных стандартах: C++11, C++14, C++17. И все - Вы "сипипишник".
    Ответ написан
  • Знаете ли вы ещё подобные проекты?

    @d0lph1n
    Здравствуйте.

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

    А генетических алгоритмов много. Мне, к примеру, на университетских курсах повезло познакомиться только с тремя, и описанное мной ниже - это т.н. классический ГА:
    • вначале берется случайный набор чисел (популяция особей)
    • из контекста задачи выбирается функция проверки качества (фитнесс-функция, ее-то мы и оптимизируем)
    • числа "спариваются" с определенной вероятностью, часто в районе 0,7 (кроссинговером называется: можно, например, местами поменять старшие и младшие двоичные разряды),
    • появляются и мутируют "дети" с небольшой вероятностью (можно инвертировать один бит, например)
    • при помощи фитнесс-функции собранные вместе предки и потомки ранжируются (чем выше/ниже показатель фитнесс-функции, тем лучше/хуже или хуже/лучше особь)
    • по результатам ранжирования худшие особи отбрасываются

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

    Т.е. возможно, что автор ролика создал параметризуемую симуляцию на основе клеточных автоматов, и эти параметры он оптимизировал при помощи ГА. Задача не столько математическая или техническая, сколько "креативная". А это значит, что Вам, вероятно, будет интереснее разработать самому какой-нибудь комбайн на стыке ГА и клеточных алгоритмов, чем копаться в чужом, возможно, малопонятном коде.
    Ответ написан
  • По каким книжкам изучать математику?

    @d0lph1n
    Для того, чтобы изучить язык программирования, математика не нужна. Она нужна для того, чтобы применять ее в программировании в контексте конкретной задачи, которую перед вами ставят. И если Вы намерены быть программистом, послушайте дурака с шишками на лбу, сосредоточьтесь на школьной математике и подготовьтесь к ЕГЭ. Запишитесь на курсы подготовки или к репетитору.

    Поступите в хороший технический ВУЗ, и дальше университетский курс Вам даст все необходимое. Не нужно бежать впереди паровоза.

    UPD: И еще. Простых книг по математике, где все объясняется простым языком, нет и не будет. Математику нельзя изучить быстро и просто, как, например, художественную литературу. Там, где за час Вы прочтете 50 страниц художественного текста, продвинетесь на 1-2 страницы математической статьи, и это уже хорошо. Идеальный вариант изучать математику - изучать ее под чьим-то руководством. Вам там и объяснят, и помогут, и скроют от Вас те нюансы, которые на этапе введения не нужны и, вообще, будет чувство уверенности, потому что Вас поддерживает лектор. Если так хотите расширить школьный курс - дело полезное, но только не самостоятельно, потому что запутаетесь и опустите руки. Лучше запишитесь в какой-нибудь "кружок" или курсы (только не онлайн). У нас, к примеру, такие были, и, притом, бесплатно - только надо было вступительные испытания пройти.

    UPD2: mathprofi.com/blog/dostupnye_knigi_po_vysshey_mate...
    https://habr.com/post/346228/
    https://habr.com/post/427345/
    Ответ написан
  • Как конвертировать временой ряд в мультиграф?

    @d0lph1n
    Похоже, имеется в виду следующее.

    Предположим, у нас имеется временной ряд, где на шкале времени отложены значения [10 20 30 40 50].

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

    Т.е. сформировать полносвязный граф, в котором из вершины 10 можно попасть в 20, 30, 40, 50 - в каждую вершину за один переход по дуге, каждая пара вершин связана дугой. Аналогично для вершин 20, 30, 40 и 50.

    Плюс, каждой дуге будет присвоено какое-либо весовое значение.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (8)