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.