«correctness-proof» 태그된 질문

알고리즘의 정확성 증명을 요청하는 질문입니다.

29
왜 컴퓨터 코드를 작성하는 것보다 수학 증명을 작성하는 것이 내결함성이 더 좋은가요?
나는 버그없이 컴퓨터 프로그램을 작성하는 것보다 실수를하지 않고 수학 증명을 작성하는 것이 훨씬 쉽다는 것을 알았습니다. 이것은 내 경험보다 더 널리 퍼진 것 같습니다. 대부분의 사람들은 프로그래밍에서 항상 소프트웨어 버그를 만들고, 실수가 무엇인지 알려주는 컴파일러를 가지고 있습니다. 한 번에 실수없이 큰 컴퓨터 프로그램을 작성한 사람에 대해 들어 본 적이 없으며 …

13
“일부 테스트 사례 시도”휴리스틱을 속이는 방법 : 올바르게 보이지만 실제로는 잘못된 알고리즘
어떤 문제에 대한 알고리즘이 올바른지 테스트하기 위해 일반적인 출발점은 여러 간단한 테스트 사례에서 직접 알고리즘을 실행하는 것입니다. 몇 가지 간단한 "코너 사례를 포함하여 몇 가지 예제 인스턴스에서 시도해보십시오. ". 이것은 휴리스틱입니다. 알고리즘에 대한 많은 잘못된 시도를 신속하게 제거하고 알고리즘이 작동하지 않는 이유를 이해하는 데 좋은 방법입니다. 그러나 알고리즘을 학습 할 …

2
욕심 많은 알고리즘이 올바른지 증명하는 방법
나는 욕심 많은 알고리즘을 가지고 있다고 생각하지만 확실하지 않습니다. 올바른지 어떻게 확인합니까? 욕심 많은 알고리즘의 정확성을 입증하는 데 사용할 기술은 무엇입니까? 일반적인 패턴이나 기술이 있습니까? 나는 이것이 초보자를 가리키는 데 사용할 수 있는 참조 질문 이되기를 희망 합니다. 따라서 일반적인 범위보다 광범위합니다. 적어도 하나의 예로 설명되어 있지만 많은 상황을 다루는 …

1
셔플 알고리즘의 정확성을 증명하는 방법?
임의의 순서로 항목 목록을 생성하는 두 가지 방법이 있으며 이들이 공정하게 공정한지 (비 편향적인지) 확인하고 싶습니다. 내가 사용하는 첫 번째 방법은 전체 요소 목록을 구성한 다음 셔플을 수행하는 것입니다 (예 : Fisher-Yates 셔플). 두 번째 방법은 매번 삽입 할 때마다 목록을 셔플 링하는 반복적 인 방법입니다. 의사 코드에서 삽입 기능은 …


5
정확성 증명이없는 알고리즘의 예
우리는 Hoare 논리를 가지고 있습니다. 알고리즘이 옳다는 것이 여전히 가능하지만 그것이 옳다는 증거가없는 이유는 무엇입니까? 알고리즘이 C로 표현되었다고 가정하면 단계적으로 알고리즘이 수행해야 할 작업을 수행한다고 주장 할 수 있습니다. 그래서 내 질문은 : 옳지 만 정확성을 증명할 수없는 알고리즘의 예를 알려주세요. 편집 : 작은 배경은 내가 가고있는 곳을 명확히하는 데 …

6
구간에서 두 숫자의 최대 XOR 찾기 : 이차보다 더 잘 할 수 있습니까?
두 개의 숫자 과 r 이 주어지고 l ≤ i에 대해 max ( i ⊕ j ) 를 찾고 싶다고 가정 해 봅시다 .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 …

3
이 Quicksort 정확성 증명을 이해하려고
이 증거는 귀납에 의한 증거이며 다음과 같습니다. P (n)은 "Quicksort가 길이 n의 모든 입력 배열을 올바르게 정렬합니다"라는 주장입니다. 기본 사례 : 길이가 1 인 모든 입력 배열이 이미 정렬되었습니다 (P (1) 보유) 유도 단계 : 고정 n => 2. 길이 n의 일부 입력 배열을 고정합니다. P (k)가 모든 k <n을 …



6
프로그램 검증 기술로 Heartbleed 장르의 버그가 발생하지 않을 수 있습니까?
Heartbleed 버그와 관련하여 Bruce Schneier는 4 월 15 일 Crypto-Gram에 'Catastrophic'이 올바른 단어라고 썼습니다. 1에서 10까지는 11입니다. ' 몇 년 전에 특정 운영 체제의 커널이 최신 프로그램 확인 시스템으로 엄격하게 검증되었다는 것을 읽었습니다. 따라서 Heartbleed 장르의 버그가 오늘날 프로그램 검증 기술의 적용을 통해 발생하는 것을 막을 수 있습니까? 아니면 이것이 …

3
나사산 안전을 증명할 수 있습니까?
이러한 변수를 수정하는 변수와 명령어로 구성된 프로그램과 동기화 기본 요소 (모니터, 뮤텍스, 자바의 동기화 또는 C #의 잠금)를 고려할 때 그러한 프로그램이 스레드로부터 안전하다는 것을 증명할 수 있습니까? 스레드 안전 또는 레이싱 조건과 같은 것을 설명하기위한 공식적인 모델이 있습니까?
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.