главнаяреклама на сайтевакансииуслуги Коллекция рефератов Otherreferats
 
 
Искать с помощью Google   Искать с помощью Яндекса   Искать в рубриках
 

"Жадібні" алгоритми

Жадібні алгоритми - оптимізаційні методи розв’язку задачі. Приклади їх використання - градієнтний метод, алгоритм Пріма, Крускала, динамічне програмування. Вирішувач інтелектуальних задач. Альфа-бета відтинання і евристика як способи скорочення перебору.

Рубрика: Программирование, компьютеры и кибернетика
Вид: реферат
Язык: украинский
Дата добавления: 13.06.2010
Размер файла: 37,2 K

Полная информация о работе Полная информация о работе
Скачать работу можно здесь Скачать работу можно здесь

рекомендуем


Отправить свою хорошую работу на сайт просто. Используйте форму, расположенную ниже.

Название работы:
E-mail (не обязательно):
Ваше имя или ник:
Файл:


Подобные работы


1.   Розв’язання задач лінійного програмування
Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.
курсовая работа [363,8 K], добавлена 03.12.2009
2.   Розробка алгоритмів та складання програм на мові програмування MS VisualBasic for Application
Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.
контрольная работа [742,9 K], добавлена 27.04.2010
3.   Дослідження однокрокових методів розв’язання звичайних диференційних рівнянь
Розвиток виробництва і широке використання промислових роботів. Алгоритми методів, блок-схеми алгоритмів розв'язку даного диференційного рівняння. Аналіз результатів моделювання, прямий метод Ейлера, розв’язок диференціального рівняння в Mathcad.
контрольная работа [59,1 K], добавлена 30.11.2009
4.   Алгоритми сортування
Прості алгоритми сортування та їх програмування. Сортування вставками - алгоритм сортування на основі порівнянь. Злиття двох упорядкованих послідовностей (сортування злиттям). Ідея алгоритму швидкого сортування. Алгоритм сортування на основі порівнянь.
лабораторная работа [631,3 K], добавлена 19.08.2010
5.   Аналіз методів рішення задачі лінійного програмування симплекс методом
Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.
курсовая работа [437,9 K], добавлена 24.01.2011
6.   Дослідження однокрокових методів розв’язання звичайних диференційних рівнянь
Огляд та аналіз методів розв’язання системи диференціальних рівнянь та вибір методів рішення. Алгоритми методів Ейлера. Вибір методу рішення задачі Коші. Рішення диференціальних рівнянь. Отримання практичних навиків програмування на мові Паскаль.
курсовая работа [174,3 K], добавлена 06.03.2010
7.   Рішення задач цілочисленного програмування
Постановка лінійної цілочисленної задачі. Теоретичні основи методів відсікання. Задача з булевими змінними. Перший та другий алгоритми Гомори. Алгоритм Дальтона й Ллевелина. Поняття припустимого й оптимального рішення. Область пошуку екстремума.
курсовая работа [187,8 K], добавлена 27.01.2011
8.   Дослідження методів інтерполяції
Дослідження методу сплайнів для вирішення задачі інтерполяції. Вибір методів технічних та інструментальних засобів вирішення задачі, їх алгоритми. Розробка логічної частини програми, результати обчислень. Розв’язання задачі в пакетах прикладних програм.
курсовая работа [278,5 K], добавлена 03.12.2009
9.   Економічні задачі лінійного програмування і методи їх вирішення
Теоретичні основи та приклади економічних задач лінійного програмування. Розробка математичної моделі задачі (запис цільової функції і системи обмежень) і програмного забезпечення її вирішення за допомогою "Пошуку рішень" в Excel симплекс-методом.
курсовая работа [993,9 K], добавлена 10.12.2010
10.   Математичне моделювання економічних систем
Задача лінійного програмування. Розв’язання задачі геометричним методом. Приведення системи рівнянь до канонічного вигляду. Розв’язання симплекс-методом. Розв’язок двоїстої задачі. Задача цілочислового програмування і дробово-лінійного програм.
контрольная работа [385,2 K], добавлена 04.06.2009
11.   Вирішення задач лінійного програмування
Використання графічного методу і симплекс-методу при вирішенні задач лінейного програмування. Сутність двоякого симплекс-методу і М-методу, приклади використання. Аналіз методу динамичного програмування. Специфіка вирішення матричної, антагоністичної гри.
контрольная работа [1,1 M], добавлена 02.07.2011
12.   Розв'язання інженерних задач мовою програмування VBA
Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.
курсовая работа [27,7 K], добавлена 03.04.2009
13.   Метод "Стрілянини"
Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлена 03.12.2009
14.   Графічне та геометричне моделювання та інтерактивні системи
Розповсюдження об'єкно-орієнтованих мов програмування. Моделювання предметної області. Постановка задачі. Інформаційне забезпечення. Алгоритм розв'вязання задачі. Пограмне забезпечення. Основні задачі при моделюванні предметної області. Стан сутностей.
курсовая работа [772,8 K], добавлена 03.10.2008
15.   Інформаційно-довідкова система
Методи, засоби та алгоритми розв'язування задачі. Розробка інтерфейсу програми для забезпечення діалогу: ком'ютер - користувач при роботі з базою даних довідкової системи навчальних закладів. Програма та її опис, призначення. Логічна структура програми.
курсовая работа [234,8 K], добавлена 14.03.2010
16.   Багатокритеріальна задача лінійного програмування
Розв’язок багатокритеріальної задачі лінійного програмування з отриманням компромісного рішення (для задач з кількома функціями мети) за допомогою теоретико-ігрового підходу. Матриця мір неоптимальності та рядок функції мети. Модуль опису класу.
курсовая работа [588,8 K], добавлена 15.05.2011
17.   Розробка засобами Delphi дидактичного ілюстративного матеріалу для розв’язання задачі з аналітичної геометрії. Знаходження точки перетину прямої з віссю координат, якщо ця пряма проходить через введені точки
Технологія візуального проектування. Аналітичне розв’язання задачі в загальному вигляді. Програмування в консольному режимі. Сценарій розв’язання задачі в Delphi та блок-схема алгоритму. Програмний код додатку та опис інтерфейсу з екранними копіями.
курсовая работа [2,4 M], добавлена 22.06.2009
18.   Методи дослідження операцій
Основні визначення дослідження операцій. Модель "затрати-випуск" В.В. Леонтьєва. Загальний вигляд задачі лінійного програмування. Розв'язання за допомогою симплекс-методу. Економічна інтерпретація основної та спряженої задач. Поліпшення плану перевезень.
учебное пособие [1,1 M], добавлена 27.12.2010
19.   Метод Крамера
Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Крамера, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [47,7 K], добавлена 23.04.2010
20.   Метод Жордана Гаусса
Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Гаусса, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [40,3 K], добавлена 23.04.2010

Другие подобные документы


15

“Жадібні” алгоритми

(реферат)

1. Види жадібних алгоритмів

Жадібні алгоритми відносяться до оптимізаційних методів і полягають в послідовному локальному поліпшенні розв'язку задачі. Тобто на кожному кроці оптимізаційна функція не повинна зменшуватися.

Практично жадібні алгоритми полягають у послідовному переборі варіантів для кожного елементу розв'язку задачі. З усіх локальних варіантів вибирається найкращих і відбувається перехід до наступного вузла. Після обходу всіх вузлів відбувається перехід до наступного кроку.

2. Градієнтний метод

Одним з прикладів жадібних алгоритмів є градієнтний метод. Він використовується, якщо допустима множина розв'язку D=Rn (n - розмірний евклідовий простір), а цільова функція диференційована. Градієнтом функції у точці х=(x1 .. xn) називається вектор

.

Градієнт задає задає напрямок найшвидшого зростання функції. Тоді у градієнтному методі , де k - номер ітерації, л - величина кроку у напрямку антиградієнта.

Аналогія - знайти найвищу точку на горбистій місцевості із зав'язаними очима.

Досягається локальний, а не глобальний екстремум.

3. Алгоритм Пріма

Для графа G=<V, E> задані ваги його ребер. Остовим деревом графу G є неорієнтоване дерево T=<V, E/>, яке містить всі вершини графу . Вартість остового дерева визначається як вартість його ребер.

Алгоритм Пріма полягає в знаходженні остового дерева мінімальної вартості.

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

Побудова дерева починається з ребер, що мають мінімальну вартість.

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

Приклад використання алгоритму Пріма:

Дано граф G:

Процес побудови остового дерева:

Кандидати

Ребра

Вартість

Остове дерево

(1, 2)

(1, 2)

10

(2, 5) (1, 4)

(1, 4)

10

(2, 5) (4, 6)

(4, 6)

10

(2, 5) (6, 7)

(2, 5)

20

(6, 7)

(6, 7)

(1, 3) (5, 7)

(1, 3)

30

4. Алгоритм Крускала

Алгоритм Краскала відрізняється від алгоритма Пріма тим, що одночасно будується не одне остове дерево, а кілька дерев одночасно (ліс). По мір зростання окремих дерев вони об'єднуються в спільне остове дерево.

Нові вершини можуть приєднуватися тільки до активних вершин (голови купи).

Розглянемо роботу алгоритму Крускала до графу

Послідовність кроків побудови остового дерева

Голова купи

Остовий ліс

Дія

Результуюче дерево

(V1, V5)

{V1, V5}

додати

{V1,V5}, {V2}, {V3}, {V4}, {V6}

(V3, V5)

{(V1, V5) (V3, V5)}

додати

{V1, V3, V5}, {V2}, {V4}, {V6}

(V3, V6)

{(V1, V5) (V3, V5) (V3, V6)}

додати

{V1, V3, V5, V6}, {V2}, {V4}

(V5, V6)

{(V1, V5) (V3, V5) (V3, V6)}

залишити

{V1, V3, V5, V6}, {V2}, {V4}

(V2, V4)

{(V1,V5) (V3,V5) (V3,V6), (V2,V4)}

додати

{V1, V3, V5, V6}, {V2, V4}

(V1, V4)

{(V1, V5) (V3, V5) (V3, V6) (V2,V4) (V1, V4)}

додати

{V1, V3, V5, V6, V2, V4}

Результуюче остове дерево

5. Динамічне програмування

Динамічне програмування - це такий алгоритмічний метод, коли рішення задачі є результатом певної послідовності розв'язків. Метод побудований на послідовному аналізі варіантів. На кожному кроці відкидаються розв'язки, серед яких не може бути оптимального, і таким чином множина конкурентоспроможних варіантів стискується (до одного або кількох варіантів). (Для задачі про рюкзак потрібно послідовно знайти кількість одиниць кожного предмета).

В динамічному програмуванні обробляється одночасно послідовність рішень, серед яких повинне бути оптимальне. Послідовність поступово звужується. В динамічному програмуванні використовують рекурентні рівняння. В рекурентних відношеннях є два підходи до пошуку варіантів розв'язку: прямого і зворотного.

Числа Фібоначчі

Розглянемо техніку динамічного програмування на класичному прикладі побудови послідовності чисел Фібоначчі. N-не число Фібоначчі рекурсивно визначається так:

Потрібно написати програму, яка обчислює N-не число Фібоначчі. Цю задачу можна вирішити двома способами: за допомогою рекурсії або за допомогою динамічного програмування.

Рекурсивний спосіб можна реалізувати функцією:

Function Fib(n:integer):integer;

Begin

if n=0 then fib:=1;

else if n=1 then fib:=1;

else fib:=fib(n-1)+fib(n-2);

End;

Недоліком рекурсії є обчислення чисел Фібоначчі, менших N, по кілька разів. В дин. програм. для обчислення чисел Фібоначчі використовують дві змінні, які зберігають значення двох останніх чисел. Наступне число визначається через два попередніх.

Динамічне програмування - такий спосіб побудови алгоритмів, коли рішення задачі можна розбити на під задачі. Розв'язок наступної задачі - суперпозиція попередніх розв'язків. Рекурсивна схема може використовуватися для бектрекінгу - пошуку у графі з поверненням назад. Задача знаходження гамільтонових циклів має експоненційну складність: знайти, шлях, що проходить по одному разу через всі вершини графа.

6. Вирішувач інтелектуальних задач

Вирішування інтелектуальних задач - штучна система, яка сприймає формалізований опис деякої задачі і на основі його розробляє план рішення.

6.1 Загальний вирішувач задач

В кінці 50-х й на початку 60-х розвивалася програма „Загальний вирішувач задач” (GPS - Ge). В рамках цієї програми створено програму „Логік-теоретик” (А. Ньюелл, Г. Саймон, Дж. Шоу) для доведення теорем математичної логіки (генерація гіпотези й перевірка її істиності).

Схема прийняття рішення наступна:

1. Проаналізувати поточну ситуацію.

2. Порівняти ситуацію з бажаною; якщо відмінностей немає - кінець роботи.

3. З'ясувати, які оператори можна застосувати для зменшення існуючої різниці.

4. Послідовно застосовувати знайдені оператори.

5. Повернутися на крок 1.

Задача про мавпу і банани (стати на скриньку). Метод виявився не достатньо універсальним - його не вдалося використати для гри в шахи.

6.2 Ігрові задачі як задачі прийняття рішень

Ігрові задачі - планування цілеспрямованих дій і прийняття рішень. Характерна особливість ігрових задач - наявність суперника.

Теорія ігор - математична дисципліна, яка вивчає аспекти поведінки учасників конфліктних ситуацій та має на меті виробити оптимальні для кожного з них стратегії (засоби досягнення цілей). Конфліктною називають ситуацію, коли гравці мають різні цілі (різні функції виграшу).

Розглянемо найпростіший тип ігор - одно крокові антагоністичні ігри.

6.3 Основи теорії однокрокових ігор

Нехай грають два гравця А і В.

Гравець А може вибрати одну з m стратегій бi, i=1..m.

Гравець В може вибрати одну з n стратегій вj, j=1..n, .

Обидва гравці здійснюють свій вибір одночасно, після чого гравець В платить гравцю А суму rij, яка залежить від обраних стратегій. Оскільки виграш одного гравця дорівнює програшу іншого, сума виграшів двох гравців дорівнює нулю і така гра називається грою з нульовою сумою або антагоністичною.

Одно крокові антагоністичні ігри характеризуються матрицею виграшів, елементи якої дорівнюють виграшам одного з гравців (А).

Одно крокові ігри можна розглядати як прийняття рішень в умовах невизначеності.

6.4 Позиційні ігри з оптимальними стратегіями

Досить дослідженими є позиційні ігри двох осіб: шахи, шашки, „хрестики-нолики”... .За правилами гри кожен гравець по черзі робить свій хід. Ці ігри є детермінованими і з повною інформацією, відносяться до скінченних антагоністичних ігор.

Базою теорії ігор вважається результат Льюїса і Райфа: для кожного гравця у будь-якій позиції існує оптимальна стратегія, тобто алгоритм визначення чергового ходу, що призведе до оптимального результату.

Ключовим поняттям в теорії позиційних ігор є дерево гри (дерево аналізу). Воно будується таким чином:

1. Кожна вершина дерева відповідає окремій позиції.

2. Корінь дерева відповідає позиції, що аналізується.

3. Листки дерева відповідають завершальним позиціям з відомою функцією виграшу.

4. Дуги відповідають ходам.

Суперники традиційно носять імена б і в. За домовленістю вважається, що правило вибору ходу в початковій позиції належить гравцеві б. Вершини, в яких право ходу належить б, називають б-вершини; відповідно називають в-вершини.

За домовленістю стандартний хід в шахах, шашках і т.д. вважається півходом, а хід складається з ходу гравця і відповіді суперника.

Дерево гри може бути експліцитним (задається явно) й імпліцитним (породжується по мірі необхідності).

Для пошуку по дереву використовують стратегії в ширину та глибину.

Процедура, яка дозволяє знайти оптимальну стратегію, називається мінімаксною.

Мінімаксна процедура є процедурою повного перебору, яка задається правилами:

1. Мінімаксна оцінка завершальних позицій дорівнює функції виграшу.

2. Мінімаксна оцінка альфа-вершини дорівнює максимуму мінімаксних оцінок безпосередніх наступників.

3. Мінімаксна оцінка бета-вершини дорівнює мінімуму мінімаксних оцінок безпосередніх наступників.

Розглянемо дерево гри:

Рис.19.1. Аналіз на основі мінімаксної процедури, виділено оптимальний варіант для оптимальної гри суперників.

Розрахуємо кількість позицій для гри в шахи. Якщо на кожному кроці можна зробити 30 ходів, а партія складається з 80 півходів , то кількість позицій 3080.

Обмеження глибини перебору

Для обмеження перебору звичайно зменшують глибину перебору d. Горизонтом для даної позиції називають множину позицій для глибини d.

На горизонті отримуються абсолютно завершальні (оцінка позиції визначена) та відносно завершальні позиції. Для відносно завершальних позицій вводяться статичні оціночні функції, які оцінюють отриману ситуації без врахування динаміки. Наприклад, для шахів враховується кількість та вид фігур, їх розміщення та ін.

В шашках статична оцінка може бути обчислена як функція 6k+4m+u, де k - перевага в дамках, m - у простих шашках, u - перевага в рухливості.

7. Альфа - бета відтинання

Альфа-бета відтинання є одним зі способів скорочення перебору.

Відтинанням у деякій вершині називається припинення аналізу цієї вершини разом з усіма її наступниками.

Базова ідея відтинань наступна: якщо деякий хід досягає максимально можливого виграшу, то інші його альтернативи не розглядаються. З кожною вершиною зв'язується попередня оцінка, яка змінюється у ході аналізу її наступників. Перед початком аналізу попередня оцінка альфа-вершини дорівнює - ?, а бета-вершини +?. Після завершення аналізу всіх наступників попередня оцінка набуває остаточного значення, тобто стає остаточною оцінкою.

Попередня оцінка альфа-вершини дорівнює максимуму з остаточних оцінок безпосередніх наступників.

Попередня оцінка бета-вершини дорівнює мінімуму з остаточних оцінок безпосередніх наступників.

Правила відтинань:

1. Відтинання у альфа-вершині відбувається, коли попередня оцінка цієї вершини стає не меншою, ніж попередня оцінка будь-якого бета-попередника.

2. Відтинання у бета-вершині відбувається, коли попередня оцінка цієї вершини стає не більшою, ніж попередня оцінка будь-якого альфа-попередника.

Рис.19.2. Ілюстрація альфа-бета відтинань

Якщо глибина перебору d, а b - коефіцієнт розгалуження, то при повному переборі потрібно розглядати варіантів bd. Альфа-бета відтинання потребує приблизно 4bd/2 позицій.

Огляд сучасних шахових програм

Програми Hiarch, Rebel, Mchess при виконанні на процесорах Pentium показують якість гри на рівні гросмейстерів.

Спеціалізований шаховий комп'ютер RS/6000 в 1997 році виграв у Каспарова з рахунком 3,5 на 2,

Прогрес шахових програм досягнуто:

1. За рахунку зростання швидкості обчислень.

2. Використанням дебютних та ендшпіль них бібліотек.

3. Бібліотека найкращих ходів.

4. Метод форсованих варіантів (перевіряються форсовані варіанти нижче глибини перебору - шахи і взяття фігур).

8. Евристичні алгоритми

8.1 Евристики як засіб зменшення перебору

Евристики - правила субоптимальної поведінки в певних ситуаціях.

Прислів'я - приклади евристик (Сім разів відміряй, а потім відріж).

Евристика є довільним правилом, стратегією, методом, хитрістю, спрощенням або іншим засобом суттєвого зменшення, обмеження обсягу пошуку розв'язку.

8.2 Задача розфарбовування графу

В 19 ст. постало питання, якою мінімальною кількістю фарб можна розфарбувати топологічну карту. Тоді з'явилася ідея розглядати карту як планарний граф, і так з'явилася проблема розфарбовування графу мінімальною кількістю фарб. Спочатку розглядалися лише планарні, а потім - й довільні графи. До здачі розфарбовування графу можна звести задачі класифікації об'єктів, розподілу ресурсів...

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

Нехай G=(V, E) - неорієнтований граф, для якого є n вершин. Розфарбовуванням графу називатимемо відображення ц множини V на множину С таку, що С=с1 .. сm. Елементи множини С називатимемо фарбами.

Вірним розфарбовуванням графу називатимемо таке, при якому дві суміжні вершини розфарбовані різними кольорами. Вірне розфарбовування розбиває множини V на m хроматичних класів.

Хроматичним числом ч(G) називають мінімальне число фарб. Називатимемо граф k-розфарбовуванням, якщо ч(G)<>k, тa хроматичним, якщо ч(G)=k.

З розфарбовуванням графу пов'язано дві задачі: 1) знайти хроматичне число графу ч(G); 2) знайти хоча б одне вірне розфарбовування.

Для планарного графу доведено гіпотезу, що його можна розфарбувати не більше ніж 4-ма фарбами.

8.3.Точні та евристичні методи розфарбовування

Точні методи мають експоненційну складність.

Для графу G кількість фарб ч(G)<=k<=n.

Теорема Кенінга. Граф є біхроматичним (2-х хроматичним), тоді й тільки тоді, коли він не містить непарних простих циклів. З теореми випливає, що будь-яке дерево є біхроматичним.

Для оцінки верхнього значення хроматичного числа графу використовується Теорема Уелша-Пауел. Нехай у графі G вершини впорядковані за спаданням степенів. Тоді

.

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


Полная информация о работе Полная информация о работе ""Жадібні" алгоритми"
Скачать работу можно здесь Скачать работу ""Жадібні" алгоритми" можно здесь
Сколько стоит?

Рекомендуем!

База знаний — документы, размещенные на сайте посетителями за 10 лет. Мы их заботливо отсортировали и отредактировали. Уверены, они помогут Вам в учебе и работе.

Глобальная сеть рефератов — продавайте ваши работы по 0,5 - 1,0$. За 5 минут создайте свою собственную отличную полнофункциональную коллекцию рефератов. Ваша коллекция будет выглядеть так (гармонично встроенная в средину страницы) или так (отдельная страница), полностью соответствуя дизайну вашего сайта (шрифт, цвет фона, ссылок, текста).

Каталог лучших рефератов сети — лучшие рефераты под единой системой поиска. Возможна сортировка работ по алфавиту. Более 300 000 работ, база постоянно пополняется.

Рефераты на заказ — региональный сервис. Вы сможете заказать выполнение работы в своем городе, выбрать наиболее оптимальный ценовой вариант. Для Вас работают более 5400 авторов в 770 городах мира.

Другие рефераты — работы, которые по качественным критериям не подходят для коллекции рефератов Revolution. Но мы не могли отказать авторам в публикации их работ на страницах проекта.

Каталог лучших художественных произведений на ALLBEST.RU — завоевавшие признание читателей и новые книги популярных авторов, которые представлены в on-line библиотеках: МОШКОВА, ЛИТПОРТАЛ, АЛЬДЕБАРАН и ALLBEST.RU.

Рекламное агентство "Олбест" — размещаем баннеры клиентов во всех баннерообменных сетях Рунета, обучаем специфике контекстной рекламы в Яндекс-Директе, Google AdWords и Бегуне, организовываем и проводим яркие и эффективные рекламные кампании в Интернет, используя комплексную рекламу (контекстную и баннерную).

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

база знанийлитература