Вход

Реорганизация схемы управления и оптимизация сегмента сети передачи данных

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 118980
Дата создания 2010
Страниц 106
Источников 30
Мы сможем обработать ваш заказ (!) 20 мая в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
6 740руб.
КУПИТЬ

Содержание

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
I АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1.Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ»
1.1.1.Характеристика предприятия и его деятельности
1.1.2.Организационная структура управления предприятием
1.1.3.Программная и техническая архитектура ИС предприятия
1.2.Характеристика комплекса задач, задачи и обоснование необходимости автоматизации
1.2.1.Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов
1.2.2.Определение места проектируемой задачи в комплексе задач и ее описание
1.2.3.Обоснование необходимости использования вычислительной техники для решения задачи
1.2.4.Анализ системы обеспечения информационной безопасности и защиты информации
1.3.Анализ существующих разработок и выбор стратегии автоматизации «КАК ДОЛЖНО БЫТЬ»
1.3.1.Анализ существующих разработок для автоматизации задачи
1.3.2.Выбор и обоснование стратегии автоматизации задачи
1.4.Обоснование проектных решений
1.4.1.Обоснование проектных решений по техническому обеспечению
1.4.2.Обоснование проектных решений по информационному обеспечению
1.4.3.Обоснование проектных решений по программному обеспечению
II ПРОЕКТНАЯ ЧАСТЬ
2.1.Разработка проекта автоматизации
2.1.1.Этапы жизненного цикла проекта автоматизации
2.1.2.Ожидаемые риски на этапах жизненного цикла и их описание
2.1.3.Организационно-правовые и программно-аппаратные средства обеспечения информационной безопасности и защиты информации
2.2.Информационное обеспечение задачи
2.2.1.Информационная модель и её описание
2.2.2.Используемые классификаторы и системы кодирования
2.2.3.Характеристика нормативно-справочной, входной и оперативной информации
2.2.4.Характеристика результатной информации
2.2.5.Формализация расчётов показателей
2.3.Программное обеспечение задачи
2.3.1.Общие положения (дерево функций и сценарий диалога)
2.3.2.Структурная схема пакета (дерево вызова программных модулей)
2.3.3.Описание программных модулей
2.4.Контрольный пример реализации проекта и его описание
III ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
3.1 Выбор и обоснование методики расчёта экономической эффективности
3.2. Расчет показателей экономической эффективности проекта
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ

Фрагмент работы для ознакомления

Рис. 5. Основные формы программы.

Рис. 6. Перечень основных классов, используемых в программе.
Описание программных модулей
Программу Optimization будем называть приложением с однооконным интерфейсом (SDI). Это означает, что в данный момент времени в ней может отображаться только один документ. Когда мастер создаёт приложение SDI, он порождает четыре главных класса:
- класс документа;
- класс представления (view);
- класс главного окна;
- класс приложения;
Исходные задачи программы распределяются по этим четырём главным классам, и мастер создаёт четыре отдельных исходных файла для каждого из них. По умолчанию он порождает имена классов и исходных файлов по имени проекта.
Класс документа в Optimization называется COptimizationDoc. Он порождается из класса CDocument библиотеки MFC. Заголовочный файл COptimizationDoc имеет имя COptimizationDoc.h, а имя файла реализации - COptimizationDoc.cpp. Класс документа отвечает за хранение данных программы и за чтение и запись данных на диск. Класс представления в Optimization называется COptimizationView и порождается от MFC-класса Cview. Заголовочный файл COptimizationView называется COptimizationView.h, а имя файла реализации - COptimization.cpp. Класс представления отвечает за отображение данных программы (на экране, на принтере, или другом устройстве) и за обработку информации, вводимой пользователем.
Этот класс управляет окном представления (view window), которое используется для отображения данных программы на экране. Класс представления в Optimization просто отображает строку сообщения внутри окна представления.
Класс главного окна в Optimization называется CMainFraim и порождается от MFC-класса CFrameWnd. Заголовочный файл CMainFrame называется MainFrm.h, а имя файла реализации - MainFrm.cpp. Класс главного окна управляет главным окном программы, которое является обрамляющим окном и содержит рамку окна, строку заголовка, строку меню и системное меню. Обрамляющее окно также содержит кнопки Minimize, Maximize, Close, а иногда и другие элементы пользовательского интерфейса, например, панель инструментов, строку состояния. Окно представления, управляемое классом представления, занимает внутри обрамляющего окна пустую область, которая называется клиентской областью главного окна. Окно представления не имеет видимых элементов, кроме текста и графики, отображающейся явно. Окно представления - дочернее окно главного окна, поэтому оно всегда отображается поверх и внутри границ рабочей области главного окна.
Наконец, класс приложения назван COptimizationApp и порожден из MFC-класса CWinApp. Файл заголовков класса COptimizationApp назван Optimization.h, а файл реализации - Optimization.cpp. Класс приложения управляет программой в целом. Это значит, что он выполняет общие задачи, не относящиеся к каким-либо другим трём классам (например, инициализацию программы и её заключительную очистку). Каждая MFC-программа должна создать в точности один экземпляр класса, порождённого из класса CWinApp. Четыре главных класса обращаются друг к другу и обмениваются данными, вызывая открытые функции-члены другого класса и посылая сообщения.
Контрольный пример реализации проекта и его описание
Разработаем план оптимизации использования средств защиты для МП «Учебный центр». Скорректируем условие задачи, поставленной выше (в п. 3.1), и проведем ее решение.
Итак, предполагается, что возможны 3 вида сетевых атак: сканирование портов, нелегальные изменения файловой системы, анонимный доступ в систему, для каждого вида атаки применяются средства защиты: фильтр IP-пакетов IP Filter, программа Tripwire и ConSeal Personal Firewall с вероятностью отражения атаки соответственно р1=0,84, р2=0,92, р3=0,94.
При использовании данных средств защиты вероятности потерь пакетов SNMP для одного концентратора соответственно составят в среднем 0,0025, 0,0175, 0,0035; вероятности сбоев соответственно равны b1=0,009, b2=0,045, b3=0,025.
(Пояснение. Использованы сведения с сайтов www.tripwire.com, www.ipfilter.org, www.consealfirewalll.com).
Предполагаем, что вероятность сбоев в сети зависит от применяемых средств защиты и не зависит от конфигурации сети.
Необходимо определить распределение вероятностей использования имеющихся средств защиты так, чтобы:
1. математическое ожидание вероятности потери пакетов SNMP было минимальным;
2. суммарная эффективность средств защиты должна быть не меньше фиксированного значения - c=0,1
(Под суммарной эффективностью понимается вероятность отражения средствами защиты произвольной атаки).
3. математическое ожидание вероятности сбоев не должно превышать фиксированного значения - b=0,02.
Решение.
Определим коэффициент, определяющий максимально возможную относительную величину потерь пакетов SNMP, для данной конфигурации локальной сети. Зададим веса потерь для каждого концентратора. Пусть вес потери для каждого концентратора равен 1.
Изобразим схематически расположение концентраторов в сети (рис. 2).
Рис. 2. Схема расположения концентраторов.
Цепь с началом в вершине 3ComFM, имеющая наибольшую длину, содержит 4 концентратора. Таким образом, коэффициент, определяющий максимально возможную относительную величину потерь пакетов SNMP, для данной конфигурации локальной сети равен 4.
Учитывая приведенные выше рассуждения для данной локальной сети а1=0,01, а2=0,07, а3=0,014.
Решение задачи сводится к нахождению решения системы ограничений (см. 1.2.2)
x1+x2+x3+x4+x5+x6+x7=1
b1 . x1+ b2 . x2+ b3 . x3+ (b1+b2 –b1b2)x4 + (b1+b3 – b1b3)x5 + (b2+b3 – b2b3)x6 + (b1+b2+b3-b1b2 - b1b3 - b2b3+b1b2b3)x7 ( b
0,33 . p1 . x1 + 0,33 . p2 . x2 + 0,33 . p3 . x3 ( c,
хj ( 0, j = 1, …, 7,
при котором значение функции
F(X) = a1 . x1+ a2 . x2+ a3 . x3+ (a1+a2 –a1a2)x4 + (a1+a3 – a1a3)x5 + (a2+a3 – a2a3)x6 + (a1+a2+a3-a1a2 - a1a3 - a2a3+a1a2a3)x7
будет минимальным.
Для данных условий получим
x1+x2+x3+x4+x5+x6+x7=1
0,009 x1+ 0,045x2+ 0,025x3+ 0,054x4 + 0,034 x5 + 0,069x6 + 0,077x7 ( 0,02
0,28 . x1 + 0,31. x2 + 0,31 . x3 ( 0,1
хj ( 0, j = 1, …, 7,
F(X) = 0,01. x1+ 0,07. x2+ 0,014. x3+ 0,079x4 + 0,024x5 + 0,083x6 + 0,092x7.
Разработанное программное средство позволяет вычислить оптимальный план для данных условий.
Оптимальный план представляет собой переменные, соответствующие столбцам базисного минора. То есть эти переменные х3, х9 и z1, и они равны соответственно 0.8, 0.148, 0.2 .
Переменные x9 и z1 являются искусственными. Таким образом, можно сформулировать полученный оптимальный план: необходимо пользоваться третьим средством защиты с вероятностью 0,8, при этом математическое ожидание вероятности потери пакетов составит 0,20, что является достаточным неплохим результатом.
Другими словами, найдено оптимальное распределение вероятностей использования средств защиты: для того, чтобы потери пакетов SNMP были минимальными, при суммарной эффективности средств защиты не менее 0,1 и математическим ожиданием вероятности сбоев не более 0,2; необходимо с вероятностью 0,8 использовать брандмауэр ConSeal Personal Firewall. При этом математическое ожидание вероятности потери пакетов составит 0,20.
Совместное использование нескольких средств защиты в данных условиях представляется не эффективным.

III ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
3.1 Выбор и обоснование методики расчёта экономической эффективности
Основной задачей данного проекта является разработка, установка и наладка соответствующего программного обеспечения, а так же обучение персонала работе с программой.
Целесообразность реализации данного проекта обусловлена следующими факторами: Организация эффективного использования сетевых ресурсов, поддержание работоспособности сети, ее развитие и совершенствование - ответственная, трудоемкая и сложная задача.
В работе поставлена и решена задача разработки программного средства для оптимизации процесса обеспечения информационной безопасности предприятия малого бизнеса МП «Учебный центр».
Порядок организации и примерная стоимость работ по внедрению данного программного продукта приведены в таблице 3.1.
Таблица 3.1. Организационный план проекта.
Название работы Описание работы Длительность, раб. дней Сумма инвестиций, долл. США Определение источников финансирования Обеспечение финансирования из имеющихся средств 10 0 Приобретение и установка ПО Покупка ПО, расширение материально - технической базы 10 2100 Обучение персонала Обучение работников работе с программой 15 200 Наладка ПО Настройка ПО, в соответствии со спецификой предприятия, устранение неполадок 15 200 Итого 50 2500
В основу прогнозирования финансовых потоков, возникающих в процессе реализации проекта и оценке его экономической эффективности были приняты ниже следующие положения [24].
Стоимость инвестиций в настоящий проект составляет 2500 у.е. Эта сумма включает затраты на оснащение трех рабочих мест, приобретение и установку ПП, обучение персонала и наладку. Источник финансирования – собственные средства предприятия.
Виды налогов, учтенные при финансовом моделировании данного проекта, их ставки, принципы определения налогооблагаемой базы и периодичность выплат приняты в соответствии с действующим в РФ налоговым законодательством.
С целью упрощения модели расчеты производились без учета налога с продаж при условии уменьшения выручки на его величину, НДС принимается равным 20%.
Период моделирования принят равным одному году. Шаг расчетов принят за 1 месяц.
Все расчеты проведены в у.е. В качестве основной валюты при оценке экономической эффективности так же принят у.е.
Норма амортизационных отчислений на полное восстановление основных фондов принята равной 5%.
Необходимо учесть, что текущее финансовое состояние, определяемое балансом на дату старта проекта, может оказывать прямое влияние на величину и направление денежных потоков, что соответственно может уменьшить или увеличить потребность в финансировании.
3.2. Расчет показателей экономической эффективности проекта
В соответствии с бюджетом проекта необходимо рассчитать следующие показатели:
ВР = On * Ц, где
ВР - выручка от реализации;
Ц - цена реализации продукции;
On - объём продаж;
ПИ = On * Cm, где
ПИ - прямые издержки;
Сm - стоимость затрат на единицу продукции
Зпл = Зплср * Числ, где
Зпл - заработная плата персонала (суммарная);
Зплср - средняя заработная плата;
Числ - численность персонала предприятия.
Пз = ПИ + ОИ + Зпл, где
Пз - Затраты на производство.
А = И * 0,05, где
И - стоимость имущества;
А - амортизационные отчисления;
Н = НП + НИ + НДС + НС + НПад, где
Н - налоговые выплаты.
НДС = ВР - Пз - НДС по приобретённым о/с
НП - налог на прибыль, 24%.
НП =
НИ =
НИ - налог на имущество, 2% от стоимости имущества,
И - стоимость имущества предприятия,
НС - единый социальный налог, 35,6% фонда оплаты труда, (28% - пенсионный фонд, 3,6% - фонд обязательного медицинского страхования, 4% - фонд социального страхования).
НП = ,
НПад - налог на пользователей автодорог, 1% от валового дохода,
НС = ,
ВД - валовой доход,
ВД = ВР - ПИ
БП - балансовая прибыль,
БП = ВР(безНДС) - ПИ(безНДС) – НС - А
Прибыль после налогообложения = БП - НП
Для определения эффективности капиталовложений производится расчёт ряда показателей эффективности инвестиций [25]. К ним относятся РВ (payback period) - период окупаемости - это время, требуемое для покрытия начальных инвестиций за счёт чистого денежного потока, генерируемого инвестиционным проектом.
CF - чистый денежный поток месяца t (чистая прибыль - ЧП), определяется как разница между всеми поступлениями проекта и его расходами, т.е. приток минус отток средств. Выручка от реализации, внереализационные поступления и полученные кредиты (заёмные средства) составляют приток средств. К оттоку относятся затраты на производство, налоговые выплаты, инвестиции, а также затраты на погашение и обслуживание займов.
В нашем случае формула для определения чистого денежного потока будет иметь вид:
, где
t - отчётный период (год, квартал, месяц),
Investments - начальные инвестиции,
N - длительность проекта в месяцах,
r - месячная ставка дисконтирования.
DPV (Discounted payback period) - дисконтированный период окупаемости рассчитывается аналогично РВ, однако, в этом случае чистый денежный поток дисконтируется. Используемое для расчёта соотношение выглядит следующим образом:
.
ARR (Average rate of return) - средняя норма рентабельности - доходность проекта как отношение между среднегодовыми поступлениями от его реализации и величиной начальных инвестиций.
В связи с тем, что данный проект является краткосрочным а так же в целях упрощения модели все расчёты проводятся без учёта ставки дисконтирования,
.
РВ (payback period) — период окупаемости — это время, требуемое для покрытия начальных инвестиций за счет чистого денежного потока, генерируемого инвестиционным проектом.
.
.
DPV (Discounted payback period) - дисконтированный период окупаемости рассчитывается аналогично РВ, однако, в этом случае чистый денежный поток дисконтируется. Используемое для расчёта соотношение выглядит следующим образом:
.
NPV (Net present value) - абсолютная величина дохода от реализации проекта с учётом ожидаемого изменения стоимости денег. Обязательное условие для успешной реализации проекта: чистый приведённый доход должен быть неотрицательным.
,
PI (Profitability index) — индекс прибыльности — демонстрирует относительную величину доходности проекта. Он определяет сумму прибыли на единицу инвестированных средств. Он обязательно должен быть больше единицы.
.
В результате реализации продукции выручка от реализации с НДС составит 18000000 у.е., всего затраты на производство составили 16560000 у.е., налоги и платежи 1146600 у.е., балансовая прибыль 417900 у.е., а прибыль оставшаяся после выплаты всех налогов 247000 у.е.
Анализируя эти данные очевидно, что при реализации продукции проект будет приносить доход и чистая приведенная стоимость составит 148400 у.е., при этом период окупаемости составит 5 месяцев и средняя норма рентабельности 8,5%, а индекс прибыльности будет 1,25.
Таблица 3.2. Виды рисков.
Вид риска Вероятность возникновения рискового события Устойчивость проекта к рисковому событию Снижение объемов реализации сопутствующих товаров Низкая Средняя (падение на 37% не приводит к отрицательному NPV) Снижение цен сбыта Низкая Низкая (снижение на 7% приводит к отрицательному NPV) Рост прямых издержек Средняя Средняя (увеличение на 15% не приводит к отрицательному NPV) Рост общих издержек Низкая Высокая (увеличение на 100% не приводит к отрицательному NPV)
Исходя из всего сказанного выше, совокупный риск проекта может быть оценен как "низкий" в силу следующих соображений:
- проект обладает значительным запасом устойчивости к главному фактору риска - снижению объемов продаж;
- изменения стоимости материальных затрат в сторону увеличения (до 20%) не оказывает существенного влияния на основные параметры проекта;
- особо следует отметить тот факт, что проект мало чувствителен к изменениям стоимости инвестиций (до 15% в росте их стоимости);
- наиболее чувствительным проект оказывается к изменению рентабельности продаж, связанной с увеличением прямых издержек на продукцию или снижения цен реализации. Данный вид риска в значительной степени зависит от сбытовой политики организации и может эффективно нивелироваться в соответствии с изменениями рынка (вызванных конкурентной борьбой в том числе) посредством организационных и маркетинговых мероприятий.

ЗАКЛЮЧЕНИЕ
В работе поставлена и решена задача реорганизации схемы управления и оптимизация сегмента сети передачи данных для предприятия малого бизнеса МП «Учебный центр». Формулировка задачи в общем виде такова: «Предполагается, что возможны 3 вида сетевых атак, для каждого вида атаки применяется средство защиты с вероятностью отражения атаки рi, где i = 1, …, 3. При использовании средств защиты q1, q2, q3 вероятности потерь пакетов SNMP соответственно составят а1, а2, а3; вероятности сбоев соответственно равны b1, b2, b3.
Необходимо определить распределение вероятностей использования имеющихся средств защиты так, чтобы:
1. математическое ожидание вероятности потери пакетов SNMP было минимальным;
2. суммарная эффективность средств защиты должна быть не меньше фиксированного значения - c;
(Под суммарной эффективностью понимается вероятность отражения средствами защиты произвольной атаки).
3. математическое ожидание вероятности сбоев не должно превышать фиксированного значения - b».
Математическая модель задачи представляет собой минимизацию целевой функции при выполнении систем линейных неравенств. Для решения задачи был использован симплекс-метод. Программная реализация выполнена в C++.
Найдено оптимальное распределение вероятностей использования средств защиты: для того, чтобы потери пакетов SNMP были минимальными, при суммарной эффективности средств защиты не менее 0,5 и математическим ожиданием вероятности сбоев не более 0,2; необходимо с вероятностью 0,666 использовать брандмауэр ConSeal Personal Firewall, и с вероятностью 0,333 использовать фильтр IP-пакетов IP Filter. При этом математическое ожидание вероятности потери пакетов составит 0,012667.
Совместное использование нескольких средств защиты в данных условиях представляется не эффективным.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Автоматизированные информационные технологии в экономике: Учебник/Под ред. проф. Г.А. Титоренко. – М.: Компьютер, ЮИНИТИ, 2006
Архангельский, А.Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder / А. Я. Архангельский, М. А. Тагин. – Москва: БИНОМ, 2007. – 1181 с.
Астахова, И.Ф. Язык C++ / И.Ф. Астахова, С.В. Власов, В.В.Фертиков, А.В. Ларин. – Минск: Новое знание, 2003. – 200 с.
Бройдо В.Л. Вычислительные системы, сети и телекоммуникации. – СПб: Питер, 2002.
Гартман, Т.Н. Основы компьютерного моделирования химико-технологических процессов: учебное пособие / Т.Н. Гартман, Д.В. Клушин. – Москва: Академкнига, 2008. – 415 с.
Джон Д. Рули и др. Сети Windows NT 4.0. Киев: Издательская группа BHV, 1999. – 800 с.
Иванова, Г.С. Объектно-ориентированное программирование / Г.С.Иванова, Т.Н. Ничушкина, Е.К. Пугачев; под ред. Г.С. Ивановой. – Изд. 3-е, стер. – М.: Изд-во МГТУ, 2007. – 366 с.
Иванова, Г.С. Основы программирования / Г.С. Иванова. – Изд. 4-е,стер. – М.: Изд-во МГТУ, 2007. – 415 с.
Интернет–маркетинг: Учебник. Успенский И.В. - СПб.: Изд-во СПГУЭиФ, 2003.
Калянов Г.Н. Консалтинг при автоматизации предприятий (подходы, методы, средства) // М.: СИНТЕГ, 1997
Комарницкая О.И. Симплекс-метод и теория двойственности. – Л., 1987. – 44 с.
Липпман, Стенли Б. Язык программирования С++: вводный курс / Стенли Б. Липпман, Жози Лажойе, Барбара Му; [пер. с англ. и ред. В. А.Коваленко]. – 4-е изд. – М.: Вильямс, 2007. – 889 с.
Майнази М., Андерсон К., Криган Э. Введение в Windows NT Server 4.0. К.: Издательская группа BHV, 1999. – 621 с.
Назаров С.В. Администрирование локальных сетей. М.: «Финансы и статистика», 2004.
Остерлох TCP/IP. Семейство протоколов передачи данных в сетях компьютеров. К.: ООО «ТИД «ДС», 2004. – 576 с.
Петров Ю.А., Шлимович Е.Л., Ирюпин Ю.В. Комплексная автоматизация управления предприятием: Информационные технологии - теория и практика. - М.: Финансы и статистика, 2001.
Петров Ю.А., Шлимович Е.Л., Ирюпин Ю.В. Комплексная автоматизация управления предприятием: Информационные технологии - теория и практика. - М.: Финансы и статистика, 2001.
Пинскер А.Г., Брыжина Э.Ф. Основы оптимального программирования. – Л., 1974. – 188 с.
Подбельский, В.В. Язык СИ++ / В.В. Подбельский. – 5-е изд. – М.: Финансы и статистика, 2008. – 559 с.
Спортак М. и др. Компьютерные сети и сетевые технологии. К.: ООО «ТИД «ДС», 2004. – 736 с.
Стивен Норткатт и др. Защита сетевого периметра. К.: ООО «ТИД «ДС», 2004. – 672 с.
Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. – Спец. изд. – М.: Бином; СПб.: Нев. диалект, 2001. – 1098 с.
Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. – Спец. изд. – М.: Бином; СПб.: Нев. диалект, 2001. – 1098 с.
Сухинский О.К. Оптимальное управление проектами. – М.: 2006.
Шафер Д.Ф., Фартрел Т., Шафер Л.И. Управление программными проектами: достижение оптимального качества при минимуме затрат.: Пер. с англ. – М.: Вильямс, 2004.
Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт; [пер. с англ. Н.М. Ручко]. – 3-е изд. – М.: Вильямс, 2008. – 620 с.
Эккель, Брюс. Философия C++: Практ. программирование / Брюс Эккель, Чак Эллисон; [Пер. с англ. Е. Матвеев]. – М.: Питер, 2004. – 608 с.
Экономическая информатика: Введение в экономический анализ информационных систем: Учебник. – М.: ИНФРА-М, 2005.
Элджер, Джефф. C++ / Джефф Элджер; [Пер. с англ. Е. Матвеев]. – СПб.: Питер: Питер Бук, 2001. – 320 с.
Microsoft Corporation. Компьютерные сети. Network+. Учебный курс/Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2002.
Приложение
1. Блок-схема программы.
2. Код программы.
//подключаем необходимые модули
#include "stdafx.h"
#include "Optimization.h"
#include "OptimizationDlg.h"
#include "ap.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg диалоговое окно
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
//объявление внутренних и внешних методов
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COptimizationDlg dialog
COptimizationDlg::COptimizationDlg(CWnd* pParent /*=NULL*/)
: CDialog(COptimizationDlg::IDD, pParent)
{
//динамические массивы входных параметров
m_strE = _T("");
m_strX = _T("");
m_strY = _T("");
m_Otvet = _T("");
//}}AFX_DATA_INIT
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void COptimizationDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COptimizationDlg)
DDX_Text(pDX, IDC_E, m_strE);
DDX_Text(pDX, IDC_X, m_strX);
DDX_Text(pDX, IDC_Y, m_strY);
DDX_Text(pDX, IDC_Otvet, m_Otvet);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COptimizationDlg, CDialog)
// подключаем основные функции диалогового окна
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COptimizationDlg message handlers
BOOL COptimizationDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control
}
void COptimizationDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void COptimizationDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR COptimizationDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Начинается основной код программы
void COptimizationDlg::OnButton1()
{
// TODO: Add your control notification handler code here
//
float x0,y0,e;
int rez;
CString xr,yr;
ap::real_1d_array xrez;
xrez.setbounds(1,2);
UpdateData(TRUE);
// проверяем все ли поля заполнены
if ((m_strX=="")||(m_strY=="")||(m_strE=="")) {MessageBox("Не все поля заполнены","Ошибка",0);goto end;}
// присваиваем переменным значения вводимых полей
x0=strtoint(m_strX);
y0=strtoint(m_strY);
e=strtoint(m_strE);
xrez(1)=x0;xrez(2)=y0;

//вызов основной функции
//первый параметр количество переменных

rez=lbfgsminimize(2, 5, xrez, double(e));

//вывод результата
xr.Format("%f",xrez(1));
yr.Format("%f",xrez(2));
if (rez==0) {m_Otvet="x= "+xr+" y= "+yr;}
else {
switch(rez) {
case 1:m_Otvet="Неверные входные данные";break;
case 2:m_Otvet="Ошибка при минимизации вдоль прямой";break;
case 3:m_Otvet="Эстремально плохая функция";break;
case 4:m_Otvet="Длина шага слишком мала";break;
case 5:m_Otvet="Длина шага слишком велика";break;
case 6:m_Otvet="Ошибка округления";break;
}
}
UpdateData(FALSE);
end:;
}
void COptimizationDlg::funcgrad(ap::real_1d_array x, double& f, ap::real_1d_array& g){
//функция 4x1^2+3x2^2-4x1x2+x1
f=4*x(1)*x(1)+3*x(2)*x(2)-4*x(1)*x(2)+x(1);
//теперь градиент
//8x1-4x2+1
g(1)=8*x(1)-4*x(2)+1;
//6x2-4x1
g(2)=6*x(2)-4*x(1);
}
//**************************************************************************
// функция вычисления алгоритма///////////////////////
int COptimizationDlg::lbfgsminimize(int n, int m, ap::real_1d_array& x, double eps)
{
// испольуемые переменные
int result;
ap::real_1d_array w;
int iflag;
double f;
ap::real_1d_array g;
ap::real_1d_array diag;
ap::real_1d_array ta;
bool diagco;
bool finish;
double gnorm;
double ddot;
double stp1;
double ftol;
double stp;
double ys;
double yy;
double sq;
double yr;
double beta;
double xnorm;
int iter;
int nfun;
int point;
int ispt;
int iypt;
int maxfev;
int info;
int bound;
int npt;
int cp;
int i;
int ti;
int nfev;
int inmc;
int iycn;
int iscn;
double xtol;
double gtol;
double stpmin;
double stpmax;
w.setbounds(1, n*(2*m+1)+2*m);
g.setbounds(1, n);
diag.setbounds(1, n);
ta.setbounds(1, n);
funcgrad(x, f, g);
iter = 0;
result = 0;
if( n<=0||m<=0 )
{
result = 1;
return result;
}
nfun = 1;
point = 0;
finish = false;
for(i = 1; i <= n; i++)
{
diag(i) = 1;
}
xtol = 100*ap::machineepsilon;
gtol = 0.9;
stpmin = pow(10, -20);
stpmax = pow(10, 20);
ispt = n+2*m;
iypt = ispt+n*m;
for(i = 1; i <= n; i++)
{
w(ispt+i) = -g(i)*diag(i);
}
gnorm = sqrt(dotproduct(n, g, 1, g, 1));
stp1 = double(1)/double(gnorm);
ftol = 0.0001;
maxfev = 20;
while(true)
{
iter = iter+1;
info = 0;
bound = iter-1;
if( iter!=1 )
{
if( iter>m )
{
bound = m;
}
ys = dotproduct(n, w, iypt+npt+1, w, ispt+npt+1);
yy = dotproduct(n, w, iypt+npt+1, w, iypt+npt+1);
for(i = 1; i <= n; i++)
{
diag(i) = ys/yy;
}
cp = point;
if( point==0 )
{
cp = m;
}
w(n+cp) = double(1)/double(ys);
for(i = 1; i <= n; i++)
{
w(i) = -g(i);
}
cp = point;
for(i = 1; i <= bound; i++)
{
cp = cp-1;
if( cp==-1 )
{
cp = m-1;
}
sq = dotproduct(n, w, ispt+cp*n+1, w, 1);
inmc = n+m+cp+1;
iycn = iypt+cp*n;
w(inmc) = w(n+cp+1)*sq;
lincomb(n, -w(inmc), w, iycn+1, w, 1);
}
for(i = 1; i <= n; i++)
{
w(i) = diag(i)*w(i);
}
for(i = 1; i <= bound; i++)
{
yr = dotproduct(n, w, iypt+cp*n+1, w, 1);
beta = w(n+cp+1)*yr;
inmc = n+m+cp+1;
beta = w(inmc)-beta;
iscn = ispt+cp*n;
lincomb(n, beta, w, iscn+1, w, 1);
cp = cp+1;
if( cp==m )
{
cp = 0;
}
}
for(i = 1; i <= n; i++)
{
w(ispt+point*n+i) = w(i);
}
}
nfev = 0;
stp = 1;
if( iter==1 )
{
stp = stp1;
}
for(i = 1; i <= n; i++)
{
w(i) = g(i);
}
mcsrch(n, x, f, g, w, ispt+point*n+1, stp, ftol, xtol, maxfev, info, nfev, diag, gtol, stpmin, stpmax);
if( info!=1 )
{
result = info;
if( result<=1 )
{
result = 1-result;
}
return result;
}
nfun = nfun+nfev;
npt = point*n;
for(i = 1; i <= n; i++)
{
w(ispt+npt+i) = stp*w(ispt+npt+i);
w(iypt+npt+i) = g(i)-w(i);
}
point = point+1;
if( point==m )
{
point = 0;
}
gnorm = sqrt(dotproduct(n, g, 1, g, 1));
xnorm = sqrt(dotproduct(n, x, 1, x, 1));
if( xnorm<1 )
{
xnorm = 1;
}
if( gnorm/xnorm<=eps )
{
finish = true;
}
if( finish )
{
result = 0;
return result;
}
}
return result;
}
void COptimizationDlg::lincomb(int n,
double da,
const ap::real_1d_array& dx,
int sx,
ap::real_1d_array& dy,
int sy)
{
int i;
int ix;
int iy;
int m;
sx = sx-1;
sy = sy-1;
if( da==0 )
{
return;
}
m = n%4;
if( m!=0 )
{
for(i = 1; i <= m; i++)
{
dy(sy+i) = dy(sy+i)+da*dx(sx+i);
}
if( n<4 )
{
return;
}
}
i = m+1;
while(i<n)
{
dy(sy+i) = dy(sy+i)+da*dx(sx+i);
dy(sy+i+1) = dy(sy+i+1)+da*dx(sx+i+1);
dy(sy+i+2) = dy(sy+i+2)+da*dx(sx+i+2);
dy(sy+i+3) = dy(sy+i+3)+da*dx(sx+i+3);
i = i+4;
}
}
double COptimizationDlg::dotproduct(int n,
const ap::real_1d_array& dx,
int sx,
const ap::real_1d_array& dy,
int sy)
{
double result;
int i;
int ix;
int iy;
int m;
int mp1;
sx = sx-1;
sy = sy-1;
result = 0;
m = n%5;
if( m!=0 )
{
for(i = 1; i <= m; i++)
{
result = result+dx(sx+i)*dy(sy+i);
}
if( n<5 )
{
return result;
}
}
i = m+1;
while(i<n)
{
result = result+dx(sx+i)*dy(sy+i)+dx(sx+i+1)*dy(sy+i+1)+dx(sx+i+2)*dy(sy+i+2)+dx(sx+i+3)*dy(sy+i+3)+dx(sx+i+4)*dy(sy+i+4);
i = i+5;
}
return result;
}
void COptimizationDlg::mcsrch(int n,
ap::real_1d_array& x,
double& f,
ap::real_1d_array& g,
const ap::real_1d_array& s,
int sstart,
double& stp,
double ftol,
double xtol,
int maxfev,
int& info,
int& nfev,
ap::real_1d_array& wa,
double gtol,
double stpmin,
double stpmax)
{
int infoc;
int j;
bool brackt;
bool stage1;
double dg;
double dgm;
double dginit;
double dgtest;
double dgx;
double dgxm;
double dgy;
double dgym;
double finit;
double ftest1;
double fm;
double fx;
double fxm;
double fy;
double fym;
double p5;
double p66;
double stx;
double sty;
double stmin;
double stmax;
double width;
double width1;
double xtrapf;
double zero;
double mytemp;
sstart = sstart-1;
p5 = 0.5;
p66 = 0.66;
xtrapf = 4.0;
zero = 0;
funcgrad(x, f, g);
infoc = 1;
info = 0;
if( n<=0||stp<=0||ftol<0||gtol<zero||xtol<zero||stpmin<zero||stpmax<stpmin||maxfev<=0 )
{
return;
}
dginit = 0;
for(j = 1; j <= n; j++)
{
dginit = dginit+g(j)*s(j+sstart);
}
if( dginit>=0 )
{
return;
}
brackt = false;
stage1 = true;
nfev = 0;
finit = f;
dgtest = ftol*dginit;
width = stpmax-stpmin;
width1 = width/p5;
for(j = 1; j <= n; j++)
{
wa(j) = x(j);
}
stx = 0;
fx = finit;
dgx = dginit;
sty = 0;
fy = finit;
dgy = dginit;
while(true)
{
if( brackt )
{
if( stx<sty )
{
stmin = stx;
stmax = sty;
}
else
{
stmin = sty;
stmax = stx;
}
}
else
{
stmin = stx;
stmax = stp+xtrapf*(stp-stx);
}
if( stp>stpmax )
{
stp = stpmax;
}
if( stp<stpmin )
{
stp = stpmin;
}
if( brackt&&(stp<=stmin||stp>=stmax)||nfev>=maxfev-1||infoc==0||brackt&&stmax-stmin<=xtol*stmax )
{
stp = stx;
}
for(j = 1; j <= n; j++)
{
x(j) = wa(j)+stp*s(j+sstart);
}
funcgrad(x, f, g);
info = 0;
nfev = nfev+1;
dg = 0;
for(j = 1; j <= n; j++)
{
dg = dg+g(j)*s(j+sstart);
}
ftest1 = finit+stp*dgtest;
if( brackt&&(stp<=stmin||stp>=stmax)||infoc==0 )
{
info = 6;
}
if( stp==stpmax&&f<=ftest1&&dg<=dgtest )
{
info = 5;
}
if( stp==stpmin&&(f>ftest1||dg>=dgtest) )
{
info = 4;
}
if( nfev>=maxfev )
{
info = 3;
}
if( brackt&&stmax-stmin<=xtol*stmax )
{
info = 2;
}
if( f<=ftest1&&fabs(dg)<=-gtol*dginit )
{
info = 1;
}
if( info!=0 )
{
return;
}
mytemp = ftol;
if( gtol<ftol )
{
mytemp = gtol;
}
if( stage1&&f<=ftest1&&dg>=mytemp*dginit )
{
stage1 = false;
}
if( stage1&&f<=fx&&f>ftest1 )
{
fm = f-stp*dgtest;
fxm = fx-stx*dgtest;
fym = fy-sty*dgtest;
dgm = dg-dgtest;
dgxm = dgx-dgtest;
dgym = dgy-dgtest;
mcstep(stx, fxm, dgxm, sty, fym, dgym, stp, fm, dgm, brackt, stmin, stmax, infoc);
fx = fxm+stx*dgtest;
fy = fym+sty*dgtest;
dgx = dgxm+dgtest;
dgy = dgym+dgtest;
}
else
{
mcstep(stx, fx, dgx, sty, fy, dgy, stp, f, dg, brackt, stmin, stmax, infoc);
}
if( brackt )
{
if( fabs(sty-stx)>=p66*width1 )
{
stp = stx+p5*(sty-stx);
}
width1 = width;
width = fabs(sty-stx);
}
}
}
/*************************************************************************/
void COptimizationDlg::mcstep(double& stx,
double& fx,
double& dx,
double& sty,
double& fy,
double& dy,
double& stp,
double fp,
double dp,
bool& brackt,
double stmin,
double stmax,
int& info)
{
bool bound;
double gamma;
double p;
double q;
double r;
double s;
double sgnd;
double stpc;
double stpf;
double stpq;
double theta;
info = 0;
if( brackt&&(stp<=ap::minreal(stx, sty)||stp>=ap::maxreal(stx, sty))||dx*(stp-stx)>=0||stmax<stmin )
{
return;
}
sgnd = dp*(dx/fabs(dx));
if( fp>fx )
{
info = 1;
bound = true;
theta = 3*(fx-fp)/(stp-stx)+dx+dp;
s = ap::maxreal(fabs(theta), ap::maxreal(fabs(dx), fabs(dp)));
gamma = s*sqrt(ap::sqr(theta/s)-dx/s*(dp/s));
if( stp<stx )
{
gamma = -gamma;
}
p = gamma-dx+theta;
q = gamma-dx+gamma+dp;
r = p/q;
stpc = stx+r*(stp-stx);
stpq = stx+double(dx/((fx-fp)/(stp-stx)+dx))/double(2)*(stp-stx);
if( fabs(stpc-stx)<fabs(stpq-stx) )
{
stpf = stpc;
}
else
{
stpf = stpc+double(stpq-stpc)/double(2);
}
brackt = true;
}
else
{
if( sgnd<0 )
{
info = 2;
bound = false;
theta = 3*(fx-fp)/(stp-stx)+dx+dp;
s = ap::maxreal(fabs(theta), ap::maxreal(fabs(dx), fabs(dp)));
gamma = s*sqrt(ap::sqr(theta/s)-dx/s*(dp/s));
if( stp>stx )
{
gamma = -gamma;
}
p = gamma-dp+theta;
q = gamma-dp+gamma+dx;
r = p/q;
stpc = stp+r*(stx-stp);
stpq = stp+dp/(dp-dx)*(stx-stp);
if( fabs(stpc-stp)>fabs(stpq-stp) )
{
stpf = stpc;
}
else
{
stpf = stpq;
}
brackt = true;
}
else
{
if( fabs(dp)<fabs(dx) )
{
info = 3;
bound = true;
theta = 3*(fx-fp)/(stp-stx)+dx+dp;
s = ap::maxreal(fabs(theta), ap::maxreal(fabs(dx), fabs(dp)));
gamma = s*sqrt(ap::maxreal(0, ap::sqr(theta/s)-dx/s*(dp/s)));
if( stp>stx )
{
gamma = -gamma;
}
p = gamma-dp+theta;
q = gamma+(dx-dp)+gamma;
r = p/q;
if( r<0&&gamma!=0 )
{
stpc = stp+r*(stx-stp);
}
else
{
if( stp>stx )
{
stpc = stmax;
}
else
{
stpc = stmin;
}
}
stpq = stp+dp/(dp-dx)*(stx-stp);
if( brackt )
{
if( fabs(stp-stpc)<fabs(stp-stpq) )
{
stpf = stpc;
}
else
{
stpf = stpq;
}
}
else
{
if( fabs(stp-stpc)>fabs(stp-stpq) )
{
stpf = stpc;
}
else
{
stpf = stpq;
}
}
}
else
{
info = 4;
bound = false;
if( brackt )
{
theta = 3*(fp-fy)/(sty-stp)+dy+dp;
s = ap::maxreal(fabs(theta), ap::maxreal(fabs(dy), fabs(dp)));
gamma = s*sqrt(ap::sqr(theta/s)-dy/s*(dp/s));
if( stp>sty )
{
gamma = -gamma;
}
p = gamma-dp+theta;
q = gamma-dp+gamma+dy;
r = p/q;
stpc = stp+r*(sty-stp);
stpf = stpc;
}
else
{
if( stp>stx )
{
stpf = stmax;
}
else
{
stpf = stmin;
}
}
}
}
}
if( fp>fx )
{
sty = stp;
fy = fp;
dy = dp;
}
else
{
if( sgnd<0.0 )
{
sty = stx;
fy = fx;
dy = dx;
}
stx = stp;
fx = fp;
dx = dp;
}
stpf = ap::minreal(stmax, stpf);
stpf = ap::maxreal(stmin, stpf);
stp = stpf;
if( brackt&&bound )
{
if( sty>stx )
{
stp = ap::minreal(stx+0.66*(sty-stx), stp);
}
else
{
stp = ap::maxreal(stx+0.66*(sty-stx), stp);
}
}
}
float COptimizationDlg::strtoint(CString st)
{
int ten=1;
float rez=0;
int Char;
st.TrimLeft();
st.TrimRight();
for (int i=st.GetLength()-1;i>=0;--i)
{
Char=st.GetAt(i);
if (Char==45)
return rez*(-1);
if ((Char==44)||(Char==46)) {
rez/=ten;
ten=1;
continue;
}
Char=Char-48;
rez=rez+(Char*ten);
ten=ten*10;
}
return rez;
}

14
103
3 Com
3 Com
3 Com
3 Com
Compex
SureCom
SureCom
3 ComFM
3 Com
да
нет
конец
вывод результатов в пользовательскую форму
( xk – xk-1 (<e
вычисление xk
вычисление S(xk)
вычи

Список литературы [ всего 30]

1.Автоматизированные информационные технологии в экономике: Учебник/Под ред. проф. Г.А. Титоренко. – М.: Компьютер, ЮИНИТИ, 2006
2.Архангельский, А.Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder / А. Я. Архангельский, М. А. Тагин. – Москва: БИНОМ, 2007. – 1181 с.
3.Астахова, И.Ф. Язык C++ / И.Ф. Астахова, С.В. Власов, В.В.Фертиков, А.В. Ларин. – Минск: Новое знание, 2003. – 200 с.
4.Бройдо В.Л. Вычислительные системы, сети и телекоммуникации. – СПб: Питер, 2002.
5.Гартман, Т.Н. Основы компьютерного моделирования химико-технологических процессов: учебное пособие / Т.Н. Гартман, Д.В. Клушин. – Москва: Академкнига, 2008. – 415 с.
6.Джон Д. Рули и др. Сети Windows NT 4.0. Киев: Издательская группа BHV, 1999. – 800 с.
7.Иванова, Г.С. Объектно-ориентированное программирование / Г.С.Иванова, Т.Н. Ничушкина, Е.К. Пугачев; под ред. Г.С. Ивановой. – Изд. 3-е, стер. – М.: Изд-во МГТУ, 2007. – 366 с.
8.Иванова, Г.С. Основы программирования / Г.С. Иванова. – Изд. 4-е,стер. – М.: Изд-во МГТУ, 2007. – 415 с.
9.Интернет–маркетинг: Учебник. Успенский И.В. - СПб.: Изд-во СПГУЭиФ, 2003.
10.Калянов Г.Н. Консалтинг при автоматизации предприятий (подходы, методы, средства) // М.: СИНТЕГ, 1997
11.Комарницкая О.И. Симплекс-метод и теория двойственности. – Л., 1987. – 44 с.
12.Липпман, Стенли Б. Язык программирования С++: вводный курс / Стенли Б. Липпман, Жози Лажойе, Барбара Му; [пер. с англ. и ред. В. А.Коваленко]. – 4-е изд. – М.: Вильямс, 2007. – 889 с.
13.Майнази М., Андерсон К., Криган Э. Введение в Windows NT Server 4.0. К.: Издательская группа BHV, 1999. – 621 с.
14.Назаров С.В. Администрирование локальных сетей. М.: «Финансы и статистика», 2004.
15.Остерлох TCP/IP. Семейство протоколов передачи данных в сетях компьютеров. К.: ООО «ТИД «ДС», 2004. – 576 с.
16.Петров Ю.А., Шлимович Е.Л., Ирюпин Ю.В. Комплексная автоматизация управления предприятием: Информационные технологии - теория и практика. - М.: Финансы и статистика, 2001.
17.Петров Ю.А., Шлимович Е.Л., Ирюпин Ю.В. Комплексная автоматизация управления предприятием: Информационные технологии - теория и практика. - М.: Финансы и статистика, 2001.
18.Пинскер А.Г., Брыжина Э.Ф. Основы оптимального программирования. – Л., 1974. – 188 с.
19.Подбельский, В.В. Язык СИ++ / В.В. Подбельский. – 5-е изд. – М.: Финансы и статистика, 2008. – 559 с.
20.Спортак М. и др. Компьютерные сети и сетевые технологии. К.: ООО «ТИД «ДС», 2004. – 736 с.
21.Стивен Норткатт и др. Защита сетевого периметра. К.: ООО «ТИД «ДС», 2004. – 672 с.
22.Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. – Спец. изд. – М.: Бином; СПб.: Нев. диалект, 2001. – 1098 с.
23.Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. – Спец. изд. – М.: Бином; СПб.: Нев. диалект, 2001. – 1098 с.
24.Сухинский О.К. Оптимальное управление проектами. – М.: 2006.
25.Шафер Д.Ф., Фартрел Т., Шафер Л.И. Управление программными проектами: достижение оптимального качества при минимуме затрат.: Пер. с англ. – М.: Вильямс, 2004.
26.Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт; [пер. с англ. Н.М. Ручко]. – 3-е изд. – М.: Вильямс, 2008. – 620 с.
27.Эккель, Брюс. Философия C++: Практ. программирование / Брюс Эккель, Чак Эллисон; [Пер. с англ. Е. Матвеев]. – М.: Питер, 2004. – 608 с.
28.Экономическая информатика: Введение в экономический анализ информационных систем: Учебник. – М.: ИНФРА-М, 2005.
29.Элджер, Джефф. C++ / Джефф Элджер; [Пер. с англ. Е. Матвеев]. – СПб.: Питер: Питер Бук, 2001. – 320 с.
30.Microsoft Corporation. Компьютерные сети. Network+. Учебный курс/Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2002.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00664
© Рефератбанк, 2002 - 2024