Методика проекционного моделирования

Методика моделирования


Проекции поверхности в 3-Д пространстве на три проекционные плоскости позволяют инженеру представить моделируемый объект, будь то деталь или конструкция. Для этого надо соотнести точки на чертеже с точками в пространстве. Этому умению обучают на уроках начертательной геометрии. Но полученное в результате этого представление о поверхности ничего не говорит инженеру ни о том, из чего сделан объект, ни о его свойствах. Чтобы представить деталь, поверхность надо трактовать (интерпретировать). Для этого нужно знать стандарты, выработанные в специальных областях деятельности. Только, если чертеж выполнен в соответствии с этими стандартами, его смогут прочитать и однозначно трактовать другие специалисты. Эти стандарты не относятся к предмету начертательной геометрии, они относятся к таким областям знаний, как архитектура, машиностроение, технология обработки материалов. Поэтому первое, что надо научиться делать, это разделять проекции и трактовку проецируемого объекта.


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

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

Проекционное моделирование. Тезисы для начинающих

Введение


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


  1. Модели должны быть масштабируемы. Это значит, что любой объект может стать частью синтезированного объекта (результат процесса синтеза), или быть разделенным на части (результат процесса анализа). При этом синтез и анализ можно делать разными способами. Это значит, что один и тот же объект может стать частью разных конструкций, или объект может быть поделен на части множеством способов.
  2. Один и тот же объект может быть назван разными субъектами по-разному. ИС должна поддерживать возможность моделировать представлений воображаемого или реального мира с разных точек зрения.
  3. Модели должны удовлетворять условию расширяемости. Это значит, что любая модель может быть продолжена тем же, или другим субъектом в любую сторону с учетом смены точки зрения.
  4. Модели должны удовлетворять принципу антропоцентричности. То есть, нельзя придумывать представления, отличные от тех, к которым привык человек. То есть, мы не рассматриваем представления, созданные искусственным интеллектом и языки, созданные им для описания этих представлений.
Читать дальше →

Новогодний датасет: открытая семантика русского языка

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

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

Генерация коротких текстов с ограничивающими условиями — для рекламы и других целей

На практике нередко встречается задача не просто написать какой-то текст, а выполнить некоторые условия — например уложить максимум ключевых слов в заданную длину и/или использовать/не использовать определенные слова и словосочетания. Это бывает важно для бизнеса (при составление рекламных объявлений, в том числе, для контекстной рекламы, при SEO-оптимизации сайтов), для образовательных целей (автоматическое составление тестовых вопросов) и в ряде других случаев. Такие задачи оптимизации вызывают много головной боли, т. к. людям относительно легко сочинять тексты, но при этом не так просто написать что-то отвечающее тем или иным критериям «оптимальности». С другой стороны, компьютеры отлично справляются с задачами оптимизации в других областях, но плохо понимают естественный язык, и поэтому им трудно сочинять текст. В данной статье, рассмотрим известные подходы к решению этой задачи и немного поделимся собственным опытом.



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

Типы моделей

Правильно заданный вопрос быстро приводит к правильному ответу. Недавно меня спросили: «Почему стандарты бизнес-анализа сконцентрированы на выявлении требований, но ничего не говорят о превращении этих требований в решение?» В самом начале своей карьеры аналитика я искал ответ на вопрос: как анализировать предметную область и как превращать результат анализа в структуру модели: откуда брать классы, атрибуты и методы? Тогда я нашел один более-менее вразумительный метод, описанный в книге Крега Лармана Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. Аналитику предлагалось прохождение по тексту с маркерами разных цветов: Красный выделяет существительные и является основанием для создания классов, зеленый — прилагательные, причастия и проч. — основа для создания атрибутов этих классов. И глаголы выделяются синим — основа для создания методов.

Однако, в реальности этот метод не работал. Один и тот же факт я мог смоделировать при помощи класса, значения атрибута или метода в зависимости от своего желания. Об этом написано подробно у Крисса Партриджа в книге Business Objects: Re-Engineering for Re-Use.
Читать дальше →

Нейронные сети, генетические алгоритмы и прочее… Мифы и реальность. Версия II

Прежде всего, я хотел бы поблагодарить всех, кто дал свои критические комментарии по первой версии статьи. Мне показалось, что написать версию два, а не просто оставить все как есть, было бы правильной идеей.   Конечно же, искусственный интеллект уже существует!  Если посмотреть заголовки статей в популярных СМИ, названия и слоганы различных научных конференций на эту тему – безусловно это так. Нельзя не поверить, особенно когда очень этого хочется наконец-то оказаться в XXI веке — «настоящем», как это описывалось во всех научно-фантастических романах. Но так ли это? А если нет, то что существует на самом деле. В попытке разобраться в мифах и реалиях была написана эта статья.   Первоначально хотелось начать как-то так: «впервые упоминание термина «Искусственный интеллект» появилось у Д. Мккарти в 1956 году на конференции в Дартмундском университете, основоположниками ИИ следует считать У.Мак-Каллока, У.Питса, Ф.Розенблата» и т.д. Однако, это уже слишком поздно и не совсем отвечает целям статьи, да и википедия опередила с таким началом. Анализируя последние «победы» ИИ, а также критические статьи неизбежно приходишь к выводу, что все крутится вокруг нескольких общих особенностей. Одна часть статей критикует невозможность прохождения тестов, а другая полна патетики о «невероятных победах».  При этом игнорируется тот факт, что победы были достигнуты в узкоспециализированных задачах, где основным преимуществом машины была скорость переборов по базе фактов и «умении» видеть закономерности там, где человек просто-напросто быстро устает это делать. Блестящие примеры кластерного анализа в том или ином виде и формирование базы шаблонов-фактов. Всё это следствия, причины же в большинстве случаев или не анализируются совсем, или рассматриваются поверхностно....Далее...

Как давать определения?

Есть определенные правила, которые необходимо соблюдать, когда мы даем определение понятию. Я познакомился с этими правилами давно. Спасибо отцу! Когда-то он подарил мне книгу Сахарного Л.В. Как устроен наш язык. Книга написана для детей и потому очень понятна и проста:

Поскольку как аналитики мы вынуждены давать определения постоянно, неплохо было вспомнить эти правила.

Почему я так серьезно рассматриваю тему определений? Потому что регулярно встречаю определения, пользоваться которыми на практике невозможно. И тенденции к улучшению я не вижу. Для начала разберем термин процесс по аналогии с тем, как в прошлой статье мы разобрали термин система.
Читать дальше →

Классификация конструкций: примеры и заблуждения

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

Термины


Начнем с термина «есть часть». В быту мы встречаем следующие высказывания: слоны – есть часть млекопитающих. Речь идет о том, что множество слонов есть подмножество множества млекопитающих. В этой статье термин «есть часть» будет употребляться в другом смысле. Мы будем употреблять этот термин только в отношении конкретных объектов. Например, конкретная ветка дерева – есть часть конкретного дерева. При этом не надо думать, что речь идет о любой ветке дерева, как тогда, когда мы даем определение понятию: ветка дерева – есть часть дерева. В терминах матлогики это утверждение читается так: для любой ветки дерева найдется такое дерево, что данная ветка есть часть этого дерева. Такое утверждение относится уже не к конкретному объекту, а к понятию, определяющему объекты. Если в статье понадобиться сказать так, я скажу явно. В противном случае я буду говорить о конкретных объектах.

Следующий термин «включает в себя». Если я говорю, что дерево включает в себя ветку, то это значит, что конкретная ветка – это часть конкретного дерева. И речь по-прежнему идет о конкретных объектах, а не о множествах или понятиях.
Читать дальше →

[Перевод] TypeScript в Slack

Или как мы перестали беспокоиться и научились доверять компилятору

Когда Брендан Эйх создал самую первую версию JavaScript для Netscape Navigator 2.0 всего за десять дней, вряд ли он ожидал, в какой степени Slack Desktop App будет использовать его изобретение. Мы используем только кодовую базу JavaScript для многопоточного десктопного приложения, которое постоянно взаимодействует с нативным кодом и работает под Windows, macOS и Linux. Управлять большими кодовыми базами JavaScript непросто. Всякий раз, когда мы мимоходом передаём объекты из JavaScript браузера Chrome в Objective-C, чтобы просто получить обратный вызов через другой поток на Node.js, нужна гарантия, что все кусочки складываются вместе. В десктопном мире маленькая ошибка может привести к сбою приложения. С этой целью мы внедрили TypeScript (статически типизированное надмножество JavaScript) и быстро поняли, как жить без волнений и с любовью к компилятору. И не только мы: опрос разработчиков на Stack Overflow показывает, что TypeScript является третьей самой любимой технологией программирования. Учитывая, насколько быстро статическая проверка типов набирает ход, мы хотим поделиться нашим опытом и методиками....Далее...

[Перевод] Зачем использовать статические типы в JavaScript? (Преимущества и недостатки)

Мы о многом рассказали в первой части! Когда с синтаксисом покончено, давайте наконец перейдём к самому интересному: изучению преимуществ и недостатков использования статических типов.

Преимущество № 1: Вы можете заблаговременно находить баги и ошибки


Статическая проверка типов позволяет проверять, что определённый нами инвариант принимает значение true даже не запуская программу. И если имеется какое-то нарушение этих инвариантов, оно будет обнаружено перед запуском программы, а не во время её работы.

Небольшой пример: предположим, что у нас небольшая функция, которая берёт радиус и вычисляет площадь:

const calculateArea = (radius) => 3.14 * radius * radius;

var area = calculateArea(3);
// 28.26

Теперь если мы захотим передать функции радиус, который не является числом (типа «злоумышленник»)…

var area = calculateArea('im evil');
// NaN

Нам вернётся NaN. Если какая-то функциональность основана на том, что функция calculateArea всегда возвращает число, то это приведёт к уязвимости или сбою. Не очень приятно, правда?
Читать дальше →
  • Новее
  • 1


Последние посты