Посты с метками "delphi"

Приложение для оптимизации распределения ресурсов

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

Распределение ресурсов

Данная программа предназначена для решения задач оптимизации распределения ресурсов при неполной информации с применением методов имитационного моделирования.

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

Кроме того, в программе реализовано:

  1. Сохранение и загрузка задач во внешний файл.
  2. Каждый эффект от вложения определенного количества ресурса в определенный пункт может быть как статическим так и случайной величиной, лежащей в определенном диапазоне и распределенной по выбранному закону распределения.
  3. Использование 5 различных законов распределения:
  • Равномерный
  • Нормальный
  • Экспоненциальный
  • Вид возрастающего треугольника
  • Вид убывающего треугольника
  1. Тестирование датчиков случайных чисел на тождественность теоретического закона ‑ эмпирическому, по критерию Колмогорова
  2. Проведение имитационного моделирования задачи с неполной информацией, при этом реализован вывод следующих данных:
  • График плотности распределения значений эффективности за последний этап итераций
  • График функции распределения значений эффективности за последний этап итераций
  • Оценка соответствия полученного распределения эффективностей нормальному закону,  по критерию Колмогорова
  • Вывод среднего значения эффективности за последний этап итераций
  • Вывод среднеквадратического отклонения от среднего за последний этап итераций
  • Вывод моды за последний этап итераций
  • Построение доверительного интервала
  • Вычисление вероятности попадания в доверительный интервал
  • Вывод уникальных,  перспективных вариантов решения задачи, попадающих в доверительный интервал
  • Построение графика стремления к устойчивому состоянию и указания 5% и 2% коридора
  • Проверка неравенства Чебышева и вычисления необходимого числа итераций от допустимой ошибки

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

Читать далее

Программа для классификации данных

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

cls_splash

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

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

Читать далее

Speech API 4. Работа с голосом

Эта статья об управлении параметрами чтения чтекстов в Delphi функциями SpeechAPI.

Надеюсь, что вы прочитали первую часть SpeechAPI в Delphi и статью MSAgent и SpeechAPI, поэтому перейду непосредственно к способу управления параметрами чтения. Я опишу общий способ управления, а затем рассмотрим разницу управления параметрами речи при чтении методом Speak у MSAgent и чтением функциями API напрямую.

Теги

Как пишут в буржуйской офицальной документации к Microsoft Speech API: SAPI поддерживает изменения речевого вывода через специальные теги,вставляемые в читаемую текстовую строку. Эти теги помогают изменять параметры голосового движка для улучшения трансляции текста в речь. Поддерживает теги не только речевые движки, но и MSAgent. Теги — это основной способ управления голосовыми возможностями речевого синтезатора. Например: \spd=100\ — этот тег изменяет скорость речи на значение равное 100. Вот некоторые правила синтаксиса для речевых тегов:

  • Все теги начинаются и заканчиваются символом наклонной черты влево (\).
  • Отдельный бэкслэш не допускается в пределах тэга. Чтобы включить бэкслэш в текстовый параметр тэга, используйте двойную наклонную черту влево (\\).
  • Теги воспринимаются без учета регистра. Например, \Spd=100\ — тот же самый что и \SPD=100\.
  • Теги пробеловосприимчивы, то есть не допускают в себе лишних пробелов. Например, \Rst\ — не тот же самый что и \ Rst \

MSAgent поддерживает следующие теги: Chr, Ctx, Emp, Lst, Map, Mrk, Pau, Pit, Rst, Spd, Vol. При чтении через SAPI этот набор немного шире. Теги создавались для корректировки преобразования текста в речь, но некоторые из них изменяют стиль голоса, например на шепот. Поэтому одни из них имеют параметры, а у других они отсутствуют, как у тега \Emp\. А теперь подробнее про
каждый из них!

Читать далее

Speech API 4 в Delphi

В этой статье мы познакомимся с программированием речи в Delphi. Хотите чтобы Delphi заговорил — читайте эту страницу!

MSAgent & SpeechAPI

Нудеюсь, что вы уже установили пакет функций Speech API и хотя бы один речевой движок. Речевые движки — это те модули, которые синтезируют речь. Для доступа к ним нужно использовать специальные функции, которые описаны в наборе функций Speech API. Поэтому для того, чтобы написать минимальную программу умеющую говорить, нужны эти два компонента. Сначала мы попробуем написать как раз эту программу-минимум а потом заставим персонаж MS Agent заговорить. То есть постараемся совместить технологию MSAgent и SpeechAPI. Тогда агент станет еще более приятным.

Ну, а для того чтобы всем эти заняться нам потребуется полезный модулек speech.pas, в котором объявлены полезные константы, типы, функции и интрефейсы. Не забудьте подключить его в разделе uses главного модуля приложения.

Читать далее

MSAgent в Delphi

Здесь я расскажу, то что знаю о технологии Microsoft Agent и Speech API. А в течении моего рассказа мы попробуем кое-что написать в Delphi! Естественно, это не будет суперполный рассказ, но, думаю, достаточный, чтобы начать использовать в приложениях Delphi технологию MS Agent и Speech API.

Итак, все что нам понадобиться можно найти в конец страницы. Для начала нужно иметь Microsoft Agent Control 2.0 и один или более персонажей.

MS Agent — это обычный активный элемент ActiveX. Этот компонент активно используется Microsoft в пакете MS Office. Да, MS Agent это та самая скрепка, кошка, собачка или кто там у вас… появляющаяся при загрузке приложений MS Office.

MSAgents

Если вы уже скачали и установили MS Agent v2.0, то приступим к установке его в среду Delphi, else goto page down.

Запустите Delphi, откройте меню Component и выберите Install ActiveX control… Попытайтесь найти в списке Microsoft Agent Control 2.0 (Version 2.0), если его там нет, то нажмите кнопку Add и найдите вручную файл Agentctl.dll. Теперь можно нажимать кнопку Install…

Читать далее