31
ЕВРОПЕЙСКИ СЪЮЗ ЕВРОПЕЙСКИ СОЦИАЛЕН ФОНД Проект BG051PO001-3.3.04/40: „Изграждане на висококвалифицирани млади изследователи по съвременни информационни технологии за оптимизация, разпознаване на образи и подпомагане вземането на решения” Проектът се осъществява с финансовата подкрепа на Европейски Социален Фонд (2007-2013) и Република България - Министерство на образованието, младежта и науката по оперативна програма "Развитие на човешките ресурси" в направление “Подкрепа за развитието на докторанти, пост-докторанти, специализанти и млади учени” Лекция на тема: ОПТИМИЗАЦИЯ И ИНТЕРНЕТпроф. д.т.н. Тодор Стоилов София 2010 г.

Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

ЕВРОПЕЙСКИ СЪЮЗ

ЕВРОПЕЙСКИ СОЦИАЛЕН ФОНД

Проект BG051PO001-3.3.04/40: „Изграждане на висококвалифицирани млади изследователи по съвременни информационни технологии за оптимизация,

разпознаване на образи и подпомагане вземането на решения” Проектът се осъществява с финансовата подкрепа на

Европейски Социален Фонд (2007-2013) и Република България - Министерство на образованието, младежта и науката по

оперативна програма "Развитие на човешките ресурси" в направление “Подкрепа за развитието на докторанти, пост-докторанти,

специализанти и млади учени”

Лекция на тема:

“ОПТИМИЗАЦИЯ И ИНТЕРНЕТ”

проф. д.т.н. Тодор Стоилов

София 2010 г.

Page 2: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

ОПТИМИЗАЦИЯ И ИНТЕРНЕТ

Тодор Стоилов Представеният материал дава два примера за приложение на оптимизацията като средства за най-сложна обработка на информацията в области, които са свързани в Интернет. Първият пример е за приложение на оптимизацията за функционирането на Интернет. Представено е използване на оптимизационнатата функционалност при определяне на маршрутизацията на пакетите в глобалната мрежа. Оптималността включва етапи на подготовка на задача за оптимизация и впоследствие решаването на оптимизационната задача. Оптимизацията се извършва за намиране на кратък път в разпределена мрежа. Представен е алгоритъм на Dijkstra за решаване на задачата. Представени са двата принципни метода за събиране на данните за дефиниране на оптимизационната задача: Distance State Routing и Link State Routing. Коментирани са проблемите при прилагане на тези методи в реализираните маршрутизиращи протоколи като RIP и OSPF. Второто приложение на оптимизацията е в информационна услуга в Интернет. Представена е задачата на портфейлна оптимизация, която средство за инвестиране във финансови активи. Представена е и е обяснена задачата на портфейлна оптимизация. Обяснена е процедурата по подготовката на параметрите на оптимизационната задача от изходните характеристики на финансовите активи. Коментирани са начините за алгоритмично, програмно и системно изграждане на информационната система в Интернет. Оптимизацията е вградена в конкретна Интернет базирана информационна система. 1. Алгоритми за управление на трафика в глобални мрежи 1.1 Увод В глобалната мрежа Интернет се използват комуникационни устройства, наречени рутери/маршрутизатори, които управляват предаването на данните през комуникационните канали. Рутерите управляват мрежовия тряфик като намират най-добрия маршрут за предаване на пакетите [1]. За целта рутерите трябва да имат информация за вида и състоянието на мрежата при вземане на управляващо решение за изпращане на пакетите. Прилагат се различни начини за събиране на информацията за състоянието на мрежата. При своето функциониране рутерите прилагат рутиращи (маршрутизиращи) алгоритми, за да намерят най-добрия път до получателя за всеки пакет. Определянето на най-добрия маршрут става чрез оценка на разблични количествени параметри [2,3]:

Брой hops , което отчита броя на комуникационните устройства, които получават и препредават пакета, през които пакетът минава от предавателя до получателя.

Времезакъснение, което се получава по всяка комуникационна линия от различен технологичен вид;

Цена за предаване то на пакета по отделните комуникационни линии. Алгоритмите, с които рутерите събират информация за мрежата и определят най-добрия маршрут се разделят на два класа [4,5,6]: глобални рутиращи алгоритми и децентрализирани рутиращи алгоритми. При глобалните алгоритми всеки рутер има пълна информация за другите рутери и състоянито на трафика в мрежата. Това са LS(Link State) алгоритми и отчитат състоянието на всеки канал. При децентрализираните алгоритми всеки рутер има информация само за директно

Page 3: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

свързаните с него, но не и за останалите рутери в мрежата. Това са DV (Distance Vector) алгоритми с вектор на разстоянието.

1.2 Функции на маршрутизацията в Интернет Главна функция на network layer на комуникационите протоколи в Интернет е да рутира пакетите от компютъра източник до компютъра получател. Рутиращият алгоритъм е част от нивото network и се реализира софтуерно. Той трябва да определи на коя изходна линияда се предаде входния пакет. Може да се счита, че в рутера има два вътрешни процеса. Първият обработва всеки входящ пакет, като определя по коя изходна линия да се препрати, като се използват рутинг таблиците. Този процес се нарича forwarding.Вторият процес изпълнява запълването и актуализирането на рутинг таблиците.

Към алгоритмите за рутинг се поставят няколко изисквания: коректност, простота, робастност, стабилност, честност и оптималност.

Коректността и простотата не се нуждаят от обяснения. Робастност – очаква се , че всяка мрежа трябва да работи дълго и

продължително време без да се повреди. Но на практика рутерите, компютрите и линиите се развалят и топологията се мени във времето. Рутиращите алгоритми трябва да се адаптират към тези технологични промени без да е необходимо да се променят текущите задачи в компютрите на мрежата или те да бъдат рестартирани.

Стабилност(устойчивост) . Съществуват рутиращи алгоритми, които никога не схождат към равновесие, независимо колко време работят. Устойчивият алгоритъм трябва да достигне равновесие и да стои в това състояние.

Честност и оптималност. Често това са противоречиви изисквания. Пример за това е фиг.1.

Фиг.1 Пример за коректност

За мрежата допускаме, че има достатъчно трафик между възли А-А1, В-В1, С-С1 за

да се насити хоризонталната връзка. За да се максимизира общия поток трафик, връзката Х-Х1 също трябва да предава. Но при наситена/задръстена хоризонтална връзка Х-Х1 няма да може да обменя данни. Следователно някакъв компромис между глобална ефективност и честност спряма индивидуалните връзки е необходимо.

Изискванията за оптималност налагат да се конкретизира какво трябва да се оптимизира. Например

min{средното закъснение на пакет} e удачен критерий. Но добър критерий е също и

max{обща пропускателна способност на мрежата/обем трафик} Обикновенно тези две целеви функции са в конфликт, тъй като управление на

една опащкова система , която е в състояние близо до наситеност води до големи закъснения в опашките. Като компромис много мрежи се стремят да min броя на hops (брой преминавания през рутери в мрежата), които пакетът трябва да премине, защото с намаляването на hops се подобрява закъснението на разпространението на пакета.

Page 4: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

1.3 Видове рутиращи алгоритми Алгоритмите се групират в два големи класа: адаптивни и неадаптавни. Неадаптивни алгоритми. Алгоритмите определят своите маршрутизиращи решения без измервания и оценка на текущия трафик и топология. Пътят за пакетите от възел i към j е изчислен предварително, off-line и тези данни се записват в рутера при неговото стартиране. Това е т.н. статична маршрутизация.

Адаптивни алгоритми. Рутиращите въздействия се правят вследствие промени в топологията и вида/обема на трафика. аптивните алгоритми се различават по:

Начините на промяна на маршрута. На всеки ΔT sec. , когато натоварването се промени или топологията на мрежата се измени;

По вида на използваната метрика за оптимизация: разстояние, брой hops, време за предаване.

1.4. Алгоритъм за най кратък път Разглежда се примерът на фиг.2. Разстоянията между възлите може да отразява разстоянието, капацитета на линията, обема среден трафик, комуникационните разходи/цени, средна дължина на опашките, измервания на закъснението и др. Чрез промени в теглата на линиите алгоритъмът ще изчисли най краткия път, измерван съгласно някой от по-горе коментираните критерии.

Page 5: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Няколко алгоритъма са известни за намиране на най-кратък път между два възела в мрежа. Разпространение в Интернет е намерил алгоритъма на Dijkstra (1959), който ще се илюстрира на представения пример, фиг.3.

Всеки възел се бележи с разстоянието от него до възела източник по най-

добрият/кратък известен път. Отначало такива кратки пътища не са известни и всички възли се бележат със стойност ∞ . След като алгоритъмът определли удачен път, знакът на възела може да се промени , отразявайки наличие на по-добър път. Знакът на възела може да бъде “tentative” (предварителен/временен) или “permanent”. Отначало всички възли са “tentative”. Когато се определи че знакът на възела представлява възможния най-кратък път от източника до този възел, то възела се прави “permanent” и не се променя вече. На примера на фиг.2 искаме да намерим най краткия път между възли A и D. Започва се с маркиране на A като “permanent”, графично представено като черно

Page 6: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

кръгче. След това се изследва последователно всеки съседен възел на A, който е наречен работен възел (working node). Отбелязват се съседните възли с разстоянията до A, който е working node. Освен това съседните възли маркират и с предишния възел, от където идва маршрута. Тази отметка се ползва при определяне на крайният маршрут. След като се анализират и всички други възли в графа, които са в състояние “tentative” се избира този възел, който има най-малко разстояние до A. Този нов възел се прави “permanent”.

Първоначално всички възли са “tentative” и разстоянията от тях до началния възел А са отбелязяни като ∞.

За случая на начален възел А са възможни два прехода: А B(2,A) и А G(6,A), фиг.2а. Тъй като разстоянието до В е по малко в сравнение с G, (2<6), то възел В избира като работен и му се променя състоянието от “tentative” в “permanent”. На фигурата това е отбелязано с цветен контур около В , а указването за “working node” се отбелязва със стрелка, фиг.2б.

След това се продължава от възел В. Анализират се всички съседни възли на В , които са в състояние “tentative”. Това са възли С и Е. Изчислява се сумата от отметката на В (в случая е 2) събрано с разстоянието от В до С, съответно до Е. Ако тези суми са по-малки от текущите отметки на С и Е то те се записват като нови отметки на С, съответно на Е. За случая текущата отметка на С(∞, -) е безкрайност. Разстоянието В до С е 7 и новата отметка на С ще стане 2+7=9, или В(2,А) С(9,В). Аналогичната сума от възел В до Е дава отметка за Е равна на 2+2=4 или В(2,А) Е(4,В). За работеннов възел се избира Е(4,В), защото 4 е минималното число, фиг.2.в. Възелът Е се прави “permanent” и “working node”.

Анализът от Е към съседните “tentative” възли дава отметки за F и G, както следва: или Е(4,B) F(6,E) и Е(4,B) G(5,E). Тъй като G има по малка отметка, той се прави “permanent” и “working node”, фиг.2г. Изчисленията продължават, като се прави анализ на съседните възли на “working node” G, така и на съседните възли на всички “tentative” имат текуща отметка различна от ∞. За случая “tentative” са F(6,E) и C(9,B). Анализът дава новият възел Н, G(5,E) H(9,G) и текущите “tentative” възли F(6,E) , С(9,В). :Минимална отметка има F(6,E) и той се прави “permanent” и “working node”, фиг.2д. Анализът от F(6,E) към възел С дава F(6,E) C(9,F). Тази отметка е еднаква със старата стойност С(9,В) и не води към предпочитание. Но отметката към възел Н е F(6,E) H(8,F) е с тегло 8, което е по-малко от текущата стойност H(9,G). Тъй като H(8,F) има по-малка отметка от останалите “tentative” възли, в случая C(9,F) то Н(8,F) става ‘permanent” и „working node”, фиг.2е. От Н(8,F) вече се отива към D(10,F). Крайният път се получава като се използват отбелязаните съседни възли в отметките. Така се формира пътя DFHFEBA който е оптималното решение на задачата за намиране на кратък път мажду D и А. В практиката се прилага и търсене от крает към начален възел, което е прилагана техника на динамичното програмиране.

1.5 Механизъм на рутиране flooding Този механизъм се използва в мрежите за да може рутерите да обменят информация за състоянието на мрежата помежду си. Тази информация е необходима за да подготвят изходните данни за задачата за най-кратък път.

Flooding е статичен маршрутизиращ алгоритъм, при който всеки входящ пакет се изпраща на всяка изходяща линия с изключение на тази, от където е пристигнал пакета. Flooding маршрутизацията генерира голям брой дублирани пакетии трябва да се вземат

Page 7: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

мерки за ограничаване на процеса на генерации. Това може да се постигне с брояч на hops, който си слага в header (служебната част) на всеки пакет. Този брояч се намалява при всеки hop. Пакетът се унищожава, когато броячът стане 0. В идеалния случай hop броячът трябва да се инициализира с дължината на маршрута от източника до получателя. Ако това не се знае се залага число равно на пълния диаметър на мрежата.

Друга техника за ограничаване на flooding е да се следи и да се записва кои пакети вече са били flood изпратени, за да се избегне повторното им пращане.

Версия на flood алгоритъма е т.н. selective flooding. Рутерът не изпраща навсякъде пакети, а само по тези линии, които водят във „вярната посока”, например от ляво на дясно в шинова топология.

Flooding маршрутизациятя не е практична за повечето приложения, но има случаи където това дава добри резултати, например за военни системи. Когато голям брой рутери се повредят едновременно, то тогава робастността на flooding е полезна. Тази маршрутизация се прилага и при безжични мрежи.

1.6 Distance Vector Routing (DVR)

Тези алгоритми работят при което всеки рутер поддържа таблица (вектор), даваща най-доброто разстояние до всяка дестинация и съответно коя линия да се използва. Тези таблици се актуализират чрез обмяна на информация между съседни рутери. Понякога DVR алгоритмите се наименоват и с други имена: разпределен алгоритъм на Bellman-Ford, рутинг алгоритъм на Ford-Fulkerson. Това е оригиналния рутинг алгоритъм в мрежата ARPANET и се прилага в Интернет с името RIP (Routing Information Protocol). При DVR всеки рутер поддържа рутинг таблица, индексирана и съдържаща по един запис (вход) за всеки рутер в мрежата. Всеки вход има 2 части: предпочитана изходяща линия за съответната дестинация и оценка на времето или разстоянието до дестинацията. Като метрики се използват: hops, времезакъсненияв mS, общ рой пакети, чакащи в опашка за тази линия. Приема се че рутерът знае „разстоянието” до всеки от своите съседи. Ако метриката е големина на опашката, рутерът следи чакащите пакети; ако е закъснението, рутерът може да го измери директно чрез изпращане на специални ECHO пакети, при които получателят ги връща обратно на получателя, като се отбелязва времето на полечаване.

Пример за формиране и поддържане на маршрутизираща таблица от рутер. Дадена е мрежа с топология, съгласно фиг.3.

Фиг.3. Топология на мрежата за работа по DVR метод

Page 8: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Приема се , че рутерът знае „разстоянието” до всеки от своите съседи, но не и да останалите рутери в мрежата. Ако метриката е големина на опашките, рутерът следи чакащите пакети; ако е закъснението, рутерът може да го измери чрез изпращане и получаване на ECHO пакети, излъчвани по протокол ICMP (Internet Control Message Protocol). ECHO пакетите след получаването им се връщат от получаващият ги на изпращача, като се отбелязва времето на тяхното получаване.

Особеността на DVR метода е , че рутерът измерва „разстоянието” само до съседите си, но формира чрез изчисление маршрутизираща таблица за всички рутери в цялата мрежа. За примера се разглежда работата на рутер J . Възел J получава съдържанието и „знае” рутиращите таблици на всички свои съседи. За случая на фиг.3 съседи на J са A, I, H и K и техните рутиращи таблици са представени като съответна колона от табл. 1.5

рутер A I H K

Стара рутинг таблица/

Ново измерване

Изчислено ново

„разстояние”

Изходяща

линия

A 0 24 20 21 8 8 А B 12 36 31 28 x 20 А C 25 18 19 36 x 28 I D 40 27 8 24 x 20 H E 14 7 30 22 x 17 I F 23 20 19 40 x 30 I G 18 31 6 31 x 18 H H 17 20 0 19 12 12 H I 21 0 14 22 10 10 I J 9 11 7 10 0 0 - K 24 22 22 0 6 6 K L 29 33 9 9 x 15 K

Измерено закъснение JA=8 JI=10 JH=12 JK=6

Първите 4 колони показват векторите на закъснението, които имат съседните

възли на изходния възел J. При тези данни А има закъснение 12mS oдо В и 25 mS закъснение до С, съответно 40mS до D и т.н.

Допускаме че J е измерило (или оценило) закъсненията до своите съседи A,I,H,K като 8,10,12,6 mS. Сега с тези нови данни трябва да се актуализира старата рутинг таблица, например връзката J-G. J знае, че връзкана J-A e 8 mS, а A-G е 18 mS, така че от J до G през А закъснението е J(A)G = 8+18=26mS . Аналогично се изчисляват и останалите възможни маршрути от J до G но преминаващи през останалите съседни зутери J(I)G, J(H)G и J(К)G

J(I)G = 10+31 = 41 mS J(H)G = 12+6 = 18 mS J(K)G = 6+31 = 37 mS.

Най-малка е стойността на маршрута J(H)G=18 и този път ще се използва като в колоната за ново разстояние се наняся 18, а за изходяща линия се отбелязва H. Аналогични изчисления се правят за всички останали дестинации от J и резултатните данни са представени в последните две колони на таблицата.

Page 9: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

1.7 Проблемът “count-to-infinity” (броене до безкрайност) DVR работи добре на теория и има сериозни проблеми на практика. Методът схожда до коректно решение на рутинг таблицата, но това може да стане много бавно. В частност DVR реагира бързо на „добри” новини, но е бавен при „лоши” новини. Обяснението на явлението “count-to-infinity”е представено на следния пример. Дадена е топология на мрежа от вида на фиг.4.

Начало ∞ ∞ ∞ ∞ След 1 обмен 1 ∞ ∞ ∞ След 2 обмена 1 2 ∞ ∞ След 3 обмена 1 2 3 ∞ След 4 обмена 1 2 3 4

Фиг.4 Проблемът “count-to-infinity”: добрите новини пристигат бързо На фиг.4а метриката е hops. Приема се че възел А е пропаднал и всички други

рутери знаят това и са го отбелязяли в рутинг таблиците си със стойност ∞. Когато А се възстанови, другите рутери ще разберат това след обмен на своите вектори. По време на първия обмен В отбелязва 1 hop до А. Другите рутери считат все още, че А е неработещ. При следващия обмен С научава от В , че връзката с А е 1hop и актуализира таблицата си с дължината 2л Но рутери D и E още не знаят добрата новина. От примера се вижда, че добрата новина се разпространява със скорост 1hop за всеки векторен обмен. За мрежа с дължина N hops, с N обмена всеки рутер ще научи за новите възстановени линии. Начало 1 2 3 4 След 1 обмен 3 2 3 4 След 2 обмена 3 4 3 4 След 3 обмена 5 4 5 4 След 4 обмена 5 6 5 6 След 5 обмен 7 6 7 6 След 6 обмен 7 8 7 8 ... ∞ ∞ ∞ ∞

Фиг.5 Проблемът “count-to-infinity”: лошите новини пристигат бавно За случая на фиг.5р лошата новина е че А пропада от мрежата. При първия

обмен на вектори В не чува нищо от А. За щастие С казва „аз имам път до А с дължина 2 hops”. В не знае, че пътят на С към А преминава през В. В си мисли, че С има и други линии към А. Като резултат В счита, че може да стигне до А през С с дължина 3 hops. D и E не променят своите данни за А по време на първия обмен.

При втория обмен С отбелязва, че неговите съседи, В и D имат път до А равен на 3. След това С коригира своите данни за А да бъде 4. Последващите промени са дадени на фиг.5. Вижда се , че лошите новини пътуват бавно. По този начин всички рутери нарастват пътя си до А до ∞ но при голям брой обмени. Съответно в мрежата ще се задържат голям брой пакети, предназначени за А, които ще запълват рутерните таблици

A B C D

Е

A B C D

Е

Page 10: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

и общата пропускателна способност на мрежата ще се намалява. Този проблем е известен като “count to infinity”

1.8 Link State Routing (LSR) DSR рутинга се е ползвал в ARPANET до 1979г когато е заместен от LSR. Два са проблемите, които е трябвало да се решават:

Ако метриката е дължина на опашката, тогава не се отчита капацитета на линията при избор на маршрут. Първоначално в ARPANET всички линии са били еднакви, 56 Kbps, така че това не е било проблем. Но при включване на по високоскоростни трасета като 230 Kbps и 1,54Mbps разликата в пропускателната способност на каналите трябва вече да се отчита. Ако се смени метриката да съответства на пропускателната способност на линиите, то тогава алгоритъмът DSR много дълго време схожда при проблема “count-to-infinity” (при отпадане на линия). Затова DSR е изцяло сменен с LSR метод. Начинът на функциониране на LSR се заключава в 5 стъпки.

1. Откриване на всички съседни рутери и научаване на техните мрежови адреси. 2. Измерване на закъсненията или цената за достъп до всеки от съседните рутери. 3. Конструиране на пакет, който съобщава на всички други рутери какво рутерът е

научил за данните на своите съседи. 4. Изпращане на този пакет до всички други рутери. 5. Изчисляване на най-късия път до всеки рутер.

Тези 5 стъпки на изпълнение на LSR метода дефинира основната разлика с DSR метода. Докато при DSR рутер използва измервания само до съседните си рутери и прилага изчисления. DSR метода прилага само частична актуална информация за съставяне на рутиращите таблици. При LSR измерванията на всички рутери се прилагат за съставяне на рутиращата таблица на всеки рутер. Така LSR метода прилага актуална информация от измерванията за съставяне на рутиращите таблици.

1. Процедура за откриване на съседните рутери. Когато рутер се включи в мрежата, той първо разучава кои са му съседите. Това се извършва като рутерът изпраща специален HELLO пакет по всяка своя изходяща комункационна линия. Очаква се съседните рутери да изпратят отговор, идентифициращ съседния рутер. Затова имената на рутерите трябва да са уникални за да има сигурност, че един отговор не се е получил няколко пъти.

За случая на LAN с обща шина, еквивалентната топологична трансформация на мрежата е чрез въвеждане на мним възел N, фиг.6.

Фиг.6. Еквивалентна топологична трансформация на мрежа „обща шина” в „point-

to-point” мрежа

Page 11: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

2. Измерване на закъснениятапо линията. Трябва да се оцени от всеки рутер закъсненията до съседните рутери. Това се прави по същия начин, както е и в DSR метода. Рутерът изпраща ECHO пакет , като очаква съседът му да го върне. Чрез измерване на времето за отиване и връщане (round-trip) и разделянето му на 2, рутерът измерва закъснението до съответния съседен рутер. За по добра оценка измерването може да се направи многократно и резултатът да се усредни.

3. Създаване на Link State пакети. След като се събере информацията от измерванията до съседите си, рутерът трябва да създаде пакет със съответните дани и да ги предостави на всички рутери в мрежата. Данните в LS пакета започва с идентификатор на изпращача. За всеки съседен рутер закъснението е записано в пакета. Пример: Дадена е мрежата и закъснението по линиите, фиг.7.

Фиг. 7. Топология на мрежата за предаване на LS пакети

Съгласно приетата топология на мрежата, всеки рутер измерва закъснението на пакетите към своите съседни рутери. Като резултат всеки рутер формира LS пакет, съдържащ данните от измерванията. Параметърът Seq (sequential) определя поредния номер на измерването. Рутерите при получаване на LS пакет сравняват поредността на получения пакет съгласно номера Seq и ако той е по стар от вече получен такъв пакет, то стария пакет не се обработва. Параметърът Age определя до кога е актуален LS пакета. Това е необходимо за да може всички рутери в мрежата да ползват еднаква и актуална информация за състоянието на мрежата.

Създаването на LS пакетите е лесно. Тяхната структура е съгласно фиг.8. Трудно е да се определи кога това трябва да се направи. Едно решение е това да става периодично на равни интервали. Друго решение е когато се появи значимо събитие като отпадане на възел или линия или при промяна на техни свойства.

A B C D E F

Seq Seq Seq Seq Seq Seq Age Age Age Age Age Age

B 4 A 4 B 2 C 3 A 5 B 6 E 5 C 2 D 3 F 7 C 1 D 7 F 6 E 1 F 8 E 8

Фиг.8. Сруктура на LS пакетите

4. Разпространиние на LS пакети. Сложността на задачата за разпространение е в

това как надеждно да се разпространят пакетите. В противен случай различните рутери може да разчитат по различен начин данните и като следствие всеки рутер да счита и

Page 12: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

прилага различна топология на мрежата. Това ще доведе до несъвместимост на предаването на различни потоци от данни, цикли, недостигане на дестинации. Базов разпространяващ алгоритъм Основната идея е да се използва flooding, за да се разпространят LS пакетите. За да се следи flooding режима, на всеки пакет се дава номер “Seq”, който нараства при всеки нов изпратен пакет. Рутерите следят всяка двойка „рутер-източник”-„последователност” (Seq). Когато дойде нов LS пакет, той се проверява с вече съществуващия списък на получени пакети. Ако Seq е нов, той се препраща по всички линии, освен по входящата. Ако е вече изпращан, се премахва. Структурата на данните, използвани от рутер В е представена на фиг.9. Send

flags ACK

flags

Source Seq Age A C F A C F Data A 21 60 0 1 1 1 0 0 F 21 60 1 1 0 0 0 1 E 21 59 0 1 0 1 0 1 C 20 60 1 0 1 0 1 0 D 21 59 1 0 0 0 1 1

Фиг. 9 Структура на данните на рутер В

Всеки ред съответства на последно получен но все още необработен пакет.

Таблицата определя от къде идва пакета, неговия последователен (Seq) номер , възраст и данни. Освен това има потвърждаващи флагове за всяка линия на В към съседите А,С,F. Send flag означава , че пакетът трябва да се изпрати на съответната линия. Acknowledge flag означава, че пакетът трябва да се потвърди от съответния рутер. Link State пакетът от А идва директно и трябва да се изпрати на С и F и да се потвърди на А, съгласно обозначенията на флаговете. Аналогично пакетът от F трябва да се изпрати на А и С и да се потвърди на F. При случай E пакетът идва два пъти: веднъж през ЕАВ и втори път през EFB. Затова този пакет трябва да се изпрати само на С но да се потвърди на A и F. Ако дублиран пакет пристигне докато оригиналният е все още в буфера, битовете трябва да се променят. Например ако дубликат за състоянието на С пристигне от F преди четвъртия запис да е бил изпратен, шестте бита ще се променят на 100011 за да покажат, че пакета трябва да се потвърди на F но да не се праща вече.

5. Изчисляване на новите пътища в маршрутизиращата таблица. Когато рутерът събере пълното множество от LS пакети, той конструира пълния граф на мрежата, защото всички линии са представени със своите закъснения. Нормално всяка линия е представена по два пъти, следствие от посоката на измерване на закъсненията. Двете стойности може да се усреднят или да се ползват поотделно.

При наличие на всички данни за мрежата, то се прилага алгоритъма на Dijkstra локално, за да се определят най-кратките пътища към всяка дестинация за съответния рутер. Резултатът може да се сложи в рутинг таблицата и нормалното функциониране на мрежата да продължи.

За подмрежа с n рутери, при което всеки от тях има по m съседи, необходимата памет за входни данни е nхm. За големи мрежи това може да е съществено ограничение. Съответно трябва да се отчита и изчислителното време, необходимо за

Page 13: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

рутера да направи изчисленията. Независимо от по-голямата служебна дейност, която трябва да се извършва, LSR метода работи по-добре от DSR.

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

Понастоящем LSR метода е реализиран в рутиращия протокол OSPF (Open Short Path First). Друг LS базиран протокол е IS-IS (Intermediate System – Intermediate System). IS-IS маршрутизиращ протокол се ползва от Nоvell Netware за да рутира IPX пакети. Много от положителните свойства на протокола IS-IS бяха приложени и в OSPF, който е по нов от IS-IS.

1.9 Йерархично маршрутизиране При нарастване на размерността на мрежите, рутинг таблиците в рутерите също нарастват по обем. Съответно се изисква повече памет и повече процесорно време за да се обработват данните. Съответно и капацитетът на комуникационните линии трябва да нарастне за да поеме по-големия служебен трафик за статуса на рутерите и комуникационните връзки. Съответно не всеки рутер може да има данни за всеки друг рутер в мрежата. Така се достига до идеята за йерархично структуриране на мрежата като система от Автономни системи (AS). При йерархичното рутиране, рутерите са разделени на региони (domains). Всеки рутер знае всички детайли на своята подмрежа за да рутира пакети до всички дестинации в района си. Но такъв регионален рутер не знае нищо за вътрешната структура на другите райони. За да изпрати пакет към друг район, локалния рутер винаги изпраща пакена на този рутер, определен за връзка между отделни райони.

Съответно не всеки рутер може да има данни за всеки друг рутер в мрежата.

Така се достига до идеята за йерархично структуриране на мрежата като система от Автономни системи (AS). При йерархичното рутиране, рутерите са разделени на региони (domains). Всеки рутер знае всички детайли на своята подмрежа за да рутира пакети до всички дестинации в района си. Но такъв регионален рутер не знае нищо за

Page 14: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

вътрешната структура на другите райони. За да изпрати пакет към друг район, локалния рутер винаги изпраща пакена на този рутер, определен за връзка между отделни райони.

Пример. Зададена е мрежа, която е структурирана на 5 района. Пълната таблица на всички маршрути е представена в Табл.3. При прилагане на йерархична маршрутизация, рутинг таблицата се намалява значително, Табл.4. При йерархичното рутиране районитеа се агрегират за един единствен рутер за изпращача. Така за регион 2 пакетите минават само по линия 1В-2А. Останалия трафик минава през 1С-3В. Йерархичната таблица за примера е намалена от 17 на 7 7 записа. Това намалява обема на рутинг таблиците. Слабост на йерархичната маршрутизация е че не всеки маршрут се реализира по най кратък път. Например при рутиране от 1А до 5С в примера ще се мине през региони 3 и 4. А по краткото решение е през регион 2.

Пълна таблица за 1А Дестинация линия Hops 1A - - 1B 1B 1 1C 1C 1 2A 1B 2 2B 1B 3 2C 1B 3 2D 1B 4 3A 1C 3 3B 1C 2 4A 1C 3 4B 1C 4 4C 1C 4 5A 1C 4 5B 1C 5 5C 1B 5 5D 1C 6 5E 1C 5

Йерархична таблица за 1А Дестинация линия Hops 1A - - 1B 1B 1 1C 1C 1 2 1B 2 3 1C 2 4 1C 3 5 1C 4

В заключение оптимизацията в интернет има пряко приложение при рутиране на пакетите инфоормация в мрежата. Решава се в реално време задача за най кратък път. Особеностите по подготовката на данните за оптимизационната задача разделя маршрутизиращите методи в Интернет на DSR и LSR. DSR прилага реални измервания само за съседни рутери, при определяне на задачата за оптимизация. LSR прилага всички актуални измервания за дефиниране на задачата за оптимизация. Така задачата по адекватно представя състоянието на мрежата. LSR метода „заплаща” това свое преимущество чрез по-голям служебен информационен обмен, който допълнително ангажира изчислителните ресурси в мрежата.

Page 15: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

2. Приложение на оптимизацията във информационни услуги в Интернет: ПОРТФЕЙЛНА ОПТИМИЗАЦИЯ 2.1 Постановка на теорията на портфейла За вземане на решение при финансови инвестиции в икономическата теория е

приложена Теорията на портфейла [1,4]. Целта на разработката е да се приложи количествен анализ за определянето на удачното инвестиционно решение. Формално, теорията на портфейла дефинира оптимизационна задача, чието решение представлява делът на инвестицията, разпределен по отделни активи. Това разпределение е направено при търсене на минимум на риска за инвестицията и максимум печалба от нея. Инвеститорът разглежда всеки актив като перспектива за бъдещи доходи. По този начин по-добрата комбинация на финансови активи (акции) в портфейла ще доведе до по-добра бъдеща печалба и доход. В отчета е приложен портфейлен модел, които позволяват да се намери най-добрата комбинация от активи при съставянето на портфейла. Тук при направата на инвестицията се отчита неопределеността, която се оценява като диапазон на изменение на доходността на портфейла и се нарича риск. В теорията на портфейла се приема, че текущата стойност на активите може да се различава от тяхната средна изчислена стойност и че доходностите на активите се влияят помежду си [2, 5].

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

]cov(.)

21[min xExx TT

x

, (1) xT.1 = 1 , където cov(.) – е положителна симетрична матрица n x n и отчита корелацията на доходностите между различните активи, включени в портфейла; E - е вектор (n x 1) на средната доходност на активите, включени в портфейла; 1 - единичен вектор с размерност n x 1 ; е коефициент на инвеститорски предпочитания за направата на рискови инвестиции. Решението xi представлява делът на инвестицията за закупуване на i-та ценна книга. Съответно, формалното ограничение 121 nxxx определя, че цялата инвестиция трябва да бъде използвана за придобиване на ценни книги. Положителната стойност на xi означава, че тези ценни книги трябва да се закупят от инвеститора. Отрицателната стойност на xi означава, че инвеститорът трябва да продава тези ценни книги, ако има в наличност. Икономическият термин, който се прилага, е емитиране на този вид ценни книги. Съгласно законови нормативни разпоредби, не всички инвеститори имат право да емитират ценни книги. Затова допускането за отрицателност на xi р може да не е допустимо. Разрешаването на xi <0 се нарича „къси продажби”. Тъй като това не е винаги практически разрешено, то в задача (1) трябва да се включи и условие за неотрицателност на решенията xi >0 , i= 1,n- брой на ценните книги в портфейла. Рискът на портфейла е формализиран с квадратичната компонента

xxV Tp cov(.) . Тя е количествена оценка на риска на инвестицията на портфейла и

има смисъл на големина на диапазона, в който се изменя средната доходност на портфейла. Печалбата на портфейла се изчислява от произведението xEE T

p , което е претеглената сума на средните доходности на отделните активи. В теорията на портфейлната оптимизация се отчита, че инвеститорът не е привърженик на риска и той предпочита по-голяма доходност на портфейла. Затова

Page 16: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

задачата за портфейлна оптимизация се дефинира като оптимизационна, като се търси минимум на портфейлния риск Vp и максимум на доходността на портфейла. Тъй като тази задача води до многокритериална оптимизация и съответно решението няма да е единствено, в теорията на портфейла се въвежда коефициент на инвеститорски предпочитания . Този коефициент определя компромиса между риска и доходността, който един инвеститор може да приеме за направата на инвестицията. Така, рискът и печалбата на портфейла са дефинирани в обща целева функция от вида (1), като чрез коефициента се „управлява” отношението риск-печалба за даден инвеститор. Параметърът има неотрицателна стойност и приема стойности в диапазона [0,+ ]. Той представя в количествен вид рисковите тенденции на инвеститора. Ако =0, инвеститорът е „страхлив” и неговата цел е да минимизира нивото на риска в инвестицията ]cov(.)[min xx T

x. В случая =+ инвеститорът „забравя” за

съществуването на риск при инвестирането. Неговата цел е да максимизира печалбата на портфейла. В този случай относителното влияние на портфейлната печалба в целевата функция преобладава и оптимизационната задача става аналитично определена от вида ][max][min xExЕ T

x

T

x .

Численото определяне на коефициента е задача на финансовия анализатор и определя, че за различни инвеститори оптималната инвестиция е различна, независимо от общото състояние на пазара за всички инвеститори. В отчета е приложен един начин за използване на изходните данни за доходностите на активите за дефиниране и решаване на оптимизационната портфейлна задача.

2.2 Дефиниране на задача за портфейлна оптимизация Задачата на портфейлната оптимизация се илюстрира на примера на инвестиция в

три валути. Разглеждат се три валути, чиито курс се изменя във времето: американски долар (USD), английска лира (GBP) и швейцарски франк (CHF). Курсът на тези валути се приема за тяхна доходност. Счита се, че доходността от валутата е равна на нейния курс, което означава, че при продажба на тази валута инвеститорът ще получи доходност, определена от курса на съответната валута. Изходните данни за курса на валутите е взет от финансовата рубрика на сайта http://econ.bg . Курсът на валутите USD, GBP и CHF за периода 15.9.2008 – 30.9.2008 е представен на фиг.1.1.

Фиг. 2.1. Курс на валутите USD, GBP CHF и за периода 15.9.2008 – 30.9.2008

Тези изходни данни се използват за подготовката на параметрите на задачата за портфейлна оптимизация. Това са моментни доходности на ценните книги Ri i=1,n; n=3. Трябва да се изчислят средните доходности Ei и риска с на активите. Изходните данни от фиг.1 са систематизирани в Табл.1.1.

Page 17: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Табл.1.1 Данни за доходностите на валутите

DATE Курс USD [лв]

Курс GBP[лв] Курс

CHF[лв]

R1 - Доходност

USD %

R2 - Доходност

GBP %

R3 - Доходност

CHF % 30.9.20

08 1,36

30 2,45

74 1,23

44 2,029

-0,142

0,219

29.9.2008

1,3359

2,4609

1,2317

0,406

-0,348

0,408

26.9.2008

1,3305

2,4695

1,2267

-0,068

0,045

0,049

25.9.2008

1,3314

2,4684

1,2261

0,279

0,341

-0,163

24.9.2008

1,3277

2,4600

1,2281

-3,363

-0,974

0,31

23.9.2008

1,3739

2,4842

1,2243

1,868

0,902

-0,858

19.9.2008

1,3487

2,4620

1,2349

-1,913

0,094

0,521

18.9.2008

1,3750

2,4597

1,2285

0,299

0,294

0,-615

17.9.2008

1,3709

2,4525

1,2361

-0,81

-0,688

0,512

16.9.2008

1,3821

2,4695

1,2298

-0,6

0,529

0,392

15.9.2008

1,3905

2,4565

1,2225

Задача на портфейлна оптимизация може да състави с данните от курсовете на избраните валути. Тогава, икономическото съдържание на решението х е дял на инвестицията, измерена като нетна сегашна стойност (богатство). Обикновено инвеститорите предпочитат да се прилага другия основен икономечиски критерий – печалба от инвестицията. Тогава портфейлната задача ще определи делът на валутите, който трябва да се закупи, така че инвеститорът да получи максимална печалба при минимален риск. За да се дефинира така задачата на портфейлна оптимизация, е необходимо изходните данни за курса на валутите да се преобразуват в процент на изменение на валутата за всеки ден на разглеждания времеви хоризонт. Така са формирани последните три колони на табл.1, които определят изменението на доходността на валутите в % за всеки ден. Изчислени са:

старкурсстаркурсновкурсдоходност

.

Така доходността на USD за датата 16.9.2008 е определена от отношението

%6,0%100

3905,13905,13821,1

. Съответно за 17.9.2008 се получава

%81,0%100

3821,13821,13709,1

. Аналогично, са изчислени доходностите Ri , i=1,n, n=3, в % за другите дни на наблюдение на курсовете на трите използвани валути.

Определянето на средната доходност на валутите Ei , i=1,3 e с претеглените суми

ti

t

ti RPE

,

Page 18: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

където tP e вероятността в момента t да се появи доходността tiR [3].

Доходностите tiR за USD са равновероятни за поява през периода 16.9.2008 –

30.9.2008 и затова всяка данна се приема с равна вероятност

tP = N1

= 0,1; N=10 – брой на дните за доходността на валутите. Следователно, средната доходност на USD е

1873,0)6,0...406,0029,2(1,01 E . Аналогично,

0053,0)529,0...348,0142,0(1,02 E 15544,0)392,0...408,0219,0(1,03 E

Тези данни определят вектора на доходностите:

1544,00053,01873,0TE . Рискът на отделните валути се изчислява по формулата

t

iti

ti REP 22 )(

[3]. След съответни изчисления се получава

4147,05357,05355,1T

i .

Ковариационната матрица за оценяване на взаимната зависимост между доходностите на трите валути се изчислява за всеки компонент на матрицата. Тъй като портфейла съдържа 3 актива, то ковариационната матрица е симетрична с размерност 3х3.

Компонентите се изчисляват като: ))((cov t

jjt

tii

tij REREP

и

3577,2)]529,00053,0)(6,01853,0(...)348,00053,0)(406,01853,0()142,00053,0)(029,21853,0[(1,0cov 12

[3]

Аналогично, след изчисления се получава цялата ковариационна матрица.

covij USD GBP CHF

USD 2,357759 0,478106 -0,37725

GBP 0,478106 0,287003 -0,15122

CHF -0,37725 -0,15122 0,172026

С тези данни се дефинира аналитично задачата на портфейлна оптимизация. Чрез задаване и променяне на стойности на параметъра в диапазона [0,+ ], задачата е определена. За решаването й е използвана програмата Excel.

Page 19: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

2.3 Подготовка на данните за дефиниране на задачата за портфейлна оптимизация

Задачата на портфейлния анализ се дефинира като се използват оценки на средната доходност Еi , риск i на множество ценни книжа (i=1,N) и ковариационната матрица на доходностите на всяка двойка цени книги [2,3,5,6]. Средната стойност на доходността на актив i се дефинира като средната стойност на моментните доходности Rj, претеглени чрез своята “вероятност” Рj:

(1) Ei=

m

j 1Pj Rj.

При равна вероятност на наблюдаваната извадка зависимостта е

(2) Ei=

m

jm 1

1 Rj,

където m е броят на стойностите в наблюдаваната извадка. Стойността i е стандартното (квадратично) отклонение на доходностите на ценните книги i=1,N. Дисперсията (вариацията) на отклонението на доходността от средната си стойност се дефинира аналитично с израза

(3) i2=

m

j 1

Pj (Rj – Ej)2 ,

където Pj е вероятността за поява на доходност Rj При равна вероятност на наблюдаваната извадка зависимостта е

(4) i2=

m

jm 1

1 (Rj – Ej)2 .

Корелационните зависимости между доходностите на ценните книги се определят чрез претеглената средна стойност на всички произведения, като теглата са съответните вероятности: (5) jk = Pr( Rj,Rk) (Rj–Ej) (Rk–Ek), j k където Pr( Rj,Rk) е вероятността за едновременното съществуване на двойката (Rj, Rk) .

Корелацията показва обхвата, при който две доходности са корелирани и се изменят съвместно. Редът на избор на ценната книга не оказва влияние върху стойността на корелационния коефициент ij и матрицата на корелационните коефициенти е симетрична,

jk = kj и jk2 = kj

2. Поради по-лесното си изчисление, в портфейлния анализ се използва матрицата на

ковариациите на доходностите на ценните книги cjk , аналитично дефинирана като

(6) cjk =

],min[

1

kj mm

l

],min[

1

kj mm

pPr( Rl,Rp)[(Rl–El)(Rp–Ep)], i,j = 1,…,N.

Връзката между ковариацията и корелацията е (7) cjk = jk j k, като параметрите са: Ri - моментна стойност на печалба на ценна книга i; Ei - средна стойност на печалбата; COV(.) = { cjk }e ковариационната матрицата.

Горните изходни параметри от анализа на ценните книги се използват за изчисление на характеристиките на портфейла: средна доходност Ep и риск на портфейла τp . Тези характеристики на портфейла и неговото съдържание, дефиниращо

Page 20: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

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

Портфейлът се описва чрез пропорциите, инвестирани по всяка от ценните книги. xi, i=1,N, брой на активите в портфейла. Общата сума от пропорциите на инвестициите по отделни ценни книги трябва да съответства на относителна 100% или относителна единица

(8)

N

i 1

xi=1.

Инвестиционният смисъл на равенството

N

i 1xi=1 се изразява в инвестиране на целия

капитал. Aкo xi=0, то ценна книга i не е включена в портфейла. Отрицателна стойност на xi, означава продажба на ценна книга i, вместо нейното закупуване и задържане. В зависимост от ситуацията това може и да не е допустимо.

При отчитане на обема инвестиции по ценни книги xi , доходността на портфейла Ep се дефинира като сума от претеглените средни стойности на доходностите на отделните ценни книги

(9) Еp=

N

i 1xi.Еi,

където N е броят на ценните книги в портфейла, xi - делът на ценни книги i в портфейла, 0≤xi≤1. Рискът на портфейла се изчислява като претеглената сума

(10) p2 =

N

j

N

i 11 xi xj i,j i j =

N

j

N

ixi xj ci,j.

Задачата на портфейлна оптимизация е да определят тези стойности x1, x2,…,xN, които минимизират целевата функция: minx{–Ep + landa.Vp },

където Ep =

N

i 1xiEi, Vp =

N

i

N

j1 1

xixjcij.

Следователно задачата за портфейлна оптимизация има формален вид:

(11) minx {–

N

i 1xiEi + landa.

N

i

N

j1 1

xixjcij} при удовлетворяване на ограничението

N

i 1

xi = 1.

2.4 Резултати от решаването на задачата за портфейлна оптимизация При фиксиране на стойността на параметъра landa , задачата на портфейлна

оптимизация (11) е аналитично определена и може да се решава със средства на математическото програмиране. При изменение на стойноститте на landa се намира една точка на портфейл, която се представя в равнината (risk - return). При промяна на landa се намират различни портфейли и съгласно теорията на портфейлна оптимизация [4] те ще се намират на ефективната граница на допустимото множество портфейли. Изчислените данни от фиг. 2 са използвани за изчертаване на графиката risk( return), фиг.2.3.

Page 21: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Фиг.2.3. Граница на ефективните портфейли, съставена от решенията на

портфейлната задача Получената граница е изпъкнала и съгласно портфейлната теория инвестиционният

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

От направените изчисления се вижда, че фондовия пазар има свиване и инвестирането в него ще носи загуби. Загубите в доходността на портфейлите е в диапазона на 11 до 14%. Тази формален анализ на задачата на портфейлна оптимизация е направен за да се определи съдържанието на информационната услуга, която се създава в Интернет: решаване на задачата на портфейлна оптимизация във виртуалното пространство и предоставяне на резултатите на Web потребители.

2.5. Модели за реализиране на информационни услуги в Интернет

Тук се анализират системно-алгоритмичните решения за създаване на информационни системи в глобални мрежи. Текуща практика е всички системи да работят на принципа на клиент-сървър модела. Системно-алгоритмичните решения за изграждането на информационни системи в Интернет повтарят етапите на развитието на клиент-сървър моделите, които хронологично са развивани в практиката (т. 1.5) и сега се прилагат в Интернет.

2.5.1. Интернет услуги – първи етап

Това е реализация на клиент-сървър модел с два йерархични слоя. При тази информационна система един компютър в глобалната мрежата играе ролята на сървъра. Той предоставя данни до неограничен брой потребители чрез статични HTML страници по HTTP протокол [16]. При поискване на дадена страница от клиентски компютър сървърът я изпращa. Актуализирането на данните в страниците се осъществява ръчно. Ограничена е възможността за профилиране на информацията и приемане на данни от потребителя. Тези съобщения са статични и предварително подготвени от клиента или съхранени на сървъра. В тях няма динамично променяща се информация, създавана в интерактивен режим с клиента. Всяко едно съобщение се подготвя отделно от останалите преди да се изпрати.

Page 22: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Системно-алгоритмичните и програмни средства, използвани за реализирането на този модел са представени на фиг. 2.7.

Фиг.2.7. Модел на клиент-сървър информационна услуга в Интернет с два йерархични слоя

Първо ниво: клиентът е “тънък” и потребителите на информационната система работят с общодостъпни браузери – Netscape, Internet Explorer, Opera [17]. Практически всеки потребителски компютър има вграден в операционната му система или инсталиран към него браузер. За ползването на такава информационна система потребителят не се нуждае от първоначални инвестиции, тъй като браузър програмите, чрез които е реализиран клиентът в клиент-сървър системата, са достъпни за всеки.

Второ ниво: сървърът на информационната система е реализиран като програма, която работи в компютърна операционна среда като OS, Windows, Linux, AIX (Unix), Solaris (SUN), HP. В тази операционна среда програмата Web сървър (Web Server) работи като непрекъснат процес [18]. Това е програма, която следи клиентски запитвания от глобалната мрежа за определена “страница” с информация, търси тази страница и я връща на клиента като отговор на запитването. Ако страницата не бъде намерена, се връща код на грешка. Програмата Web сървър се разработва и предлага като пазарен или свободно достъпен продукт. Известни и разпространени Web сървър продукти са IIS (Internet Information Server/Windows), PWS (Personal Web Server/Windows), Apach (Linux, Unix), Tomcat (Linux, Unix), JWS (Java Web Server/SUN Microsystems) [11].

Взаимодействието между клиента и сървъра се осъществява посредством обмена на масиви от символна информация. Информацията е структурирана в тагова последователност, определена от стандарта HTML [19]. Транспортирането на масивите се осъществява чрез HTTP протокол. HTML езикът и HTTP протоколът са стандартизирани в средата Интернет.

Особеностите на този клас информационни системи са: прилагане на принципа на хипервръзката за реализиране на информационна

система; реализиране на интеграция между документи, пространствено разпределени

между различни сървъри; повишаване на функционалните възможности на статичните HTML страници

чрез вграждане на аплети, програмни кодове написани на различни скрипт езици като Javascript, Vbscript и др. [20]. 2.5.2. Интернет услуги – втори етап

Този клас информационни системи реализират модела на клиент-сървър с три йерархични нива. Информационните системи, реализирани по този модел са по-сложни в сравнение с предходните. Акцентирано е върху динамичното генериране и предоставяне на информация. При отправено потребителско запитване сървърът стартира обработваща програма (ASP, CGI, Servlet, PHP), която генерира HTML страница в реално време и я изпраща на клиента. Обработващата програма може да осъществява връзка с една или няколко бази от данни [11]. Това позволява да се

Page 23: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

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

Главната особеност на модела клиент-сървър с три нива е въвеждането на нов системно-алгоритмичен модул. Това е базата от данни и системата за нейното управление. В този нов модел се записват и актуализират данни, търси се и се генерира on-line информация. Базата от данни изпълнява функции, процедури и други дейности, свързани с поддържането и предоставянето на актуална информация от и за потребителите на информационната система [21]. Системно-алгоритмичните и програмните средства, използвани за реализирането на този модел, са представени на фиг. 2.8.

Фиг.2.8.. Схема на клиент-сървър приложения с три йерархични слоя

Първо ниво: това е клиентът, който е реализиран като “тънък” и функционира чрез общодостъпните браузери Internet Explorer, Netscape, Opera.

Второ ниво: реализирано е от Web сървъра. Това ниво има две нови особености спрямо модела клиент-сървър с две нива. Първо, операционната система на компютъра има допълнителни програмни средства за връзка и информационен обмен с базите от данни. Такива са например прилаганите драйвери ODBC (Open DataBase Connector) и JDBC (Java DataBase Connector) [22]. Тези модули реализират прехвърлянето на данни между сървъра и базата от данни. Второ, Web сървърите са усложнени, така че да може да стартират за изпълнение програми (приложения). Тези програми са наречени сървърски и позволяват да се усложни алгоритмичната обработка на обмяната на информация между клиента и сървъра. Съответно тези програми реализират нови информационни функции и услуги в бизнес процеса, каквито статичния Web сървър не може да реализира. За удобно съвместяване работата на Web сървъра със сървърните програми, са разработени специални алгоритмични езици. Широко приложение са намерили следните сървърни програми (езици) [15]:

+ .asp / ASP, работи с IIS на Microsoft; + .php / PHP, работи с Apach Web сървър; + .cgi / PERL, работи с Apach Web сървър;

Page 24: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

+ .java / JAVA, работи с Java Web сървър на SUN Microsystems; + .jsp / JAVA, работи с TomCat Web сървър.

Трето ниво: реализирано е от системата за управление на бази от данни. Използвани бази от данни в информационни системи в Интернет са: Microsoft Access, Microsoft SQL Server, Oracle, Informix, Sybase.

Характерна особеност е, че не съществува пълна съвместимост между различните Web сървъри, сървър езици, операционни системи и бази от данни. Широко приложение са намерили комбинациите от следните технологиите, показани в табл.1.1 [14]. Таблица 1.1 Web сървър Сървър език Операционна система База от данни IIS .asp Windows Access, SQL Apach .cgi, .php Windows/Linux/Unix MySQL, Oracle,

Informix JWS / TOMCAT .jsp Windows/Linux /Unix SQL, Oracle, Informix

Предимство на този клас информационни системи е активната комуникация между информационната система и клиента в реално време. Позволява се интегрирането на услуги, без да е необходима административна интеграция на организациите. Недостатък е, че свойствата на информационната система силно се влияят от начина на проектиране и реализиране на базата от данни, особено при лошо структурирана база от данни. Бавното зареждане на страниците на такива приложения може да се дължи на нерационално програмиран междинен слой, а не само на бавна клиентска връзка с Интернет.

2.5.3. Интернет услуги – трети етап

Този клас информационни системи е нов за теорията и практиката на информационните услуги, предлагани в Интернет. Информационни системи от този модел изпълняват сложни алгоритмични обработки на информацията. Изискването за on-line функциониране налага строги ограничения към времето за обработка на информацията и генерирането на отговор към потребителското запитване. Решения за реализиране на сложна алгоритмична обработка в условията на глобалната мрежа се търсят чрез алгоритмично-функционално декомпозиране и специализация на приложенията при обработката на информацията.

Фиг.2.9. Модел на клиент-сървър информационна система от трети етап

При този нов вид информационни системи обработващата програма на сървъра реализира връзки не само с бази от данни, но и с други приложения. Това позволява да се създадат комплексни информационни решения, като генерирането на графични изображения, създаването на динамични доклади/отчети от данни, изпращане на e-mail съобщения в реално време [15]. Изпращането на e-mail съобщения се извършва

Page 25: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

автоматично в интерактивни виртуални приложения под формата на автоматичен абонамент за e-mail новини или се генерират съобщения от системата към определен кръг от потребители (например при регистрация на потребител в системата). При динамичното генериране на графики и изображения се използват актуални данни, извлечени от базата от данни и обработени с допълнителни модули, като например библиотеката GD при PHP сървър програмите [16]. Информационната система работи интерактивно с потребители и с приложенията, които поддържа.

С увеличване на обема и сложността на информационната обработка времето за отговор на потребителското запитване се увеличава и системата може да стане неоперативна. Например критична във времето е такава обработка на информация, при която се решава оптимизационна задача, тъй като алгоритмичната обработка на данни е сложна. Главната особеност на този нов клиент-сървър модел е въвеждането на ново йерархично ниво на логическата и алгоритмична обработка на данните фиг. 2.9. Моделът клиент-сървър с три нива е запазен съгласно фиг. 1.14. Появява се четвърто йерархично ниво, съдържащо програмен модул, наречен в настоящия проект алгоритмичен сървър. Той изпълнява сложната алгоритмична обработка на информацията.

Структурата на информационни системи с четири йерархични нива е следната:

Ниво 1: клиентът запазва своя характер като “тънък” и се реализира чрез достъпните браузери: Netscape, Internet Explorer и др.

Ниво 2: съставено е от Web сървъра, който работи като постоянен процес в операционната среда. Операционната среда е версия на Windows, Linux (Red Hat, SuSe), Solaris, Unix (AIX). Тук са включени и модулите за работа с бази данни ODBC и JDBC. Web сървърът има повишени функционални възможности. Това се реализира чрез добавяне на модули, които поддържат и изпълняват:

сървърски програми, използващи езици за програмиране като PHP, ASP, JAVA; графичен интерфейс към клиента чрез генериране на графики в реално време; проверки дали клиентът е оторизиран да работи с информционната система; този

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

обработка и поддържане на XML-структурирана информация; XML технологията (eXtended Markup Language) позволява увеличаване на функционалните възможности за обработка на информация както от страна на сървъра, така и от страна на клиента [23]; XML функционални възможности са вградени в клиентски браузери, като Internet Explorer, версия 5.0 и по-висока;

поддържане на различни протоколи за информационен обмен между модулите от информационната система, например протокола Z39-50 [23];

поддържане на функции за криптиране на данни и постигане на сигурност на предаване на информацията;

поддържане на протоколи за обмен на данни между приложения, разположени на различни компютри, например протокола SOAP (Simple Object Access Protocol), който е XML базиран и се използва за обмяна на информация между отдалечени модули, работещи на различни компютри [24];

поддържане на стандартизирани функции за извикане и изпълняване на услуги от сървъра. Например поддържане и изпълнение на режими на работа, дефинирани съгласно стандарта WSDL (Web Service Description Language), при което се обменят данни между компютри в XML формат. Тези данни описват мрежовите услуги и вида на информацията – документно ориентирана или процедурно ориентирана, поддържани

Page 26: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

и изпълнявани от отдалечени компютри и сървъри на приложения. Съобщенията и операциите със съобщенията се описват абстрактно и след това се реализират с конкретен мрежови протокол като във формата на съобщенията се добавя адресът на крайния потребител [23];

поддържане на стандарти за дефиниране и предоставяне на сървър-ресурси като файлове, програми, технически устройства; например при изпълнение изискванията на стандарта UDDI (Uiversal Description Discovery and Integration) се създава многофункционална платформа, позволяваща приложения и Web услуги да намират бързо информация, разпределена в Интернет [25].

Ниво 3: представено е от системите за управление на базите данни Microsoft Access, Microsoft SQL Server, MySQL, SYBASE, Oracle, Informix. То реализира функции по съхранение, търсене и актуализиране на структурирана информация.

Ниво 4: това е системно-алгоритмично ниво, което се реализира от външни програми (приложения). Те могат да са реализирани на различни алгоритмични езици: C++, C#, Fortran, Cobol. Алгоритмичната структура на програмите от това ниво е ориентирана към сложна обработка на потребителската информация. Програмите директно ползват ресурсите на операционната система: файлове, памет, процесор, а не непосредствено чрез Web сървъра, както е в случая на сървърските програми от второ ниво. Така се изпълняват изискванията за своевременно обработване на информацията с по-сложни алгоритми.

Системно-алгоритмичната структура на този нов модел информационна система с четири нива е представен на фиг. 2.10.

Логическите функции на обработка на информацията могат да наложат реализирането на модели от фиг. 2.10.Б) и 2.10.В), където алгоритмичният сървър има директна връзка с Web сървъра и/или с базата данни.

Особеностите на модела на информационна система с четири йерархични нива са: съществуването на нов системно-алгоритмичен модул, наречен в проекта

алгоритмичен сървър;

Фиг.2.10. Структура на клиент-сървър модел с четири йерархични нива

Page 27: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

реализирането на сложни обработки на информацията от алгоритмичния сървър; реализирането на алгоритмичния сървър чрез различни програмни езици,

различни от тези на сървър-програмите съобразно спецификата на информационната система; съобразяване на изискванията за работа на информационната система в реално

време с функционирането на алгоритмичния сървър.

Примери за този нов клас информационни системи са: on-line системи за управление на процеси; on-line-статистически системи – измерване на реални процеси като транспортен и комуникационен трафик; on-line-пазари и борси; on-line-инвестиране, консултиране, финансово спекулиране (игра на стоковата борса).

2.6. Проектиране на Web базирани информационни средства за

решаване на задачата на портфейлна оптимизация Информационната услуга портфейлна оптимизация е реализирана на функционалния принцип клиент-сървър. Системно-алгоритмичната структура на информационната система е приета да се изпълнявя, съгласно резултатите от анализа в глава 1 с четири йерархични функционално-логически нива (фиг.3.1). На фигурата са отбелязани основните модули, обект на изследване в проекта.

Фиг.3.1. Йерархична функционално-логическа структура с четири нива на информационната

услуга портфейлна оптимизация

Page 28: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Първото логическо ниво е представено от клиента. В направената разработка клиентът е реализиран чрез обикновен браузер, който се свързва със сървърската част на информационната система. Данните, получавани от сървъра, са в .html формат. Комуникацията със сървъра се изпълнява по http протокол. Това е общо разпространено решение за информационни услуги в Интернет и монографията не са правени нови добавки.

Второ логическо ниво е представено от сървърската част на информационната система, която поддържа комуникациите и взаимодействията с клиента от I-во логическо ниво чрез глобалната мрежа. Второто логическо ниво функционира в среда Linux, която в последствие може да се промени в среда Windows. Промяната е препоръчителна от съображения за многофункционално ползване на наличния компютър-сървър, което не може да се реализира в средата на Linux. Промяната на средата от Linux в Windows налага преконфигуриране на системни променливи и настройване на Windows, което не е общодостъпно решение, но е направено в монографията. В операционната среда Windows се изпълнява като постоянен процес Web сървър Apache. Web сървърът управлява комуникационния обмен между клиента и информационната система. Алгоритмичната обработка на информацията се изпълнява от програмен интерпретатор PHP. Последният е функционално усложнен с библиотеките GD за графична обработка на информацията. Алгоритмичните и функционалните свойства на информационната услуга портфейлна оптимизация се реализират от набора сървърски програми .php и .php3. Те са разработени в тази монография и представляват приложни разработки за реализиране на информационната услуга портфейлна оптимизация.

Третото логическо ниво е съставено от системата за управление на базата от данни MySQL. Системата е проектирана и изпълнена чрез логическата мрежа от таблици, функции, режими на търсене, така че да се реализират информационните функции на услугата портфейлна оптимизация.

Четвъртото логическо ниво е реализирано като алгоритмичен сървър. Тук се изпълняват специфичните задачи, които са компонент на информационната услуга портфейлна оптимизация. Алгоритмичният сървър е проектиран и разработен в настоящото изследване. Той реализира функции по решаване на оптимизационни задачи, извършва математически изчисления на икономически характеристики, изпълнява програмираните в него инвестиционни алгоритми. Алгоритмичният сървър е съставен от програми, написани на С++, но компилирани и съхранени в двоичен вид. Те се извикват и изпълняват от .php сървърските програми от второ логическо ниво, вследствие избора на клиента за изпълнение на съответна информационна функция. Методите, реализирани в алгоритмичния сървър, са оценявани и изчислително настройвани в тестови условия в среда на Matlab. Резултатите от тези оценки са дадени в настоящата глава. Впоследствие методите, изследвани в средата на Matlab, са реализирани на С++, компилирани и включени като двоични модули в алгоритмичния сървър на информационната услуга портфейлна оптимизация.

Специфичното решение, направено в това изследване, се състои: в настройване и конфигуриране на сървърската среда във второ логическо ниво; в проектирането и създаването на .php сървърските програми във второ логическо ниво; в проектирането и разработването на информационно-логическата структура на базата от данни, необходима за реализиране на услугата портфейлна оптимизация на трето логическо ниво; проектирането и изпълнението на алгоритмичен сървър на четвърто логическо ниво, който изпълнява изчислителни операции и оптимизация по методите и алгоритмите, изведени в гл. 3 на монографията.

Page 29: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Сайтът за потрфейлна оптимизация се състои от файлове и директории, като разпределението по директории е визуализирано на фиг.4.4, а файловото разпределение в директориите на сайта е представено в Приложение Г.

Представени са някои от основните функции на сайта. Началната страница на сайта (фиг. 3.3, т.0 на Home), е представена на фиг.3.5. Тя се изпълнява и обработва от програмни модули Frameset\index.html, Frameset\front.html. Информационната сруктура на тази страница се състои от четири главни секции:

- секция информация за фондовете: Fund Information; - секция за съставяне и оценка на оптимални портфейли: Investor Profile; - секция за съхранение, анализиране и изменение на потребителски портфейли:

Portfolio Management;

Фиг.3.3. Информационна структура на приложението на портфейлна оптимизация

Page 30: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Анализ на секция “Информация за фондове” (Fund Information) Изчислените данни се представят в графичен и табличен вид (фиг.3.3).

Фиг.4.3. Общо представяне на фонд в сайта на портфейлна оптимизация

Извикването на обект от тип Portfolio се реализира със следния код в програмния модул Frameset\ fundview1.php3, при който се осъществява търсене и ползване на данни от базата данни на информационната система: mysql_pconnect($dbhost, $dbuser, $dbpass); mysql_select_db($dbname); $row=sql_details_fetch($fnid); $pf = array($fnid=>1); $pf = new Portfolio($pf, $dbname, $dbhost, $dbuser, $dbpass, time() - mktime(0,0,0,1,1,1975), time(), -1);

Методите на класа Portfolio сортират и обработват данните, които се извикват от базата данни за подготовката на екрани от фиг.4.3, 4.4.

Page 31: Лекция на тема - BAS, IIT-BAS · Представена е задачата на портфейлна оптимизация, която средство за инвестиране

Фиг. 4.4. Историческото развитие на фонд в сайта на портфейлна оптимизация

Заключение Представени са две приложения на оптимизацията като форма на обработка на информацията в Интернет. Анализирани са две приложения на оптимизацията:

- при системното функциониране на Интернет за определяне на маршрутизацията на пакетите в мрежата;

- при проектиране и реализиране като информационна услуга в Интернет. Разгледана е конкретна услуга за оптимизиране на финасови инвестиции: поргтфейлна оптимизация.

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