그래프를보고 다른 지점과 가장 가까운 지점을 즉시 찾을 수있는 이유는 무엇입니까?하지만 프로그래밍에 O (n) 시간이 걸립니까?


122

내가 명확히하자 :

주어진 점 수 n의 산점도를 감안할 때, 정신적으로 플롯의 어떤 점에 가장 가까운 점을 찾으려면 그래프의 대부분의 점을 즉시 무시하고 선택 범위를 근처의 작고 일정한 점으로 좁 힙니다. .

그러나 프로그래밍에서 점 집합 n이 주어지면, 가장 가까운 점을 찾으려면 시간 인 다른 모든 점을 확인해야합니다 .O(n)

그래프의 시각적 인 시각은 내가 이해할 수없는 일부 데이터 구조와 같다고 생각합니다. 때문에 프로그래밍 같은 쿼드 트리로 더욱 체계적인 방법으로 점을 변환하여, 하나에서 가장 가까운 지점을 찾을 수 에서 지점 에서 시간 또는 ammortized 시간.n k log ( n ) O ( log n )knklog(n)O(logn)

그러나 데이터 구조 조정 후 포인트 찾기에 대한 알려진 불멸화 알고리즘 (아직 찾을 수 있음) 은 아직 없습니다 .O(1)

그렇다면 왜 육안 검사만으로 이것이 가능해 보이는가?


36
당신은 이미 그리고 대략 어디에있는 모든 지점을 알고 있습니다. 당신의 눈을위한 "소프트웨어 드라이버"는 이미 이미지를 해석하는 데 많은 노력을 기울였습니다. 당신의 비유에서 당신은 실제로는 그렇지 않을 때이 작품을 "무료"로 고려하고 있습니다. 포인트 위치를 어떤 종류의 옥토 트리 표현으로 나눈 데이터 구조가 이미 있다면 O (n)보다 훨씬 더 잘 수행 할 수 있습니다. 정보가 의식 부분에 도달하기 전에 뇌의 잠재 의식 부분에서 많은 전처리가 발생합니다. 이런 종류의 비유에서 그것을 잊지 마십시오.
Richard Tingle

20
나는 당신의 가정 중 하나 이상이 일반적으로 유지되지 않는다고 생각합니다. '소형'교란이있는 원에 모든 점이 배치되고 원의 중심이 1 개의 추가 점 P가 있다고 가정합니다. 당신이 P에 가장 가까운 지점을 찾으려면, 당신은 해고 할 수 있는 그래프의 다른 점을.
collapsar

4
우리의 두뇌가 정말 놀랍기 때문입니다! 싼 대답처럼 들리지만 사실입니다. 우리는 이미지 처리가 어떻게 작동하는지에 대해 잘 모릅니다.
Carl Witthoft

7
기본적으로 뇌는 눈치 채지 않고 공간 분할을 사용합니다. 이것이 정말로 빠르다는 사실이 일정한 시간을 의미하는 것은 아닙니다. 유한 해상도로 작업하고 있으며 이미지 처리 소프트웨어가이를 위해 설계되었습니다 (그리고 모든 병렬 처리를 수행 할 수도 있음). 전처리를 수행하기 위해 1 억 개의 작은 CPU를 사용한다는 사실은 에 들어 가지 않습니다. 많은 작은 프로세서에서 복잡한 작업 만 수행합니다. 그리고 2D 논문에 대한 음모를 꾸미십시오. 그 자체로 적어도 이어야 합니다. O ( n )O(1)O(n)
Luaan

9
그것이 이미 언급되었는지는 확실하지 않지만 인간의 뇌는 SISD von Neumann 타입 컴퓨팅 시스템과는 매우 다르게 작동합니다. 내가 이해하는 것처럼, 특히 인간의 뇌는 본질적으로 평행하고 특히 감각 자극을 처리 할 때 특히 중요하다 : 당신은 동시에 여러 것을 듣고보고 느끼고 (거의 어쨌든) 인식 할 수있다 그들 모두 동시에. 댓글 작성에 집중하고 있지만 책상, 음료수 캔, 문에 걸려있는 재킷, 책상 위의 펜 등을 볼 수 있습니다. 뇌는 여러 지점을 동시에 확인할 수 있습니다.
Patrick87

답변:


115

당신이 정신적으로하는 것에 대한 당신의 모델이 틀립니다. 실제로 두 단계로 작업합니다.

  1. 시간 내에 너무 멀리있는 모든 점을 제거하십시오 .O(1)
  2. 시간 에 근접한 지점을 측정합니다 .Θ ( 미터 )mΘ(m)

페탕 크 (볼) 또는 컬링과 같은 게임을 해본 적이 있다면 친숙해야합니다. 대상에서 멀리 떨어진 물체를 검사 할 필요는 없지만 가장 가까운 경쟁자를 측정해야 할 수도 있습니다.

이 점을 설명하기 위해 어떤 녹색 점이 빨간 점에 가장 가깝습니까? (1 픽셀 이상이지만 가장 가까운 픽셀이 있습니다.) 일을 더 쉽게하기 위해 점들은 거리에 따라 색상으로 구분되었습니다.

포인트 클라우드

이 사진에는 거의 원에 가까운 점과 총 녹색 점이 있습니다. 1 단계에서는 약 점을 제외한 모든 점 을 제거 할 수 있지만 2 단계에서는 각 점을 확인해야합니다 . 에 대한 우선 순위는 없습니다 .n 10 m m mm=10n10mmm

물리적 관찰을 통해 전체 점 세트에서 제한된 후보 점 세트로 문제 크기를 줄일 수 있습니다 . 이 단계는 연속 프로세스를 기반으로하기 때문에 일반적으로 이해되는 계산 단계가 아닙니다. 연속 공정은 계산 복잡성, 특히 점근 분석에 대한 일반적인 직관에 종속되지 않습니다.mnm

이제 연속적인 프로세스로 문제를 완전히 해결할 수없는 이유는 무엇입니까? 이러한 포인트 는 어떻게 되나요? 왜 우리는 을 얻기 위해 프로세스를 세분화 할 수 없습니까?m = 1mm=1

대답은 내가 약간 부정한 것입니다. 나는 에 가장 가까운 점과 더 가까운 점 으로 구성된 점 집합을 제시했습니다 . 일반적으로 정확한 경계 내에있는 포인트를 결정하려면 포인트 단위로 수행해야하는 정확한 관찰이 필요합니다. 거친 제거 과정을 통해 많은 후보자를 제외시킬 수 있지만 남아있는 후보를 결정하기 만하면 후보를 열거 할 수 있습니다.n - mmnm

이 시스템을 이산 계산 세계에서 모델링 할 수 있습니다. 점이 그리드의 셀로 정렬되는 데이터 구조로 표시되는 것으로 가정합니다. 즉, 점 는 셀 목록 됩니다. 가장 가까운 점을 찾고이 점을 포함하는 셀에 최대 하나의 다른 점이 포함되어 있으면 포함하는 셀과 8 개의 인접 셀을 확인하는 것으로 충분합니다. 이 9 개의 셀에서 총 포인트 수는 입니다. 이 모델은 인간 모델의 몇 가지 주요 특성을 존중합니다.( x , y ) ( x 0 , y 0 ) m(x,y)(x,y)(x0,y0)m

  • m 은 무한한 가능성이 있습니다. 예를 들어 원에 거의 점이있는 경우는 더 나빠질 수 있습니다.
  • 실제 효율성은 데이터와 일치하는 스케일을 선택하는 데 달려 있습니다 (예 : 점이 종이 위에 있고 셀의 너비가 1km 인 경우 아무 것도 저장하지 않습니다).

9
더욱이, 모든 그래프를 평평하게 투영 할 수는 없으므로 Euklidian 거리가 그래프의 거리와 일치합니다 (가장자리 가중치가 메트릭을 형성하지 않는 경우).
Raphael

5
@Raphael 나는 문제를 그래프 이론이 아닌 계산 기하학에 관한 것으로 이해했지만 실제로 이것은 추가적인 합병증입니다.
Gilles

2
@Gilles Done . 방금 계산 기하학 이라는 용어를 배웠습니다 .
gerrit

2
이것은 nit-pick 일 수 있습니다. 나는 당신이 보여주고 싶은 것을 이해할 수 있습니다. 앞으로 생각할 것-빨강 / 녹색 이외의 다른 색상 조합을 선택하십시오!
tpg2114

3
@ tpg2114 빨강 / 녹색이 유일한 색맹 유형은 아닙니다. 모양 (또는 색상 이외의 속성)으로 표시하는 것은 "빨강 / 녹색 이외의 다른 색상 조합"보다 더 포괄적입니다.
Jonathan Van Matre

42

그 이유는 데이터가이 쿼리에 최적화 된 "데이터 구조"에 놓여졌고 그래프를 준비 할 때 전처리 시간이 도트 수에 비례하는 측정 시간에 포함되어 O (n)을 제공하기 때문입니다. 복잡성.

각 점의 X 및 Y 좌표가 나열된 표에 좌표를 배치하면 점 사이의 거리를 계산하고 거리 목록을 정렬하고 가장 작은 것을 선택하기 위해 훨씬 더 많은 노력이 필요합니다.

시각적으로 잘 작동하지 않는 쿼리의 예로, 밤하늘을보고,보기 만 및 각 별의 좌표 테이블을 기준으로 지구와 가장 가까운 별을 찾거나 별자리 사이의 거리가 가장 작은 별자리를 찾습니다. 별들로 구성되어 있습니다. 여기에서 시각적으로 결정하기 위해서는 줌이 가능하고 회전 가능한 3D 모델이 필요합니다. 컴퓨터는이를 원래와 같은 문제로 간주합니다.


2
+1-나는이 지점을 정확히 만드는 사람을 찾아 아래로 스크롤했다. 들어오는 데이터의 표현이 중요합니다-정렬 된 목록의 중앙값과 정렬되지 않은 목록의 중간 값을 찾으십시오!
cloudfeet

21

이 질문은 잘못된 전제에서 시작됩니다. 점 에서 가장 가까운 점을 정신적으로 찾을 수 있다고 생각 하지만 실제로는 불가능합니다. 매우 작은 그래프를 다루는 데 익숙하기 때문에 느낌이 들지만, 점근 적 복잡성을 처리 할 때 작은 예제가 오도 될 수 있습니다. 10 억 포인트의 산점도를 사용하여이 작업을 수행하려고하면 시간 할 수 없다는 것을 빨리 알게 될 것 입니다.O(1)O(1)


8
원을 따라 10 억 개의 점을 배치한다고 가정하지만 모두 조금씩 교란하여 점이 흐릿한 모양의 고리를 형성합니다. 눈으로 중심에 가장 가까운 지점을 찾으려면 모든 지점을 하나씩 확인하는 것보다 훨씬 더 나은 방법을 알 수 없습니다.
Nick Alger

4
@NickAlger 따라서 더 O(numberOfPointsAboutTheSameDistanceFromTheTargetPointAsTheClosestPoint)관련이있는 것은 아닙니다 n. 어느 쪽이든, 나는 이것에 대한 대답이 인간의 마음이 그것을 어떻게 인식하고 쿼리하는지에 관한 가능한 데이터 구조를 제시해야한다고 생각합니다. 단순히 O (1) 느낌이 아니라고 말하면 ... 게으른가? 부적절합니까?
Dukeling

5
@Dukeling O (something)는 최악의 경우를 나타냅니다. 인간의 두뇌가 일정한 시간 안에 그것을 할 수없는 레이아웃이 있다면, 분명히 O (1)가 아닙니다. 인간의 두뇌가 일정한 시간에 X 점을 처리 할 수있는 X 제한이 있지만 X * 2 점을 전혀 처리 할 수 ​​없다면 O (1)이 아닙니다.
Peteris

3
@Dukeling 최악의 경우 n과 같기 때문에 n에 필수적으로 의존하며 n 개의 임의의 점을 지정한 경우 C * n 연산보다 빠르게 수행하는 것이 불가능할 수 있습니다.
Peteris

2
@Peteris "n에 필연적으로 의존하는"의 의미와 가장 가까운 상한을 결정하는 방법에 동의하지 않는 것 같습니다.
Dukeling

15

육안 검사의 우수성은 일반적으로 보장 할 수없는 중요한 전제에 달려 있습니다.

  • 스케일링 : 관심 영역의 그래픽 표현에 중점을 둡니다. 즉, 시야가 넓어 지도록 형상이 축소되었습니다. 일반 설정 에서 사전 처리 에는 이미 시간 이 필요합니다 .O(n)

  • count : (DW에서 제공 한 답변에 대한 Nick Alger의 의견 참조)은 점 개수가 망막 세포의 수를 초과한다고 가정합니다. 관련 포인트를 모두 식별 할 수도 없습니다.

  • 분산 : (DW가 제공 한 답변에 대한 Nick Alger의 의견 참조) 규칙적인 (예 : 육각형) 그리드의 점 집합이 작은 임의의 섭동에 영향을받습니다. 이러한 동요가 망막의 해상도 (또는 다른 오버레이 그리드)보다 낮아지면 실제 최소 거리를 감지하기가 어려울뿐만 아니라 높은 확률로 잘못된 점 쌍을 선택하게됩니다.

정신적 과정이 기하 적 표현의 일부 래스터 화 (거리 매트릭스와 비교)를 가정 할 때, 이러한 과정은 문제 사례의 크기에 따라 임의로 확장되지 않습니다. 다른 설정으로, 일반적인 설정의 경우 에서 실행되는 전처리 샘플링 절차가 필요합니다 . 인간의 육안 검사에서,이 전처리의 파라미터는이 처리 단계가 것처럼 보이는 지각 장치 (망막 세포의 수, 망막 영역)에 고정되어있다 .O(n)O(1)


1
OP는 모든 점에 대한 육안 검사를 고려하지 않았으며 모든 점을 고려하는 시스템에서 수행해야하기 때문입니다. 이것이 그가 상각 된 복잡성 고려하는 이유라고 생각합니다 . 반면에, 희귀 한 개인을 제외하고 대부분의 사람들은 한 질문에서 다음 질문으로의 그래프를 기억하지 않습니다. 또한, 눈이 래스터 이미지를 사용한다는 사실은 스캐닝이 일정한 시간에 있고 관련 부품에 충분한 정밀도로 초점을 맞추는 것이 로그임을 의미합니다. 장거리에서의 작은 변형은 어쨌든 인식되지 않습니다 (내 대답의 Weber-Fechner 법률 참조). O(n)O(log(n))
babou

내가 이해하는 한, OP 는 나중에 반복 조회를 준비하는 모든 포인트에 대해 NN을 계산하는 알고리즘을 적용하기 위해 를 제외 했습니다. 내 요점은 거리 차이가 그리드 라인 간격 아래로 떨어지거나 이 그리드 포인트 수보다 클 수 있기 때문에 일정한 시간에 래스터 스캔이 모든 문제 인스턴스를 충족시키지 못한다는 것 입니다. 대수 시간에서 관련 부분에 초점을 맞추는 것이 모든 점이 관련되어 있기 때문에 중심에 1 점이있는 원의 '거의'모든 점에 대한 트릭을 수행하지는 않습니다 (그러나 잘못 잘못되었을 수 있습니다). O(n)nO(nlogn)n
collapsar

15
  1. 컴퓨터가 다른 문제를 해결하고 있습니다. 래스터 화 된 점 이미지가 아니라 점 목록 을 가져옵니다 . 목록에서 이미지로 변환하는 것, 즉 포인트를 "플로팅"하는 데 O(n)시간 이 걸립니다 .

    빨리! (1,2)에 가장 가까운 것은 :

    • (9, 9)
    • (5, 2)
    • (3, -2)
    • (4, 3)
    • (0, 4)
    • (1, 9)

    훨씬 더 힘들지요? 나는 당신이 두 배나 많은 일을해야 할 때까지 두 번 목록을 만들면 내기.

  2. 당신은 당신의 두뇌가 얼마나 많은 일을하고 있는지 알지 못합니다. 어느 지점이 더 가까운 지 "알고"있는 것은 아닙니다. 당신의 두뇌는 그 답을 알아 내고 그것을 이용할 수 있도록 계산 작업을하고 있습니다. 뇌는 각 지점에서 동시에 작동하므로 완료 시간은 거의 동일하게 유지되지만 필요한 작업량은 여전히 ​​포인트 수에 따라 증가합니다.


13

같은 이유로 삼각형을보고 그것이 삼각형이라는 것을 알 때, 당신은 그것을 인식하지 않고 수백만 개의 계산을 잊어 버립니다.

신경망

실제로 당신은 많은 양의 데이터에 대해 훈련되고로드 된 신경망입니다.

유아 모양 분류 게임을 예로 들어 보겠습니다.

여기에 이미지 설명을 입력하십시오

아이가 처음 이것과 상호 작용할 때, 잘못된 구멍에 도형을 삽입하려고 시도 할 것입니다. 아직 두뇌를 훈련시키지 않았거나 네트워크를 구축하기에 충분한 데이터를 얻지 못했기 때문입니다. 구멍에 맞는 모양을 결정하기 위해 모서리, 크기 등에 대한 가정을 할 수 없습니다.

이 연결을 구축했기 때문에 이것은 당신에게 분명해 보입니다 (예를 들어). 직관적으로 생각하고 분해 할 필요가 없습니다. 예를 들어 삼각형이 삼각형에 적합하다는 것을 알고 크기를 근사 할 필요가 없습니다. 가장자리 등을 세어보세요. 이것은 사실이 아닙니다. 당신은 당신의 잠재 의식에서 모든 것을 했어요, 당신이 가진 유일한 의식적인 생각은 그것이 삼각형이라는 것입니다. 시각적 표현을 취하고, 표현하는 것을 이해하고, 개별 요소가 무엇인지 이해 한 다음, 거리를 추정하는 것에서 수백만의 계산이 이루어졌습니다. 폴링 할 정보 데이터베이스가 많기 때문에이를 단순화했습니다.

당신의 두뇌는 이진이 아닙니다

당신의 두뇌가 작동하는 데이터는 이진이 아니고 (우리가 아는 한) 진실이 아니거나 거짓이 아니며, 데이터를 해석하는 데 사용하는 많은 상태를 보유하고 있습니다. 데이터가 자주 변경되기 때문입니다. 나는 우리의 뇌가 비트가 읽힐 때까지 대략적인 상태에있는 양자 컴퓨터와 훨씬 더 유사한 기능을하는 것으로 추측 할 수있다. 즉, 우리의 뇌가 전혀 컴퓨터처럼 작동한다면 실제로 알려져 있지 않습니다.

따라서 이진 데이터 작업 알고리즘이 동일하게 작동하지 않습니다. 둘을 비교할 수 없습니다. 머릿속에는 개념을 사용하여 훨씬 더 많은 정보를 보유한 풍부한 데이터 유형을 수행하고 있으며 명시 적으로 정의되지 않은 링크를 만들 수 있습니다. 삼각형을 보았을 때 당신은 달의 핑크 플로이드의 어두운면을 생각할 수 있습니다.

여기에 이미지 설명을 입력하십시오

산포도 그래프로 돌아가서, 비트 맵을 사용하고 다른 점이 발생할 때까지 반지름이 증가하는 점에서 거리를 측정하여 컴퓨터에서이 작업을 수행 할 수 없었습니다. 아마도 인간의 근사치에 가장 근접 할 수 있습니다. 데이터 제한으로 인해 뇌가 계산 복잡성을 신경 쓰지 않고 복잡한 작업을 수행하기 때문에 속도가 훨씬 느려질 수 있습니다.

n이 점의 수이면 O (1)이 아니거나 심지어 O (n)도되지 않습니다. 대신 복잡성은 선택한 점에서 이미지의 경계까지의 최대 선형 거리에 따라 달라집니다.

tl; dr

당신의 두뇌는 이진 컴퓨터가 아닙니다.



8

하나의 중요한 단계를 잊고 있습니다.보고있는 그래프에 모든 점 을 표시하십시오.

이것은 필수적으로 O (n) 연산입니다.

그 후 컴퓨터는 이미지 인식 소프트웨어를 사용하여 사람의 눈과 거의 같은 방식으로 중심에 가장 가까운 대략적인 지점을 찾을 수 있습니다. 이것은 O (sizeOfImage) 연산 최악의 경우입니다.

인간이 컴퓨터와 동일한 작업을 수행하려면 컴퓨터가 좌표 목록을 가져오고 한 번에 하나만 볼 수 있다는 것을 기억하십시오.


1
일정한 "해상도"를 선택하면 점당 시간 O (log (분해능)) 인 알고리즘을 사용하여이를 플롯하고 관심 지점에 "가까운"모든 포인트를 식별 할 수 있습니다. O (log (분해능))는 종이에 점을 정확하게 표시하는 데 시간이 덜 걸리는 것보다 시간이 오래 걸린다는 사실과 모호합니다. 또한 해상도를 높이면 알고리즘의 전체 포인트 당 비용이 증가하여 후보 후보가 아닌 포인트를 제거하지만 비 최소 포인트의 수는 줄어 듭니다.
supercat

7

질문에 대한 나의 해석 :

나는이 질문이 전산 기하학 복잡성 문제로 간결하게 받아 들여질 것이라고는 생각하지 않는다. 우리는 가능한 한 일정한 시간에 답을 찾을 수있는 능력을 인식합니다. 이 인식을 설명하고이 설명과 인간의 한계까지 컴퓨터가 할 수 있습니다.

따라서 질문은 아마도 심리학자에게 질문 으로 여겨 져야 할 것이다 . 문제는 아마도 시간과 노력에 대한 인식과 관련이있을 것입니다. 두뇌가 실제로 시간과 시간 의 차이를 인식 할 수 있습니까 ? 인식의 문제에서 우리는 본능적으로 평균 비용 (복잡성이 아마도 심리학 적으로 개념을 복잡하게하는 것)을 생각하는 경향이 있기 때문에, 구체적인 반대의 예는 실제로 중요하지 않다. 더 정확하게는, 우리가 질문에 쉽게 대답 할 수 없다고 느끼는 특별한 경우보다 일반적인 경우에 더 관심이 있습니다.O(1)O(log(n))

이것은 Weber-Fechner 법칙에 의해 강화 될 수 있는데 , 이는 우리의 인식이 실제 물리적 측정의 로그 척도로 측정되어야한다고 명시하고 있습니다. 다시 말해, 절대 변동보다는 상대 변동을 인식합니다. 이것이 예를 들어 사운드 강도가 데시벨로 측정되는 이유입니다.

우리가 가장 가까운 지점을 찾기 위해 사용하는 시간의 인식에 이것을 적용하면,이 더 이상없는 하지만 , 내입니다 단지를 " 심리적 복잡성 "에 대한 Landau 표기법을 발명했습니다 .O(log(n))Oψ(log(log(n)))Oψ

실제로 산점도 그래프 크기에 대한 심리적 인식이 대수 법칙을 따르기 때문에 부정 행위를합니다. 그럼에도 불구하고 산포도는 항상 우리보다 훨씬 더 단순 해 보인다는 것을 의미합니다. 특히 매우 큰 경우에는 더욱 그렇습니다. 그러나 우리가 인식하는 크기에 관계없이, 가장 가까운 지점 (예 : 뉴런 쿼드 트리)을 찾기위한 내장 로그 알고리즘이있는 경우 인식 된 처리 시간은 이것은 모든 실제적인 목적을 위해 인식 할 수 없을 정도로 일정하지 않을 수 있으며, 인식 과정을 시작하고 결과를 인정하기 위해 일정 시간이 추가되어야합니다.Oψ(log(log(n)))

생리적 한계를 고려

이미지 획득 단계를 고려할 때 상기 결론은 더욱 지속된다.

OP는 여러 쿼리에서 상각되는 "쿼드 트리 (quadtree)"와 같은 적절한 데이터 구조의 구성을 분리하는 데주의를 기울였습니다.

이미지를 외우지 않는 대부분의 사람들에게는이 기능이 작동하지 않습니다. 나는 각 쿼리마다 이미지가 스캔된다고 생각하지만 모든 쿼리를 의미하지는 않습니다. 처음이 아니라 이후 쿼리가 아닙니다.

눈은 촬영 한 장면의 크기와 동일 하게 일정한 시간 에서 래스터 이미지를 하고 망막 구조에 의해 정의 된 고정 해상도로 (아래 참조) 따라서 일정한 양의 정보를 얻으므로 모든 점을 구별하지 못할 수도 있습니다. 그런 다음 다른 시간 관련 지점 과 눈의 방향과 초점을 변경하는 시간을 구별하기 위해 이미지의 관련 부분에 초점을 맞출 수 있습니다 . 이론적 으로이 작업을 반복하여 대수 초점을 이끌어야 할 수도 있지만 지각 적으로는 초점을 맞추기위한 추가 단계가 하나 이상 있다고 생각합니다.TscanTscan

스캐닝은 아마도 뇌의 구조를 만들어 해답을 찾기 위해 분석 될 수 있습니다. 여전히 많은 수의 포인트를 포함 할 수 있습니다. 비록 뇌가 어떻게 진행되는지는 모르겠지만 최악의 로그 시간에, 아마도 훨씬 적은 시간 에 초점을 맞추는 과정이라고 생각하는 것은 무리가 없습니다 . 이 프로세스는 크기가 제한된 인식 된 이미지에 적용됩니다. 이것은 물론 상당한 수의 포인트를 의미합니다. 따라서 처리 될 정보에 대한 고정 된 상한 이있다. 로그 처리를 가정하고 위의 분석을 재사용하면 인식 된 처리 시간은 입니다.mOψ(log(log(m)))

육안의 해상도는 막대의 수에 의해 고정되며 약 1 억 2 천 5 백만 입니다. 약 입니다. 로그에 기본 2를 사용하면 약 , 즉 단계에 필요한 비용의 약 5 단계를 처리 할 수 ​​있습니다. 500 메가 픽셀 정도의 눈 해상도 추정값을 대신 사용하면 최종 결과가 변경되지 않습니다. 리터 g 2 ( 27 )227log2(27)

사용되는 실제 단위를 알지 못하면, 이는 처리에 대한 변동이 다른 일정 시간 작업과 동일한 순서로 최악임을 나타냅니다. 따라서 가장 가까운 지점을 찾기 위해 인식 된 시간이 일정하게 느껴지는 것은 당연합니다. . . 가장 가까운 지점을 결정할지 아니면 더 가까운 지점을 결정할지

반례 및 가능한 해결책

물론 가까운 지점의 작은 모음 중에서 가장 가까운 지점을 눈으로 결정하는 것이 매우 어려운 반례를 만드는 것은 쉬운 일입니다. 이것이 바로 OP가 가장 가까운 점을 제외한 대부분의 점을 신속하게 제거하는 알고리즘을 요구하는 이유입니다. 몇 개의 근접 점 중에서 선택하기가 어려울 수있는이 문제는 많은 답변에서 다루어지며, 가장 가까운 점의 패러다임 예제는 기준점 주위의 원에 가깝습니다. 일반적으로 Weber-Fechner 법률은 충분히 긴 거리에서 작은 거리 변화를 구별 할 수 없도록합니다. 이 효과는 실제로는 제거되지만 거리의 인식을 왜곡 할 수있는 다른 점의 존재에 의해 증가 될 수 있습니다. 가장 가까운 지점을 식별하는 것은 어려운 일입니다. 일정한 시간의 느낌을 완전히 없애는 기기 사용과 같은 특정 검사 단계가 필요할 수도 있습니다. 그러나 OP가 고려한 실험 범위를 벗어난 것으로 보이므로 그다지 관련성이 없습니다.

대답 할 수있는 질문 실제로 OP가 자주 묻는 질문, 아마도 기준점과 매우 유사 거리를 갖고있는 것 같다있는 나머지 몇을 제외하고는 지점의 대부분을 제거 할 수있는 방법이 있는지 여부입니다.

인식 된 일정한 시간 뒤에 숨겨 질 수있는 것에 대한 우리의 분석에 따르면, 시간 내에 그것을 수행하는 컴퓨터 솔루션은 만족스러운 것으로 간주 될 수 있습니다. 반면에, 상각 비용에 의존하는 것은 뇌가 그렇게하지 않기 때문에 실제로 받아 들여서는 안된다.O(log(n))

상각 후원가를 배제한다고해서 모든 점을 검토해야하기 때문에 컴퓨터 솔루션을 사용할 수 없습니다. 이것은 두뇌와 인간 인식의 컴퓨팅 능력에 큰 차이가 있음을 강조합니다. 그것은 디지털 계산과는 상당히 다른 특성을 가진 아날로그 계산을 사용할 수 있습니다 . 이것은 일반적으로 수십억 개의 점이 눈으로 구별되지 않는 경우이며, 다양한 음영의 어두운 구름을 볼 수있는 해상도가 없습니다. 그러나 눈은 관련된 작은 부분에 초점을 맞출 수 있으며 관련 부분을 포함하는 제한된 수의 점을 볼 수 있습니다. 모든 포인트를 개별적으로 알 필요는 없습니다. 컴퓨터가 동일한 작업을 수행하려면 각 점의 정확한 숫자 좌표가 아니라 유사한 센서를 제공해야합니다. 매우 다른 문제입니다.

"시각적 검사 만"은 어떤면에서 디지털 계산보다 훨씬 강력합니다. 그리고 그것은 뇌의 컴퓨팅 능력뿐만 아니라 센서의 물리학 때문이기도합니다.


O(1)O(logn) O(1)O(1)O(logn)지각적인 인식 이상의 작업을 해결하는 경우 (예 : 레이블이 지정된 노드가있는 균형 잡힌 이진 힙의 그래픽 표현에서 지정된 숫자 찾기) 지각 적 구속 조건은 그래픽을 로컬에서만 검사하므로 중요하지 않습니다.
collapsar

n

Oψ(log(log(n)))

4

우리는 시험을 통해 학생들이 얼마나 빨리 배열을 정렬 할 수 있는지 물었을 때 컴퓨터가 어리 석고 n * log (n) (또는 더 나쁘다)가 필요하다고 주장하지만 인간은 더 빨리 할 수 ​​있다고 주장합니다.

교수님의 답변은 항상 그렇습니다. 저는 10.000 개의 아이템 목록을 제공 할 것입니다. 컴퓨터보다 빠른 방법을 생각해 봅시다.

그리고 가장 가까운 지점을 찾으려고 할 때 몇 개의 처리 코어가 포함됩니까? 단일 프로세서 시스템이 아니며 신경망이 있으며 이와 같은 작업에 유연성이 있습니다.


1
또한 데이터에 대해 알고있는 정보 및 정렬 할 때 사용할 수있는 리소스의 다양한 측면을 제공합니다. 예를 들어, 동료 학생들이 자신의 방에 완전히 맞지 않는 것을 정렬해야하는 경우.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen : 이것은 공간 복잡성이 "방에 완전히 들어갈 수없는 것"8 ^)
Zane

3

@ Patrick87이 실마리를 주었다고 생각합니다. 눈과 뇌는 엄청나게 평행 한 컴퓨팅 머신입니다. 일부는 이것이 문제를 설명하지 못한다고 주장했다. 왜냐하면 임의의 큰 문제에 대해서는 유한 한 수의 병렬 프로세서가 아무런 차이가 없기 때문이다.

그러나 그것은 여기에서합니다 : 많은 사람들이 암시 하듯이, 당신의 눈 (그리고 뇌)은이 문제를 해결할 능력이 제한되어 있습니다. 이것은 인간의 정상적인 시선 범위 내에서 여러 지점에 맞지 않기 때문입니다. 눈은 시작을 위해 눈을 구별 할 수 있어야하며, 너무 많으면 눈이 차이를 느끼지 못할 정도로 너무 가까워집니다. 결론 : 정상적인 시력에 맞는 충분한 포인트, 즉 매우 적은 점이 빠릅니다. 다른 경우에는 실패합니다.

따라서 뇌가 산들 바람에 처리 할 수있는 작고 간단한 경우에 O (1)에서이 문제를 해결할 수 있습니다. 그 외에도, 그것은 실패 할 가능성이 높기 때문에 O ( 아무것도 ) 도 아닙니다 .


1

공간 인덱스가있는 컴퓨터에서이 문제를 매우 빠르게 해결할 수 있다고 언급 한 사람은 없습니다. 이것은 눈이 빠르게 스캔하고 대부분의 점을 제거 할 수 있도록 이미지의 점을 플로팅하는 것과 같습니다.

구글과 다른 사람들이 지오 해시 (Geohash)라고 불리는 가장 가까운 점을 찾기 위해 사용하는 아주 좋은 색인 알고리즘이 있습니다. http://en.wikipedia.org/wiki/Geohash .

나는 이것이 컴퓨터에 찬성하여 콘테스트를 강화할 것이라고 생각합니다. 나는 선형 사고를 사용한 몇 가지 해답에 깊은 인상을받지 못했습니다.


Θ(n) Θ(lgn)

요점은 공간 인덱스가 사람이 점으로 흩어진 화면을 보는 것만큼이나 대략적으로 쉽다는 것입니다.
reinierpost

1

유클리드 공간에서 n- 차원의 점 집합에서 가장 가까운 이웃을 찾는 경우를 고려한다면, 복잡성은 일반적으로 커질 때 차원의 수에 의해 결정됩니다 (즉, 데이터 집합의 크기보다 큼).

O(logd2n)

그래프에서 노드에 가장 가까운 점을 찾는 문제는 그래프가 충분히 작은 왜곡으로 유클리드 공간에 포함될 수있을 때마다 유클리드 식을 갖습니다. 가중치가있는 인접 목록을 사용하여 인접 목록을 작성해야합니다.

O(1)


-1

다른 답변은 훌륭하지만 원래 질문의 기본 추론 / 전제를 극단으로 확장하여 결함을 보여주는 선의 반대 질문은 어떻습니까 [그러나 AI 연구 의 핵심에 역설이기도합니다 ].

인간 지능으로 생각할 수 있다면 왜 인간뿐만 아니라 생각하는 컴퓨터를 만들 수 없습니까?

귀하의 질문에 대답하는 여러 가지 방법이 있지만 기본적으로 우리의 사고 과정과 뇌의 지각 능력은 반드시 내성에 접근 할 수있는 것은 아니며, 우리가 그에 적용하는 내성도 오해의 소지가 있습니다. 예를 들어 객체를 인식 할 수는 있지만이를 허용하기 위해 진행되는 준 알고리즘 과정을 인식 / 설명 할 방법이 없습니다. 또한 현실에 대한 인식과 특히 시간 인식에 미묘한 왜곡이 있음을 보여주는 많은 심리학 실험이 있습니다 (예 : 시간 인식 참조) .

일반적으로 / 생각 추측 과학자들에 의해 인간의 두뇌가 실제로 사용 않는다는 것입니다 알고리즘을 하지만 그들은 컴퓨터들보다 다른 기능을하고, 또한 매우 많은 양이 병렬 처리 를 통해 뇌에서 일어나는 신경 네트워크 에 띌 비교할 수없는 순차적 컴퓨터 알고리즘. 포유류의 경우 전체 뇌 부피의 상당 부분이 시각 처리에 전념합니다.

다시 말해서 인간의 두뇌는 여러면에서 고도로 최적화 된 비주얼 컴퓨터이며, 실제로 여러 가지면에서 객체 인식 등과 같은 현재 세계에서 가장 큰 슈퍼 컴퓨터를 능가하는 능력을 가지고 있으며, 이는 결함으로 인한 것입니다 (비교). 수백만 년에 걸쳐 고도로 조정 / 진화 / 최적화 된 생물학과 비교하여 인간이 제작 한 소프트웨어 / 하드웨어.


O(f(n))

-2

일반적으로 말하자면 두 가지 다른 문제를 해결하고 있으며 같은 경쟁에서 경쟁하는 경우 두 사람 모두에게 복잡성은 O (1)이됩니다. 왜? 상황을 좀 더 간단하게 만들어 봅시다. 하나의 빨간색 점과 n 개의 녹색 점이있는 선이 있다고 가정하십시오. 당신의 임무는 빨간색 지점에 가장 가까운 녹색 지점을 찾는 것입니다. 모든 것이 그래프에 있습니다. 이제 당신이하는 일과 프로그램이하는 일은 기본적으로 동일합니다. 빨간 점에서 "양방향으로"걷다가보고있는 픽셀이 흰색 / 검은 색 (배경)인지 녹색인지 확인하십시오. 이제 복잡성은 O (1)입니다.

흥미로운 점은 일부 데이터 표시 방법이 일부 질문에 대한 답변을 즉시 제공한다는 것입니다 (O (1)). 기본 예는 매우 간단합니다. 검은 이미지에서 흰색 픽셀을 세면됩니다 (각 픽셀 값은 0 = 검은 색 또는 1 = 흰색). 당신이해야 할 일은 모든 픽셀 값을 추가하는 것입니다. 복잡성은 1 개의 흰색 픽셀과 1000에 대해 동일하지만 이미지 크기-O (m), m = image.width * image.height에 따라 다릅니다. 더 빨리 할 수 ​​있습니까? 물론, 우리가해야 할 일은 적분 이미지 인 이미지를 저장하는 다른 방법을 사용하는 것입니다 . 여기에 이미지 설명을 입력하십시오 이제 결과를 계산하는 것은 O (1)입니다 (적분 이미지가 이미 계산되어있는 경우). 다른 방법은 모든 흰색 픽셀을 array / vector / list / ...에 저장하고 크기를 계산하는 것입니다-O (1).


O(1)O(1)

@FrankW- "걷기"의 복잡성은 무엇입니까? 나는 당신이 틀렸다고 말하려고하지 않고 단지 알고 싶습니다. 배열 / 벡터 / 목록의 크기를 계산-일반적으로 배열 크기는 일정하므로 계산할 필요가 없습니다. 벡터-확실하지 않습니다. 구현에 달려 있다고 말할 것입니다 (그러나 대부분의 구현에서는 대부분의 분야입니다 계산할 필요가없는 객체), 목록-당신 말이 맞아, O (1)이 아님-내 실수.
cyriel

kkO(#pixels)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.