엔지니어가 문제에 대한 솔루션, 특히 기계 엔지니어를 효율적으로 검색하는 방법에 대해 자세히 알고 싶습니다.
컴퓨터 과학자들은 알고리즘을 다루기 쉽게 만들려고 할 때 종종 "검색 공간 축소"라고 말합니다. 예를 들어, 검색 공간이 작은 경우 시행 착오 또는 "부 동력"은 실행하기 쉬우므로 구현하기에 매우 효율적인 방법 일 수 있습니다.
엔지니어들도 비슷한 개념을 가지고 있습니까?
엔지니어가 문제에 대한 솔루션, 특히 기계 엔지니어를 효율적으로 검색하는 방법에 대해 자세히 알고 싶습니다.
컴퓨터 과학자들은 알고리즘을 다루기 쉽게 만들려고 할 때 종종 "검색 공간 축소"라고 말합니다. 예를 들어, 검색 공간이 작은 경우 시행 착오 또는 "부 동력"은 실행하기 쉬우므로 구현하기에 매우 효율적인 방법 일 수 있습니다.
엔지니어들도 비슷한 개념을 가지고 있습니까?
답변:
추상화 수준 간의 혼란 때문에 유추가 적합하지 않다고 생각합니다.
플라스틱 막대와 알루미늄 막대를 부착해야한다고 상상해보십시오. 이 엔지니어링 문제를 해결하려면 기계식 패스너, 조인트, 접착제 등을 사용할지 여부를 결정해야합니다. 작동하는 것을 찾을 때까지 몇 가지 다른 방법으로 실험 해보십시오. 이것은 디자인 수준의 문제입니다. 영향을 미치는 요소는 다음과 같습니다.
이제 입력 정수의 배수 인 5 자리 정수 회문을 모두 찾아야한다고 상상해보십시오 <n>
. 이 컴퓨터 과학 문제를 해결하려면 프로그래밍 언어 / 플랫폼 선택, 알고리즘 선택 및 코드 작성이 필요합니다. 작동하는 것을 찾을 때까지 몇 가지 다른 방법으로 실험 해보십시오. 이것은 디자인 수준의 문제 이기도합니다 . 영향을 미치는 요소는 다음과 같습니다.
컴퓨터 과학에서 검색 공간을 줄이는 것은 위의 디자인 작업과는 다른 추상화 수준에 있습니다. 예를 들어 파이썬으로 프로그램을 작성하고 명령 행에서 독립형 프로그램으로 실행하여 사람이 출력을 볼 수 있다고 가정하십시오. 조잡한 구현으로 충분할 수 있습니다.
#!/usr/bin/python
def isPalindrome(n):
return str(n) == str(n)[::-1]
def isMultiple(n, d):
return (n % d) == 0
for i in xrange(10000,99999+1):
if isMultiple(i, 17) and isPalindrome(i):
print i;
이것은 쓰기가 매우 빠르며 사용 방법을 고려할 때 시간 낭비가되기 때문에 최적화하거나 개선 할 필요가 없습니다. 엔지니어링 문제에서 유사한 해결책은 접착제 막대 또는 테이프를 사용하는 것입니다. 플라스틱 막대는 운송 중 슬라이딩 알루미늄 막대 형태의 이동을 막기 위해서만 있기 때문입니다.
이제 이러한 설계 요구 사항이 변경되면 어떻게됩니까?
HTTP 연결을 통해 사용자 기반이 큰 앱에서 Palindrome Generator를 초당 여러 번 호출해야하는 경우 다른 접근 방식을 고려할 수 있습니다. 플랫폼, 언어, 인터페이스 등이 있지만 알고리즘의 검색 공간을 줄이는 것도 고려해야합니다. 두 가지 테스트로 모든 정수를 반복하는 대신 <n>
첫 번째부터 시작하여 n
매번 추가하여 여러 배수로 시작하는 것으로 간주 합니다. 이것은 최적화 또는 성능 수준 문제입니다.
마찬가지로, 플라스틱 바를 5 년 동안 일반적으로 사용하는 동안 사용자가 사용하는 키패드 패널이 편향되는 것을 방지하기 위해 알루미늄 막대에 부착해야한다면 접착제가있는 단순한 형태의 조인트와 같은 다른 연결 유형을 고려할 수 있습니다 사용하는 접착제의 성능 수준 문제를 반드시 고려해야합니다 . 사용되는 환경에 따라 재료 유형과 효과적인 작동 조건 모두에 대한 접착 강도를 찾습니다.
알다시피, 유추는 실제로 작동하지 않습니다. 검색 공간을 줄이는 것은 현재 수행중인 작업과 구현 방법에 따라 매우 다릅니다. 부적절한 후보를 제거 (또는 우선 고려하지 않음)하는 것은 사소한 거부에 관한 것입니다. CS : 수행해야하는 총 테스트 수를 줄입니다. EN : 부적절한 접착제를 제거하십시오. 당면한 과제에 대한 매우 구체적인 최적화. 당신이 말하는 것은 가능한 디자인 솔루션 의 "검색 공간"을 줄이는 일반적인 방법 입니다. 실제로 이해가되지 않습니다.
"시행 및 오류"및 "브 루트 포스"는 엔지니어링에서 자주 사용하는 용어입니다.
토마스 에디슨은 장수명 백열 전구의 "브 루트 포스"발명으로 유명합니다. 다른 백열 전구가 그보다 먼저 만들어졌지만 빨리 타버 렸습니다. 그는 올바른 필라멘트 재료를 가지고 있다면 오래 지속되는 전구를 만들 수 있다고 확신했습니다. 그의 회사는 모든 조합을 테스트했습니다.
그러나 대부분의 엔지니어는 물리 및 산업 지식을 사용하여 문제를보다 효율적으로 해결합니다. 후버 댐은 물리적 원리와 과거 실험을 기반으로 설계되었으므로 한 번만 만들면됩니다.