Smoothed Analysis는 학계 외부에서 사용됩니까?


24

평활화 된 분석이 알고리즘의 주요 스트림 분석으로가는 길을 찾았 습니까 ? 알고리즘 설계자가 알고리즘에 부드럽게 분석을 적용하는 것이 일반적입니까?


11
사람들이 학계 외부의 알고리즘에 어떤 종류의 복잡성 분석을 적용합니까?
Dave Clarke

2
@DaveClarke의 말; 어쩌면 그는 엄격한 (또는 사소한) 분석을 요구해야 할 것 입니다. 많은 실무자들이 알고리즘을보고 루프 중첩 깊이를 세고 "This is !"라고 말합니다. O(n3)
Raphael

3
찾고있는 동안 어떤 부드럽게 분석의 사용 심플 렉스 I 이외는 발견 목록 기술을 발견 한 사람 중 하나 큐레이터를.
Raphael

1
@DaveClarke IBM이나 HP 또는 NTT에서 일하는 사람들은 어떻습니까? 그들은 그런 종류의 분석을 사용해서는 안됩니까?
Marcos Villagra

1
@DaveClarke 내가 해요.
Kevin

답변:


12

나는 틀릴 수도 있지만, 이론적 보장이 나쁜 알고리즘의 실제 행동 을 설명 하는 방법으로 부드러운 분석을 봅니다 (단순, k- 평균 등). 최악의 성능이 나쁜 특정 휴리스틱의 사용을 정당화하는 것 외에는 실제로 실제로 부드러운 분석 을 사용 하는 것이 무엇을 의미하는지 잘 모르겠습니다. 실제로 잘하는 등 ")


2
문제는 지금까지 순조로운 분석의 큰 성공이 현재의 관행을 설명하는 데 있었기 때문에, 실무자들은 "내가하고있는 모든 것이 의미가 있음을 보여주는 것이 좋을 것"이라고 말함으로써 반응 할 수 있다는 것이다. 누군가가 부드럽게 분석하기 때문에 지금까지 덜 알려진 휴리스틱을 사용하기로 결정했는지는 알 수 없습니다.
Suresh

공식적인 평활 분석은 매우 어렵습니다. 이론에 속하지 않은 사람이 그것을 과도하게 연습해야 할 이유는 없습니다. 반면, 알고리즘을 분석하는 데 사용되는 휴리스틱 (즉, 입력이 반 랜덤)으로 간주되는 경우 항상 사용됩니다.
Yuval Filmus

3

사람들이 현실에서 알고리즘을 분석하는 방법은 학계와 크게 다릅니다. 학계의 목표는 실행 시간에 대해 적절하게 수정 된 상한을 찾는 것이지만 실제 목표는 알고리즘의 작동 방식과 실행 시간을 개선 할 수있는 조정 방법을 이해하는 것입니다. 학계에서 금지되었지만 실제로 사용되는 두 가지 주요 방법이 있습니다.

  • 근사법. 여기에서는 알고리즘의 실행 시간을 예측하기 위해 많은 단순화 가정을 사용합니다. 이론 물리학 자들이하는 것과 비슷합니다.
  • 실험. 알고리즘을 실행하고 각 부분에 소요 된 시간, 각 함수 호출 횟수, 각 분기 실행 빈도 등의 여러 통계를 측정합니다. 이 정보는 알고리즘을 최적화하는 데 사용될 수 있습니다. 실험은 알고리즘을 분석하는 동안 수행 된 일부 근사가 실제로 작동하는지 여부를 확인하는데도 사용됩니다.

즉, 관련 학술 출판물에 필러 텍스트를 추가하는 것 외에 실제로 알고리즘을 분석하는 것이 일반적이라고 생각하지 않습니다. 주제에 따라 소프트웨어 엔지니어링 또는 저수준 최적화에 중점을 둡니다.

마지막으로, 평활화 된 분석은 알고리즘이 최악의 경우보다 실제로 실제로 더 잘 작동하는 이유를 설명하는 데 사용할 수있는 휴리스틱입니다. 이 휴리스틱은 근사 방법을 사용하는 경우 알고리즘의 동작을 근사화하는 데 사용할 수 있습니다.


"학계의 목표는 상위 실행 시간에 바인딩라도 유용합니다 - 올바른 찾는 동안"-이다 목표,하지 목표를. 평균적인 CS 학생은 (상대적으로 어렵 기 때문에) 평균 CS 학생이 그것을 많이 보지 못하더라도 평균 사례 분석에 대한 많은 연구가 있습니다. "알고리즘의 작동 방식을 이해하는 것"은 학계의 모든 알고리즘의 기초입니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.