Презентация Аналіз алгоритмів онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Аналіз алгоритмів абсолютно бесплатно. Урок-презентация на эту тему содержит всего 51 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Математика » Аналіз алгоритмів
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:51 слайд
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.46 MB
- Просмотров:70
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
![Чарльз Бебб дж Як т льки Анал](/documents_6/69569f3f410288904973dd8f893a2880/img2.jpg)
Содержание слайда: Чарльз Беббідж
«Як тільки Аналітична Машина буде створена, вона буде спрямовувати майбутній розвиток науки. Кожний раз коли буде потрібно отримати результат за її допомоги буде ставати питання який напрямок обрахунків, що проводяться машиною приведуть нас якомога швидше до результату» – Чарльз Беббідж 1864.
В 1834 році Ч. Беббідж почав роботу над створенням програмованої обчислювальної машини, яку він назвав аналітичною.
http://ru.wikipedia.org/wiki/%D0%91%D1%8D%D0%B1%D0%B1%D0%B8%D0%B4%D0%B6,_%D0%A7%D0%B0%D1%80%D0%BB%D1%8C%D0%B7
№4 слайд
![Running time За Бебб джем,](/documents_6/69569f3f410288904973dd8f893a2880/img3.jpg)
Содержание слайда: Running time
За Беббіджем, час роботи вашого алгоритму вимірювався в тому, скільки разів ви маєте прокрутити ручку Аналітичної машини.
Що змінилося зараз?
Ми отримали електронну ручку, але все одно сильно залежимо від того, скільки разів ми маємо повторити дискретні операції
№6 слайд
![Дискретне перетворення Фур](/documents_6/69569f3f410288904973dd8f893a2880/img5.jpg)
Содержание слайда: Дискретне перетворення Фур'є
Дискретне перетворення Фур'є (ДПФ, Discrete Fourier Transform) - це математична процедура, що використовується для визначення гармонічного, або частотного, складу дискретних сигналів.
ДПФ є однією з найбільш розповсюджених і потужних процедур цифрової обробки сигналів.
ДПФ дозволяє аналізувати, перетворювати і синтезувати сигнали такими способами, які неможливі при неперервній (аналоговій) обробці.
Самий простий алгоритм (brute force) потребує N2 кроків
Алгоритм швидкого перетворення Фур’є (FFT) використовує N logN кроків. (був винайдений Гаусом ще в 1805 році)
№7 слайд
![Проблема Основне питання, що](/documents_6/69569f3f410288904973dd8f893a2880/img6.jpg)
Содержание слайда: Проблема
Основне питання, що ставить собі програміст – чи зможе моя програма вирішити поставлену задачу на великих вхідних даних.
Чому моя програма така повільна?
Чому моїй програмі не вистачає оперативної пам’яті?
Кнут в 1970 році сказав, що ми можемо використовувати науковий підхід до розуміння продуктивності програми.
№8 слайд
![Науковий п дх д, що застосову](/documents_6/69569f3f410288904973dd8f893a2880/img7.jpg)
Содержание слайда: Науковий підхід, що застосовується для аналізу алгоритмів
Науковий підхід:
спостереження, якихось характеристик з реального світу, зазвичай на основі точних вимірювань
пропозиція гіпотетичної моделі, що узгоджується з спостереженнями
пророкування подій на основі запропонованої моделі
перевірка передбачень за допомогою подальших спостережень
обгрунтування за допомогою повторення процесу, поки гіпотеза і спостереження не співпадуть
№9 слайд
![Принципи наукового п дходу](/documents_6/69569f3f410288904973dd8f893a2880/img8.jpg)
Содержание слайда: Принципи наукового підходу
Експерименти мають бути відтворюємими, що б інші могли впевнитися в вірності моделі, самостійно перевіривши гіпотезу.
Гіпотези мають бути фальсифікуємими, що б можна було точно знати, коли гіпотеза не вірна.
Висловлювання, що приписується Ейнштейну:
Жоден об’єм експериментальних досліджень не може довести, що я правий, але всього один експеримент може довести, що я помиляюся.
№10 слайд
![Спостереження Почнемо з](/documents_6/69569f3f410288904973dd8f893a2880/img9.jpg)
Содержание слайда: Спостереження
Почнемо з спостереження.
3-Sum.
Дано N різних цілих чисел, скільки трійок в сумі дають 0?
На вхід ми отримали числа:
30, -40, -20, -10, 40, 0, 10, 5
Відповідь:
30, -40, 10
30, -20, -10
-40, 40, 0
-10, 0, 10
Ця проблема має зв’язок з обчислювальною геометрією
Розглянемо розв’язання цієї проблеми
Перша спроба - TreeSumBF
№12 слайд
![Вим рювання часу роботи Як](/documents_6/69569f3f410288904973dd8f893a2880/img11.jpg)
Содержание слайда: Вимірювання часу роботи
Як виміряти час роботи програми?
Автоматично.
Ми можемо скористатися класом Stopwatch()
int[] a = In.readInts(testFile);
Stopwatch stopwatch = new Stopwatch();
System.out.println(count(a));
double time = stopwatch.elapsedTime();
System.out.println(time);
№13 слайд
![Емп ричний анал з Ми можемо](/documents_6/69569f3f410288904973dd8f893a2880/img12.jpg)
Содержание слайда: Емпіричний аналіз
Ми можемо запустити програму на різних об’ємах даних і оцінити витрачений час.
Давайте спробуємо запустити з більшими об’ємами і подивимося на результат.
8ints.txt
4
Витрачений час 0.0
1Kints.txt
70
Витрачений час 0.654
2Kints.txt
528
Витрачений час 5.133
4Kints.txt
4039
Витрачений час 41.941
8Kints.txt
32074
Витрачений час 330.783
№16 слайд
![Анал з даних Намалю мо](/documents_6/69569f3f410288904973dd8f893a2880/img15.jpg)
Содержание слайда: Аналіз даних
Намалюємо log-log графік T(N) від N
ми отримали лінію з нахилом 3
рівняння такої прямої має вигляд:
lg(T(N))=3lgN+lga, де а константа
а це еквівалентно
T(N) = aNb = aN3
Таким чином ми отримали вираз часу виконання у вигляді функції від об'єму вхідних даних.
Можна взяти одну точку наших даних для визначення а
Наприклад:
T(8000) = 51,1 = a*80003, звідки а=9,98*10-11
Тепер ми можемо використовувати формулу
для пророкування часу виконання для великих N
№18 слайд
![Анал з даних Незалежн чинники](/documents_6/69569f3f410288904973dd8f893a2880/img17.jpg)
Содержание слайда: Аналіз даних
Незалежні чинники
Алгоритм
Вхідні дані
визначають значення b в степені.
Чинники залежні від системи
апаратне забезпечення
програмне забезпечення
система
разом з незалежними чинниками впливають на значення константи a
Погані новини. Важко отримати точні вимірювання.
Хороші новини. Набагато простіше і дешевше, ніж в інших підходах.
№19 слайд
![Математична модель Д. Кнут](/documents_6/69569f3f410288904973dd8f893a2880/img18.jpg)
Содержание слайда: Математична модель
Д. Кнут – «незважаючи на складність, в принципі можливо побудувати математичну модель, що описує час виконання будь якої програми»
Загальний час виконання програми залежить від:
вартості виконання кожного оператора
властивість комп’ютера, компілятора і операційної системи
частота виконання кожного оператора
властивість програми і вхідних даних
№22 слайд
![Математична модель Ск льки](/documents_6/69569f3f410288904973dd8f893a2880/img21.jpg)
Содержание слайда: Математична модель
Скільки інструкцій буде виконано в залежності від N?
int count = 0;
for (int i =0; i<N; i++)
if (a[i] == 0)
count++;
Відповідь:
оголошення змінних – 2
привласнення значень -2
оператор порівняння – N
порівняння рівності N
доступ до елементів масиву N
збільшення на одиницю – від N до 2N
№23 слайд
![Математична модель Ск льки](/documents_6/69569f3f410288904973dd8f893a2880/img22.jpg)
Содержание слайда: Математична модель
Скільки інструкцій буде виконано в залежності від N?
int count = 0;
for (int i =0; i<N; i++)
for (int j =i+1; j<N; j++)
if (a[i]+ a[j] == 0)
count++;
Відповідь
оголошення змінних – N+2
привласнення значень – N+2
оператор порівняння – ½(N+1)(N+2)
перевірка рівності – ½N(N-1)
доступ до елементів масиву - N(N-1)
збільшення на одиницю – від 1/2N(N-1) до N(N-1)
№28 слайд
![Математична модель Ск льки](/documents_6/69569f3f410288904973dd8f893a2880/img27.jpg)
Содержание слайда: Математична модель
Скільки операцій доступу до масиву в наступному коді?
int count = 0;
for (int i =0; i<N; i++)
for (int j =i+1; j<N; j++)
for (int k =j+1; k<N; k++)
if (a[i]+ a[j] +a[k]== 0)
count++;
Відповідь:
Як ви бачите ми не обраховуємо всі операції, ми беремо найдорожчі.
№35 слайд
![Б нарний пошук Перший](/documents_6/69569f3f410288904973dd8f893a2880/img34.jpg)
Содержание слайда: Бінарний пошук
Перший алгоритм бінарного пошуку опублікований в 1964 році
Перший алгоритм без помилок – в 1992 році
Помилки в Arrays.binarySearch() знайдені в 2006 році.
Подивимося на реалізацію BinarySearch
Твердження.
Бінарний пошук використовує 1+lgN порівнянь ключа і елементів масиву розміру N
№39 слайд
![Анал з В реальност наш](/documents_6/69569f3f410288904973dd8f893a2880/img38.jpg)
Содержание слайда: Аналіз
В реальності наші приклади набагато складніші ніж ті, що ми розглядали.
І складність нашого алгоритму залежить від вхідних даних.
Тому ми можемо оцінити найкращий випадок,
самий простий випадок вхідних даних
та оцінити найгірший випадок (верхня межа вартості),
самий складний варіант вхідних даних
отримаємо гарантію того, що гірше вже не буде
Після цього ми можемо отримати середню складність. Очікувані витрати для випадкових вхідних даних.
№43 слайд
![Теор я алгоритм в. Приклад .](/documents_6/69569f3f410288904973dd8f893a2880/img42.jpg)
Содержание слайда: Теорія алгоритмів. Приклад 1.
Ціль:
визначити складність проблеми
розробити «оптимальний» алгоритм
Приклад: 1-Сума = «Чи є в масиві 0»?
Верхня межа:
Brute-force алгоритм для 1-Суми: перебрати всі елементи масиву.
Час виконання O(N)
Нижня межа: Необхідно довести, що немає алгоритму, що робить краще
В будь якому разі має перевірити всі N елементів (бо будь-який не перевірений елемент може бути 0)
Час виконання
Оптимальний алгоритм:
Верхня межа = нижній межі
Brute-force алгоритм для 1-Суми є оптимальним і його час виконання
№44 слайд
![Теор я алгоритм в. Приклад .](/documents_6/69569f3f410288904973dd8f893a2880/img43.jpg)
Содержание слайда: Теорія алгоритмів. Приклад 2.
Ціль:
визначити складність проблеми
розробити «оптимальний» алгоритм
Приклад: 3-Сума
Верхня межа:
Brute-force алгоритм для 3-Суми.
Час виконання O()
Але ми знайшли кращий алгоритм з складністю
Нижня межа:
В будь якому разі має перевірити всі N елементів
Час виконання
Відкрита проблема:
Необхідно знайти оптимальний алгоритм
№47 слайд
![Типов показники використання](/documents_6/69569f3f410288904973dd8f893a2880/img46.jpg)
Содержание слайда: Типові показники використання пам’яті об’єктами в Java
Заголовок об’єкта. 16 байт
Вказівник. 8 байт
Доповнення. Кожний об’єкт використовує розмір кратний 8 байтам, а тому інколи потрібно доповнення, що б зайняти цілий блок.
Приклад. Об’єкт Date використовує 32 байти пам’яті.
public class Date{
private int day;
private int month;
private int year;
}
№49 слайд
![Приклад. Запитання Ск льки](/documents_6/69569f3f410288904973dd8f893a2880/img48.jpg)
Содержание слайда: Приклад.
Запитання:
Скільки пам’яті займає об’єкт WeightedQuickUnionUF як функція від N
(використати нотацію для відповіді)
public class WeightedQuickUnionUF {
private int[] id;
private int[] sz;
private int count;
public WeightedQuickUnionUF(int n){
count = n;
id = new int[n];
sz = new int[n];
for (int i = 0; i<n; i++) id[i]=i;
for (int i = 0; i<n; i++) sz[i] = 1;
}
…
}
№50 слайд
![Приклад. public class](/documents_6/69569f3f410288904973dd8f893a2880/img49.jpg)
Содержание слайда: Приклад.
public class WeightedQuickUnionUF {
private int[] id;
private int[] sz;
private int count;
public WeightedQuickUnionUF(int n){
count = n;
id = new int[n];
sz = new int[n];
for (int i = 0; i<n; i++) id[i]=i;
for (int i = 0; i<n; i++) sz[i] = 1;
}
…
}
Відповідь:
Заголовок 16 байт.
id: 8(вказівник) +4N+24
sz: 8+4N+24
count: 4
Можливе доповнення 4
8N+88 8N байтів.
Скачать все slide презентации Аналіз алгоритмів одним архивом:
Похожие презентации
-
АЛГОРИТМ ЕВКЛИДА
-
Алгоритм решения простых задач Шнайдер Надежда Михайловна учитель начальных классов МБОУ «Балайская СОШ» Уярского района Кра
-
Свойства алгоритма
-
Криптография, математические алгоритмы при шифровании. Муниципальное общеобразовательное учреждение «Лицей города Троицка»
-
По математике "Определения и свойства алгоритмов" - скачать
-
Алгоритмы старинных задач
-
Алгоритм письменного сложения и вычитания многозначных чисел. Яворская Татьяна Федоровна учитель начальных классов ГОУ СОШ
-
По математике "Алгоритм решения задач по теме «Законы сохранения»" - скачать
-
Алгоритмы теории игр
-
По математике "Муравьиные алгоритмы" - скачать