엔지니어링에서 CS의 "검색 공간 축소"와 동등한 개념이 있습니까? [닫은]


0

엔지니어가 문제에 대한 솔루션, 특히 기계 엔지니어를 효율적으로 검색하는 방법에 대해 자세히 알고 싶습니다.

컴퓨터 과학자들은 알고리즘을 다루기 쉽게 만들려고 할 때 종종 "검색 공간 축소"라고 말합니다. 예를 들어, 검색 공간이 작은 경우 시행 착오 또는 "부 동력"은 실행하기 쉬우므로 구현하기에 매우 효율적인 방법 일 수 있습니다.

엔지니어들도 비슷한 개념을 가지고 있습니까?


1
사용되는 방법은 해결중인 문제에 따라 다릅니다. 당신은 마음에 문제가 있습니까? 그렇지 않은 경우 질문이 너무 광범위합니다.
hazzey

예, 그러나이 시점에서 설명하기에는 너무 복잡합니다. BME와 관련이 있으며 구체적인 정보를 제공 할 위치에 있는지 잘 모르겠습니다.
Stan Shunpike

1
Taylor의 "The Engineering Method"(최대 몇 시간 동안 온라인에서 사용 가능)를 읽으면 엔지니어의 사고 과정에 잘 들어갑니다. 대부분의 엔지니어는 현재 직면하고있는 것과 유사한 경우에 효과가있는 솔루션을 찾는 것입니다. 그로 인해 경험이 매우 중요합니다. 또한 실력있는 사람들과 함께 맥주를 마시고 문제 해결 스타일에 대해 이야기하도록하십시오.
mart

내가 가르치는 공학 방법은 (1)-공식적으로 문제를 정의하고, (2)-문제가 있거나 비슷한 문제가 이미 해결되었는지 확인하십시오. (3)-(2)의 결과를 수정하여 문제를 해결하십시오. (2)가 아무것도 나타나지 않으면 브레인 스토밍 / 개념 생성 상태가되어 모든 아이디어를 수용해야합니다 . (Un) 안타깝게도 일반적으로 개방형 프로젝트를 "잡을 수있는"것으로 만들 수는 없습니다. 해결하는 것이 재미 있습니다!
Chuck

1
질문에 대한 답변을받은 후에 질문이 제거되면 그것은 우리 모두에게 에너지 낭비입니다. 나는 그것이 합법적 인 질문이라고 생각하지만 올바르게 수정하는 방법을 볼 수 없습니다. 보류중인 회원 중 한 명이 친절하게 편집하거나 제안을 할 수 있습니까?
ericnutsch

답변:


2

추상화 수준 간의 혼란 때문에 유추가 적합하지 않다고 생각합니다.

플라스틱 막대와 알루미늄 막대를 부착해야한다고 상상해보십시오. 이 엔지니어링 문제를 해결하려면 기계식 패스너, 조인트, 접착제 등을 사용할지 여부를 결정해야합니다. 작동하는 것을 찾을 때까지 몇 가지 다른 방법으로 실험 해보십시오. 이것은 디자인 수준의 문제입니다. 영향을 미치는 요소는 다음과 같습니다.

  • 어떤 하중이 적용됩니까?
  • 보이는데 깔끔해야합니까?
  • 어떤 환경 조건이 적용됩니까? (수중 또는 대기, 온도, 압력 등).
  • 어떤 마모가 발생하며 얼마나 오래 지속됩니까?

이제 입력 정수의 배수 인 5 자리 정수 회문을 모두 찾아야한다고 상상해보십시오 <n>. 이 컴퓨터 과학 문제를 해결하려면 프로그래밍 언어 / 플랫폼 선택, 알고리즘 선택 및 코드 작성이 필요합니다. 작동하는 것을 찾을 때까지 몇 가지 다른 방법으로 실험 해보십시오. 이것은 디자인 수준의 문제 이기도합니다 . 영향을 미치는 요소는 다음과 같습니다.

  • 얼마나 자주 호출되며 얼마나 빨리 수행해야합니까?
  • 이것이 더 큰 프로그램의 하위 루틴입니까, 아니면 독립 실행 형 프로그램입니까?
  • 어떻게 부를까요? (기능, 명령 행, HTTP 요청 등)
  • 어떤 종류의 출력을 생산해야합니까? 소비자는 누구입니까?

컴퓨터 과학에서 검색 공간을 줄이는 것은 위의 디자인 작업과는 다른 추상화 수준에 있습니다. 예를 들어 파이썬으로 프로그램을 작성하고 명령 행에서 독립형 프로그램으로 실행하여 사람이 출력을 볼 수 있다고 가정하십시오. 조잡한 구현으로 충분할 수 있습니다.

#!/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 : 부적절한 접착제를 제거하십시오. 당면한 과제에 대한 매우 구체적인 최적화. 당신이 말하는 것은 가능한 디자인 솔루션 의 "검색 공간"을 줄이는 일반적인 방법 입니다. 실제로 이해가되지 않습니다.


1

"시행 및 오류"및 "브 루트 포스"는 엔지니어링에서 자주 사용하는 용어입니다.

토마스 에디슨은 장수명 백열 전구의 "브 루트 포스"발명으로 유명합니다. 다른 백열 전구가 그보다 먼저 만들어졌지만 빨리 타버 렸습니다. 그는 올바른 필라멘트 재료를 가지고 있다면 오래 지속되는 전구를 만들 수 있다고 확신했습니다. 그의 회사는 모든 조합을 테스트했습니다.

그러나 대부분의 엔지니어는 물리 및 산업 지식을 사용하여 문제를보다 효율적으로 해결합니다. 후버 댐은 물리적 원리와 과거 실험을 기반으로 설계되었으므로 한 번만 만들면됩니다.

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