Запитання з тегом «correctness-proof»

Запитання, що задають запитання щодо доказів правильності алгоритмів.

29
Чому запис математичних доказів є більш відмовними, ніж написання комп'ютерного коду?
Я помітив, що мені набагато простіше записати математичні докази, не допускаючи помилок, ніж записати комп’ютерну програму без помилок. Здається, це щось більш поширене, ніж просто мій досвід. Більшість людей роблять програмні помилки весь час у своєму програмуванні, і у них є компілятор, який би їм говорив, у чому полягає помилка. …

13
Як обдурити евристику "спробувати деякі тестові випадки": Алгоритми, які здаються правильними, але насправді є невірними
Щоб спробувати перевірити правильність алгоритму для якоїсь проблеми, звичайним початковим пунктом є спробувати запустити алгоритм вручну на декількох простих тестових випадках - спробуйте його на кількох прикладах проблемних випадків, включаючи кілька простих "кутових випадків" ". Це чудова евристика: це чудовий спосіб швидко вилучити багато неправильних спроб алгоритму та зрозуміти, чому …

2
Як довести жадібний алгоритм правильно
У мене є жадібний алгоритм, який я підозрюю, що може бути правильним, але я не впевнений. Як перевірити, чи правильно це? Які методи використовувати для доказування жадібного алгоритму правильним? Чи є загальні візерунки чи методи? Я сподіваюся, що це стане еталонним питанням, яке можна використовувати для вказівки на початківців; отже, …

1
Як довести правильність алгоритму переміщення?
У мене є два способи скласти список предметів у випадковому порядку і я хотів би визначити, чи є вони однаково справедливими (неупередженими). Перший метод, який я використовую, - це побудувати весь список елементів, а потім зробити переміщення на ньому (скажімо, перемішання Фішера-Йейта). Другий метод є скоріше ітераційним методом, який зберігає …


5
Приклад алгоритму, якому бракує доказів коректності
У нас є логіка Хоара. Чому все ще можливо, що алгоритм правильний, але немає доказів його правильності? Припустимо, алгоритм виражений у С. Тоді ми можемо поетапно стверджувати, що він робить те, що повинен робити. Отже, моє запитання: Наведіть мені приклад правильного алгоритму, але не має підтвердження коректності. EDIT: Я думаю, …

6
Знаходження максимуму XOR двох чисел в інтервалі: чи можемо ми зробити краще, ніж квадратичне?
Припустимо, нам дано два числа і і ми хочемо знайти для l \ le i, \, j \ le r .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r Наївний алгоритм просто перевіряє всі можливі пари; наприклад, у рубінах у нас буде: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if …

3
Намагаючись зрозуміти це доказ коректності Quicksort
Цей доказ є доведенням за допомогою індукції і йде так: P (n) - твердження, що "Quicksort правильно сортує кожен вхідний масив довжиною n". Базовий регістр: кожен вхідний масив довжиною 1 вже відсортований (утримується P (1)) Індуктивний крок: fix n => 2. Зафіксуйте вхідний масив довжиною n. Необхідно показати: якщо P …

1
Мікрооптимізація для обчислення дистанційного обчислення: чи справедлива вона?
У Вікіпедії подано реалізацію для динамічної схеми програмування знизу вгору для відстані редагування. Це не повністю відповідає визначенню; внутрішні клітини обчислюються таким чином: if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := minimum ( d[i-1, j] + 1, // a deletion …


3
Чи можна довести безпеку нитки?
З огляду на програму, що складається із змінних та інструкцій, що змінюють ці змінні, та примітиву синхронізації (монітор, мютекс, синхронізований Java або замок C #), чи можна довести, що така програма безпечна для потоків? Чи існує навіть формальна модель для опису таких речей, як безпека ниток або умови гонок?

6
Чи можуть методи перевірки програм запобігти появі помилок жанру Heartbleed?
З приводу помилки із сердечкою, Брюс Шнайер написав у своїй крипто-грамі від 15 квітня: "Катастрофічний" - це правильне слово. За шкалою від 1 до 10 це 11. ' Я прочитав кілька років тому, що ядро ​​певної операційної системи було суворо перевірено сучасною системою перевірки програм. Чи можуть, таким чином, запобігти …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.