KR20080024126A - Constrained exploration for search algorithms - Google Patents

Constrained exploration for search algorithms Download PDF

Info

Publication number
KR20080024126A
KR20080024126A KR1020077029058A KR20077029058A KR20080024126A KR 20080024126 A KR20080024126 A KR 20080024126A KR 1020077029058 A KR1020077029058 A KR 1020077029058A KR 20077029058 A KR20077029058 A KR 20077029058A KR 20080024126 A KR20080024126 A KR 20080024126A
Authority
KR
South Korea
Prior art keywords
search
search space
state
processes
space
Prior art date
Application number
KR1020077029058A
Other languages
Korean (ko)
Inventor
유세프 하마디
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080024126A publication Critical patent/KR20080024126A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Partition criteria is used to direct or constrain a search process that searches a search space for solution to a problem. The identification of states for further exploration of the search space is directed by the use of reference state and distance constraint information that is part of the partition criteria. Multiple processes use the same or different partition criteria to together search relevant areas of a search space. The operation of multiple processes, including the choice of partition criteria, is coordinated by a coordination or control process. Different search topologies are implemented by selecting various partition criteria. ® KIPO & WIPO 2008

Description

검색 알고리즘을 위한 제약된 조사{CONSTRAINED EXPLORATION FOR SEARCH ALGORITHMS}Constrained investigation for search algorithms {CONSTRAINED EXPLORATION FOR SEARCH ALGORITHMS}

계획, 스케쥴링, 구성에서의 문제점들을 비롯한 많은 문제점들은, 문제점에 대한 솔루션을 위해 문제 공간 또는 "검색 공간"을 검색하는 방식을 정의하는 알고리즘인 검색 알고리즘에 의해 해결될 수 있다. 예를 들어, 서로 다른 속성(attribute)들, 서로 다른 접속들 등을 갖는 다수의 컴퓨터 시스템에 적합한 네트워크 토폴로지를 찾는 문제점은 검색 알고리즘에 의해 해결될 수 있다. 서로 다른 필요성들을 충족시킬 수 있는 리소스들의 한 세트에 적합한 스케쥴을 결정하는 것은, 또 하나의 문제점이며 이에 대하여 검색 알고리즘의 사용이 유용할 수 있다.Many problems, including problems in planning, scheduling, and configuration, can be solved by a search algorithm, which is an algorithm that defines how to search a problem space or "search space" for a solution to a problem. For example, the problem of finding a suitable network topology for multiple computer systems with different attributes, different connections, etc. can be solved by a search algorithm. Determining a schedule that is suitable for a set of resources that can meet different needs is another problem and the use of a search algorithm can be useful for this.

일반적으로, 이러한 문제점들을 해결하기 위한 방법들은 결정적인 것과 비결정적인 것으로 분류될 수 있다. 결정적 방법은, 솔루션을 찾기 위해 검색 공간의 효율적인 조사를 수행할 수 있는 단계들의 명확하고도 순서화된 세트를 포함한다. 반면에, 비결정적 방법은, 단순한 입력 및 현재 상태 이상으로 의존할 수 있는 방식으로 검색 공간을 조사하고, 이러한 비결정적 방법의 검색 경로는 절대적으로 예측될 수 없다. 많은 문제점들에 대하여, 효율적인 결정적 방법이 존재하지 않으며, 특정한 문제점을 해결할 가능성있는 가장 적합한 방법은 비결정적 방법을 이용하는 것이다.In general, methods for solving these problems can be classified as deterministic and nondeterministic. The deterministic method includes a clear and ordered set of steps that can perform an efficient search of the search space to find a solution. On the other hand, a nondeterministic method examines the search space in a way that can depend on more than just input and current state, and the search path of this nondeterministic method cannot be absolutely predicted. For many problems, there is no efficient deterministic method, and the most likely way to solve a particular problem is to use a nondeterministic method.

이러한 많은 문제점들에 대하여, 검색 공간을 조사하려면, 사용되는 검색 알고리즘의 본질에 상관없이 컴퓨팅하는 데 있어서 많은 양의 리소스들이 필요하다. 검색을 가속하는 일반적인 방식은, 다수의 코어를 갖춘 컴퓨터 프로세서들, 다수의 프로세서를 갖춘 컴퓨터들, 서로 다른 많은 방식으로 구성된 컴퓨터들을 비롯한 다수의 개별적인 계산 리소스를 적용하는 것이다. 일부 결정적 알고리즘은 다수의 컴퓨팅 리소스의 사용에 적합하며, 검색 공간은 다수의 독립적인 서브 공간으로 분리될 수 있으며, 이후 이러한 독립적인 서브 공간들의 각각은 개별적인 컴퓨팅 리소스에 의해 조사된다. 반면에, 많은 비결정적 알고리즘에서 동일한 방식으로 다수의 컴퓨팅 리소스를 효율적으로 활용하는 것은 어렵다. 예를 들어, 비결정적 검색을 시작하기 전에 검색 공간을 분리하는 것은 조사 다이버시티를 보장할 수 없으며, 그 이유는 많은 비결정적 알고리즘들의 최종 검색 경로를 예측하는 것, 즉, 시작 검색 상태가 주어진 경우 검색 공간의 어느 부분을 조사할 것인지를 결정하는 것이 어렵거나 불가능할 수 있기 때문이다.For many of these problems, investigating the search space requires a large amount of resources to compute regardless of the nature of the search algorithm used. A common way of accelerating search is to apply a number of individual computing resources, including computer processors with multiple cores, computers with multiple processors, and computers configured in many different ways. Some deterministic algorithms are suitable for the use of multiple computing resources, and the search space can be divided into multiple independent subspaces, each of which is then examined by a separate computing resource. On the other hand, in many nondeterministic algorithms, it is difficult to efficiently utilize multiple computing resources in the same way. For example, separating search space before starting a non-deterministic search cannot guarantee investigative diversity, because predicting the final search path of many non-deterministic algorithms, i.e. given a starting search state This is because it may be difficult or impossible to determine which part of the search space to investigate.

다음에 따르는 설명은 당업자의 기본적인 이해를 위해 명세서의 간략한 개요를 제공한다. 이 개요는 명세서의 넓은 범위에 걸친 개요가 아니며, 본 발명의 주요한/중대한 요소들을 식별하지 않으며 또는 본 발명의 범위를 제한하지 않는다. 이 개요의 유일한 목적은 본 명세서에서 설명하는 일부 개념을 후술하는 상세한 설명한 대한 도입부로서 간략한 형태로 제공하는 것이다.The following description provides a brief overview of the specification for a basic understanding of those skilled in the art. This Summary is not an extensive overview of the specification and does not identify major / critical elements of the invention or limit the scope of the invention. Its sole purpose is to present some concepts described herein in a simplified form as a prelude to the more detailed description that is discussed later.

본 명세서에서는, 검색 알고리즘의 조사를 제약하고 지시하는 방법 및 시스템에 대한 다양한 기술 및 기법을 설명하고 있다. 이러한 방법 및 시스템을 검색 조사에 적용하게 되면 다수의 개별적인 컴퓨팅 리소스를 보다 효율적으로 사용하게 된다.In this specification, various techniques and techniques for methods and systems for constraining and directing the investigation of search algorithms are described. Applying these methods and systems to search investigations results in more efficient use of multiple individual computing resources.

본 명세서에서 설명하는 예시적인 실시예들은, 다수의 프로세스를 이용하여, 결과들이 식별되는 공간을 검색한다. 일반적으로, 검색 공간은, 기준 검색 상태 및 일반적으로 하나 이상의 검색 프로세스에 의해 검색될 기준 검색 상태 주위의 거리 측정으로서 표현될 수 있는 하나 이상의 분할 기준(partition criteria)을 이용하여 영역들로 분할된다. 분할 기준을 선택하는 방식 및 다양한 검색 프로세스들에게 지정하는 방식에 따라, 검색 토폴로지 및 전략은, 다양한 특징들을 이용할 수 있고, 중첩되는 검색 공간들, 비중첩 검색 공간들, 또는 이 둘의 조합을 가질 수 있다. 검색 공간을 분할하는 데 있어서, 프로세스들은 조정 또는 제어 프로세스에 의해 조정될 수 있으며, 이 조정 또는 제어 프로세스는 검색 프로세스들 중 임의의 하나의 검색 프로세스일 수 있으며 또는 별도의 제어 프로세스일 수 있다. 다른 방법으로, 검색 프로세스들은 검색 공간을 분할하는 자신들 사이의 조정을 위해 정보를 교환할 수 있다. 본 명세서에서 설명하는 예시적인 실시예들은, 임의의 유형의 수치 모델을 활용하여 후보 검색 상태를 평가할 수 있고, 적합한 상태를 알아낼 때까지 그리고/또는 소정의 중단 기준이 충족될 때까지 영역 내의 검색 상태들을 선택하기 위한 임의의 유형의 전략을 활용할 수 있다.Exemplary embodiments described herein use multiple processes to search the space in which results are identified. In general, a search space is partitioned into regions using one or more partition criteria, which can be represented as a measure of distance around a reference search state and generally a reference search state to be searched by one or more search processes. Depending on how the partitioning criteria are selected and how they are assigned to the various search processes, the search topology and strategy may utilize various features and have overlapping search spaces, non-overlapping search spaces, or a combination of both. Can be. In dividing the search space, the processes may be coordinated by a coordination or control process, which may be a search process of any one of the search processes or may be a separate control process. Alternatively, retrieval processes can exchange information for coordination between themselves partitioning the search space. Exemplary embodiments described herein may utilize any type of numerical model to evaluate candidate search status, and to search status within a region until a suitable condition is found and / or until a predetermined interruption criterion is met. Any type of strategy can be used to select them.

도 1은 검색 공간을 조사하는 검색 알고리즘에 의해 사용될 수 있는 데이터 및 수행될 수 있는 다양한 동작들을 비롯한 일반적인 동작 흐름을 예시한다.1 illustrates a general operational flow, including data that may be used by a search algorithm that searches the search space and various operations that may be performed.

도 2는 검색 공간을 조사하는 검색 알고리즘들의 하나 이상의 인스턴스를 이용하는 일반적인 시스템을 예시한다.2 illustrates a general system using one or more instances of search algorithms to search a search space.

도 3은 집중화된 분할 에이전트 또는 로직 없이 검색 공간을 조사하는 검색 알고리즘들을 이용하는 데 수행될 수 있는 다양한 동작들을 비롯한 일반적인 동작 흐름을 예시한다.3 illustrates a general operational flow, including various operations that may be performed using search algorithms that search a search space without a centralized partitioning agent or logic.

도 4는 하나의 검색 공간을 2개의 검색 공간으로 분리하는 것을 나타냄으로써 많은 가능한 검색 토폴로지 중 하나를 예시하는 시스템의 일반적인 표현을 예시한다.4 illustrates a general representation of a system illustrating one of many possible search topologies by indicating splitting one search space into two search spaces.

도 5는 새로운 분할 기준을 이용함으로써 검색이 시간에 따라 변경되는 방식을 예시하는 시스템의 일반적인 표현을 예시한다.5 illustrates a general representation of a system that illustrates how a search changes over time by using a new segmentation criterion.

도 6은 하나의 검색 공간을 3개의 검색 공간으로 분리하는 많은 가능한 경우 중 하나를 예시하는 시스템의 일반적인 표현을 예시한다.6 illustrates a general representation of a system illustrating one of many possible cases of dividing one search space into three search spaces.

도 7은, 기준 상태들이 동일하지 않으며 검색 공간들이 전체 검색 공간 모두를 둘러싸지 않는 2개의 검색 공간으로의 분리를 예시하는 시스템의 일반적인 표현을 예시한다.FIG. 7 illustrates a general representation of a system illustrating separation into two search spaces in which the reference states are not the same and the search spaces do not surround all of the entire search space.

도 8은, 기준 상태들이 동일하지 않으며 최종 검색 공간들이 중첩되는 2개의 검색 공간으로의 분리를 예시하는 시스템의 일반적인 표현을 예시한다.8 illustrates a general representation of a system illustrating separation into two search spaces where the reference states are not the same and the final search spaces overlap.

도 9는, 기준 상태들 및 거리 제약 조건들을 포함하는 분할 기준을 이용하여, 제3 검색 공간이 정의되는 3개의 검색 공간으로의 분리를 예시하는 시스템의 일반적인 표현을 예시한다.9 illustrates a general representation of a system illustrating separation into three search spaces in which a third search space is defined, using partitioning criteria including reference conditions and distance constraints.

도 10은 컴퓨팅 장치의 하나의 가능한 기본적인 구현예를 예시한다.10 illustrates one possible basic implementation of a computing device.

도 1을 참조해 보면, 검색 공간을 조사하는 검색 알고리즘에 의해 이용될 수 있는 데이터 및 수행될 수 있는 다양한 동작들을 포함하는 예시적이며 일반적인 동작 흐름(100)이 도시되어 있다. 중단 기준(122) 및 분할 기준(118)과 같은 기타 데이터 뿐만 아니라 소정의 상태 데이터(110)가 주어진 경우, 동작 흐름(100)은, 모델을 평가하고 새로운 상태들을 식별함으로써, 검색 공간을 조사한다.Referring to FIG. 1, an exemplary and general operational flow 100 is shown that includes data that may be used by a search algorithm that searches a search space and various operations that may be performed. Given certain state data 110 as well as other data such as break criteria 122 and partition criteria 118, operation flow 100 examines the search space by evaluating the model and identifying new states. .

도 1은 다른 도면들을 참조하여 설명될 수 있지만, 예시적인 동작 흐름(100)을 임의의 특정한 도면 또는 도면들의 시스템 또는 기타 콘텐츠에 관련된 것으로 한정하려는 것이 아님을 이해하기 바란다. 또한, 예시적인 동작 흐름(100)이 동작 실행의 특정한 순서를 가리키지만 하나 이상의 다른 구현예들에서는 그 동작들이 다른 순서를 가질 수 있다는 점을 이해하기 바란다. 게다가, 예시적인 동작 흐름(100)에 예시한 데이터 및 단계들 중 일부는 필요하지 않을 수 있으며 일부 구현예에서 생략될 수 있다. 마지막으로, 이 동작 흐름이 다수의 개별적인 단계를 포함하지만, 일부 환경에서는 이러한 동작들 중 일부를 조합하고 동시에 실행시킬 수 있다는 점을 인식하기 바란다.Although FIG. 1 may be described with reference to other figures, it is to be understood that the illustrative operational flow 100 is not intended to be limited to any particular figure or system of figures or other content. In addition, it is to be understood that although the example operational flow 100 indicates a particular order of action execution, in one or more other implementations the actions may have a different order. In addition, some of the data and steps illustrated in the example operational flow 100 may not be necessary and may be omitted in some implementations. Finally, while this flow of operations involves a number of individual steps, it should be appreciated that in some circumstances some of these operations may be combined and executed simultaneously.

일반적으로, 검색 알고리즘은 특정 문제점에 대하여 하나 이상의 솔루션을 찾으려 한다. 이러한 알고리즘은 일반적으로 모델에 대하여 작용한다. 모델은 문제점 해결의 일부로서 이용되는 소정 방식의 표현을 제공한다. 모델은, 소정의 상 태가 주어지면, 결과를 제공한다. 이후, 이 결과는, 문제점을 해결하는데 적합한지 평가받을 수 있고, 일부 결과들은 다른 결과들보다 문제점에 대하여 보다 양호한 솔루션들일 것이다. 이후, 검색 알고리즘은, 임의의 개수의 기타 요인들 뿐만 아니라 기존의 상태, 결과, 그 결과의 적합성도 이용하여, 상태에 대한 새로운 값들을 선택할 수 있다. 이후, 검색 알고리즘은 이 새로운 상태를 모델에 제공하고, 결과를 얻으며, 그 결과를 평가하는 등을 행할 수 있다. 이러한 프로세스는 소정의 중단 기준이 충족될 때까지 계속될 수 있다. 예를 들어, 프로세스는, 소정 개수의 상태들의 검사를 완료할 때까지, 결과가 적합성의 소정 표준을 충족할 때까지, 또는 소정의 기타 기준이 충족될 때까지, 계속될 수 있다.In general, search algorithms try to find one or more solutions to a particular problem. Such algorithms generally operate on models. The model provides some form of representation that is used as part of problem solving. The model provides a result, given a predetermined state. This result can then be assessed if it is suitable for solving the problem, and some results will be better solutions to the problem than others. The search algorithm can then select new values for the state, using any number of other factors as well as the existing state, result, and suitability of the result. The search algorithm can then provide this new state to the model, get the results, evaluate the results, and so on. This process can continue until certain interruption criteria are met. For example, the process may continue until the completion of the inspection of the predetermined number of states, until the result meets a certain standard of conformity, or until some other criterion is met.

일부 예시적인 경우에서는, 해결할 문제점이 물리적 도메인에 있으나, 이러한 예로 한정되지는 않는다. 이러한 경우들 중 일부에서는, 모델이 소정의 물리적 프로세스 또는 프로세스들의 표현일 수 있으며, 이 모델에 제공되는 상태는 물리적 파라미터들의 코드화일 수 있고, 이 모델에 의해 발생하는 결과는 모델에 의한 물리적 파라미터들의 조작 결과일 수 있다. 예를 들어, 해결할 문제점이 컴퓨터 서버를 구성하는 것과 관련되어 있다고 가정하지만, 이러한 예로 한정되지는 않는다. 이 예에서 모델에 제공되는 상태는, 이용가능한 서버들의 개수, 서버들의 속도, 서버들에 의해 이용되는 메모리의 양, 서버들을 접속시키는 네트워크들의 속도, 및 서버들에 의해 수행되는 처리의 복잡성 등을 포함할 수 있다. 이러한 입력값들의 유형이 (A, B, C, D, E)로 표시되고 상태 데이터의 특정한 세트가 (a, b, c, d, e)로 표시되며, 각 값은 솔루션을 식별하는 데 사용되는 모델의 변수에 대응한다고 가정한다. 이 예에서, 모델은, 다양한 계산을 수행할 수 있고, 각 사용자가 컴퓨터 서버들을 사용하는 동안 경험하게 되는 평균 응답 시간의 추정값 뿐만 아니라 소정의 상태에 의해 표현되는 컴퓨터 서버들이 지원할 수 있는 동시 사용자들의 수를 포함하는 결과를 제공할 수 있다. 그 결과의 유형이 (Y, Z)로 표현되고 (a, b, c, d, e)와 같은 입력값들을 제공받는 모델이 (y, z)와 같은 출력값들을 갖는 결과를 발생시킨다고 가정한다.In some exemplary cases, the problem to be solved is in the physical domain, but is not limited to this example. In some of these cases, the model may be a representation of a given physical process or processes, and the state provided to this model may be the coding of physical parameters, and the result generated by this model may be the It may be the result of the manipulation. For example, suppose that the problem to be solved is related to configuring a computer server, but is not limited to this example. The state provided to the model in this example includes the number of servers available, the speed of the servers, the amount of memory used by the servers, the speed of the networks connecting the servers, and the complexity of the processing performed by the servers. It may include. The types of these inputs are represented by (A, B, C, D, E) and the specific set of state data is represented by (a, b, c, d, e), and each value is used to identify the solution. Assume that it corresponds to a variable in the model that is being modeled. In this example, the model can perform a variety of calculations, including an estimate of the average response time that each user experiences while using the computer servers, as well as an estimate of the concurrent users that the computer servers represented by a given state can support. It can provide results that include numbers. Assume that the model of the result is represented by (Y, Z) and the model provided with inputs such as (a, b, c, d, e) produces a result with outputs such as (y, z).

서로 다른 검색 알고리즘들을 구별하는 요인들 중 하나는, 검색 알고리즘이 평가할 다음 상태 또는 상태들을 식별하는 방식이다. 다음 상태의 식별은 서로 다른 많은 메소드들을 이용하여 달성될 수 있으며, 이 메소드들 전부 또는 대부분은 본 발명의 문맥에서 유용할 수 있다. 예를 들어, 일부 검색 알고리즘들은 랜덤하게 다음 상태를 식별할 수 있고, 다른 검색 알고리즘들은, 예를 들어, 유전자(genetic) 알고리즘, 현재 및 최근 결과들의 슬로프(slope), 또는 소정의 다른 메소드 등을 이용함으로써, 소정의 방식으로 현재 상태에 관련된 상태들의 패밀리로부터 다음 상태를 식별할 수 있다.One of the factors that distinguishes different search algorithms is how the search algorithm identifies the next state or states to evaluate. Identification of the following states can be accomplished using many different methods, all or most of which may be useful in the context of the present invention. For example, some search algorithms may randomly identify the next state, while other search algorithms may include, for example, genetic algorithms, slopes of current and recent results, or some other method. By using this, it is possible to identify the next state from a family of states related to the current state in some way.

다음 상태를 결정할 때 "거리 제약 조건(distance constraint)"을 이용함으로써, 이로운 다양한 방식들로 검색 알고리즘의 조사를 제약할 수 있다. 일반적으로, "거리 제약 조건"은 거리의 소정의 측정 또는 2개 상태 사이의 차이에 기초하여 알고리즘을 제약할 수 있다. 검색 알고리즘이 거리 제약 조건에 의해 특정되는 한정 사항을 충족하는 후속 상태들만 식별할 수 있다면, 이 검색 알고리즘의 조사는 여러 목적들을 위해 다양한 방식들로 한정될 수 있다.By using a "distance constraint" in determining the next state, one can constrain the search algorithm's investigation in a variety of beneficial ways. In general, a “distance constraint” can constrain the algorithm based on a predetermined measurement of distance or the difference between the two states. If the search algorithm can only identify subsequent states that meet the constraints specified by the distance constraint, then the search algorithm's investigation can be limited in various ways for various purposes.

일부 예시적인 구현예들에서, 거리 제약 조건 또는 거리 제약 조건들은 하나 이상의 검색 알고리즘의 다수의 인스턴스에 대하여 사용될 수 있어서, 검색 알고리즘의 각 인스턴스는 전체 검색 공간의 일부인 특정한 검색 공간을 조사하게 된다. 이와 같은 예에서는, 모델들에게 제공되는 상태들 및 거리 제약 조건의 본질 또는 제약 조건들에 따라, 검색 알고리즘의 서로 다른 인스턴스들 사이의 중첩을 피하여, 검색 공간의 동일한 부분은 동일한 방식으로 여러 번 검색되지 않게 할 수 있고, 검색 공간의 특정 영역들이 다른 영역들보다 상세히 조사될 수 있는 등 여러 가지로 달라질 수 있다.In some example implementations, distance constraints or distance constraints may be used for multiple instances of one or more search algorithms, such that each instance of the search algorithm will examine a particular search space that is part of the overall search space. In such an example, depending on the nature or constraints of the states and distance constraints provided to the models, avoiding overlap between different instances of the search algorithm, the same portion of the search space is searched many times in the same manner. And certain areas of the search space may be examined in more detail than others.

도시한 바와 같이, 동작 흐름(100)의 일 구현예에서는 상태 데이터(110)를 이용한다. 이 상태 데이터(110)는 검색 알고리즘에 의해 이해되는 대로의 현재 상태를 나타낸다. 동작 흐름(100)의 제1 반복 동안, 상태 데이터(110)는 검색 알고리즘에 제공되는 초기 상태, 또는 지정된 검색 공간 내에서 선택되는 초기 상태를 포함할 수 있다. 더욱 상세히 후술하는 바와 같이, 후속 반복들 동안, 상태 데이터(110)는 이전 반복 또는 반복들의 실행에 기초하여 식별되는 새로운 상태를 포함할 수 있다.As shown, one implementation of operational flow 100 utilizes state data 110. This state data 110 represents the current state as understood by the search algorithm. During the first iteration of the operational flow 100, the state data 110 may include an initial state provided to a search algorithm, or an initial state selected within a designated search space. As described in more detail below, during subsequent iterations, state data 110 may include a new state that is identified based on a previous iteration or execution of iterations.

일부 예시적인 구현예들에서는, 상태 데이터(110)가 하나 이상의 변수들의 값들로 표현될 수 있지만, 이러한 예로 한정되지는 않는다. 전술한 바와 같이, 이러한 예시적인 구현예에서, 상태 데이터는, (a, b, c, d, e)처럼 표현될 수 있고, 이용가능한 컴퓨터 서버들의 수, 이 서버들의 속도 등과 같은 것들을 나타낼 수 있다. 모든 변수들의 이용 뿐만 아니라 변수들의 수 및 구성, 변수들에 의해 표현되 는 데이터는 일반적으로 해결할 문제점 및 그 문제점의 솔루션에서 이용되는 모델과 함수적 단계를 갖는다는 점을 이해할 것이다. 상태의 표현은 본 발명의 문맥에서 중요하지 않으며, 상태 데이터(110)는 임의의 방식으로 표현될 수 있다.In some example implementations, state data 110 may be represented by values of one or more variables, but is not limited to this example. As mentioned above, in this exemplary implementation, state data may be represented as (a, b, c, d, e) and may indicate things such as the number of available computer servers, the speed of these servers, and the like. . It will be appreciated that the number and composition of variables, as well as the data represented by the variables, as well as the use of all variables generally have a problem to solve and the model and functional steps used in the solution of that problem. Representation of states is not critical in the context of the present invention, and state data 110 may be represented in any manner.

동작(130)의 일 구현예에서, 검색 알고리즘은, 검색 알고리즘에 의해 조사되는 문제점에 관련된 특정한 모델을 이용하여 상태 데이터(110)를 평가한다. 모델은 문제점 해결의 일부로서 사용되는 소정 방식의 표현을 제공한다. 모델은, 소정 상태가 주어지면, 결과를 제공한다. 모델은, 다양한 방법들 중 임의의 방법을 이용하여 구현될 수 있고, 해결되는 문제점의 본질에 따라 변경될 수 있다.In one implementation of operation 130, the search algorithm evaluates the state data 110 using a particular model related to the problem being investigated by the search algorithm. The model provides some form of representation that is used as part of problem solving. The model provides a result, given a predetermined state. The model can be implemented using any of a variety of methods and can be changed depending on the nature of the problem being solved.

상태 데이터(110)가 주어진 모델을 평가한 결과는, 도 1에서 결과 데이터(112)로 예시되어 있다. 일부 예시적인 구현예들에서, 결과 데이터(112)는, 항상은 아니지만 일반적으로, 원하는 결과를 생성하는 데 있어서 상태의 적합성 또는 적응성을 결정하기 위해 조사받는 파라미터들을 나타내는 하나 이상의 변수에 대한 값들로서 표현될 수 있지만, 이에 한정되지는 않는다. 전술한 일 예에서, 이 변수들은, 소정 세트의 컴퓨터 서버들이 지원할 수 있는 동시 사용자들의 수 및 모델링된 시스템의 각 사용자가 경험하게 되는 평균 응답 시간과 같은 것을 나타낼 수 있다. 상태 데이터(110)를 이용할 때와 마찬가지로, 모든 변수들의 이용 뿐만 아니라 변수들의 수 및 구성, 변수들에 의해 표현되는 데이터가 검색 알고리즘 조사의 특정한 구현예의 특정한 상세이며, 결과 데이터(112)가 임의의 방식으로 표현될 수 있음을 이해할 것이다.The result of evaluating the model given the state data 110 is illustrated by the result data 112 in FIG. 1. In some example implementations, result data 112 is typically, but not always, represented as values for one or more variables that represent the parameters examined to determine suitability or adaptability of the state in producing a desired result. It may be, but is not limited to such. In the example described above, these variables may indicate such as the number of concurrent users that a set of computer servers can support and the average response time experienced by each user of the modeled system. As with the state data 110, the use of all variables, as well as the number and configuration of the variables, the data represented by the variables, are specific details of a particular implementation of the search algorithm investigation, and the resulting data 112 is arbitrary It will be appreciated that it may be expressed in a manner.

동작(150)의 일 구현예에서, 동작 흐름(100)은 중단 기준(122)이 충족되는지 여부를 결정한다. 동작(150)에서 중단 기준이 충족된다고 결정되면("예" 분기, 동작(150)), 동작 흐름은 후술하는 바와 같이 동작(170)으로 진행하게 된다. 중단 기준이 충족되지 않는다고 결정되면("아니오" 분기, 동작(150)), 동작 흐름은 후술하는 바와 같이 동작(160)으로 진행하게 된다.In one implementation of operation 150, operation flow 100 determines whether abort criteria 122 are met. If it is determined in operation 150 that the abort criteria are met (“YES” branch, operation 150), the flow of operations proceeds to operation 170 as described below. If it is determined that an abort criterion is not met (“No” branch, operation 150), the operation flow proceeds to operation 160 as described below.

중단 기준(122)은 검색을 종료해야 하는 때를 특정하는 임의의 기준일 수 있다. 예를 들어, 중단 기준(122)은 검색이 실행될 수 있는 시간 또는 반복 횟수에 대한 제한처럼 시간적 기준을 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 또는 다른 방법으로, 적합성이나 적응성의 측정과 같은 다른 기준을 이용할 수도 있다. 중단 기준은, 전술한 예를 이용함으로써, 한 세트의 컴퓨터 서버들에 의해 지원될 수 있는 동시 사용자들의 수가 특정량을 넘는 것을 특정할 수 있고, 또는 응답 시간이 소정의 특정 시간 미만이라는 것을 특정할 수 있다. 현재 실행중인 다른 검색 프로세스에 의해 적합한 솔루션이 발견된 기준을 비롯하여, 원하는 임의의 기타 기준을 이용할 수도 있다. 중단 기준(122)에 대한 가능성은 실질적으로 무한하다.The abort criteria 122 can be any criteria that specifies when the search should end. For example, the stop criteria 122 may include a temporal criterion, such as but not limited to, the time at which the search can be executed or the number of repetitions. Alternatively, other criteria may be used, such as a measure of suitability or adaptability. Suspension criteria may specify that by using the above example, the number of concurrent users that can be supported by a set of computer servers exceeds a certain amount, or that the response time is less than a certain specified time. Can be. Any other criteria as desired may be used, including criteria for which a suitable solution has been found by other currently running search processes. The possibilities for the break criteria 122 are substantially endless.

중단 기준(122)이 충족되었다면, 동작 흐름(100)은, 일 구현예에서 동작 흐름(100)이 소정의 검색 결과를 리턴하는 동작(170)으로 진행하게 된다. 검색 결과는, 가장 최근에 처리된 상태 데이터(110)를 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 이 검색 결과는 가장 최근의 결과 데이터(112)를 포함할 수도 있고 포함하지 않을 수도 있다. 일부 구현예에서, 검색 결과는 상태 데이터(110), 결과 데이터(112), 또는 기타 데이터의 하나보다 많은 부분을 포함할 수 있다. 한 세트의 데이터보다 많은 데이터를 리턴하는 일부 구현예에서는, 그 데이터의 일부 또는 전부가, 보다 긴 시간 주기로 또는 그 사이에 데이터 저장소(180)와 같은 데이터 저장소에 저장될 수 있다. 게다가, 일부의 경우에서는, 동작 흐름(100)이 어떠한 값도 리턴하지 않을 수 있다. 예를 들어, 동작 흐름이 소정의 특정한 기준을 충족하는 결과 데이터(112)를 찾지 못한 채로 특정 횟수 실행되는 경우, 동작(170)이 어떠한 결과도 리턴하지 않을 수 있으나, 이러한 예로 한정되지는 않는다. 동작(170)이 어떠한 결과도 리턴하지 않을 수 있는 경우의 다른 예로는, 일부 구현예에서, 동작 흐름의 다른 인스턴스가 솔루션을 찾았기 때문에 동작 흐름이 중단되는 경우이다. 다른 방법으로, 다른 구현예에서는, 동작(170)이, 소정 기준에 가장 근접하게 매칭되는 데이터, 또는 검색 알고리즘의 사용자에게 소정의 방식으로 유용할 수 있는 데이터의 소정의 다른 세트를 리턴할 수 있다.Once the abort criteria 122 have been met, the operational flow 100 proceeds to an operation 170 in which the operational flow 100 returns a predetermined search result in one implementation. The search results may include, but are not limited to, the most recently processed state data 110. This search result may or may not include the most recent result data 112. In some implementations, the search results can include more than one portion of the state data 110, the result data 112, or other data. In some implementations that return more data than a set of data, some or all of the data may be stored in a data store, such as data store 180, at or between longer periods of time. In addition, in some cases, operation flow 100 may not return any value. For example, if the operation flow is executed a certain number of times without finding result data 112 that meets certain specific criteria, operation 170 may not return any results, but is not limited to this example. Another example where operation 170 may not return any results is, in some implementations, where the operation flow is interrupted because another instance of the operation flow has found a solution. Alternatively, in other implementations, operation 170 may return data that most closely matches a predetermined criterion, or some other set of data that may be useful in some manner to a user of a search algorithm. .

중단 기준(122)이 충족되지 않았다면, 동작 흐름(100)은 동작(160)으로 진행하게 된다. 동작(160)의 일 구현예에서, 동작 흐름(100)은 자신의 후속 반복에서 이용될 새로운 상태를 식별한다. 동작 흐름은, 동작(160)의 실행을 완료한 후, 동작(160)에서 식별된 상태를 이용하는 동작(130)으로 다시 진행하게 된다.If the abort criterion 122 is not met, the operational flow 100 proceeds to operation 160. In one implementation of operation 160, operation flow 100 identifies a new state to be used in its subsequent iteration. The operation flow proceeds back to operation 130 using the state identified in operation 160 after completing execution of operation 160.

동작(160)에 의해 새로운 상태를 식별하는 방법은 매우 다양할 수 있다. 일부 구현예들에서, 동작 흐름은, 자신이 동작(160)의 일부로서 실행시키는 프로세스를 통해 새로운 상태를 식별할 수 있다. 예를 들어, 동작(160)은, 기존의 상태 및 기존의 상태의 적합성과 같은 데이터가 주어진 상황에서, 알고리즘을 이용하여 새로운 상태를 식별할 수 있지만, 이러한 예로 한정되지는 않는다. 동일한 구현예 또는 다른 구현예에서, 동작(160)은, 예를 들어 소정의 다른 프로세스 또는 동작(160)의 범위 밖의 입력으로부터 새로운 상태를 얻음으로써 그 새로운 상태를 식별할 수 있다. 예를 들어, 또다른 검색 프로세스를 비롯한 소정의 다른 프로세스가, 동작(160)에 의해 이용될 새로운 상태를 식별할 수 있지만, 이러한 예로 한정되지는 않는다.The way of identifying a new state by operation 160 can vary widely. In some implementations, the operational flow can identify a new state through a process that it executes as part of operation 160. For example, operation 160 may identify a new state using an algorithm, but is not limited to this example, in situations where data such as an existing state and suitability of an existing state is given. In the same or other implementations, operation 160 may identify the new state by, for example, obtaining a new state from an input outside the scope of any other process or operation 160. For example, any other process, including another search process, may identify a new state to be used by operation 160, but is not limited to this example.

사용되는 특정한 검색 알고리즘 및 다른 선택들에 따라, 다음 상태가 식별되는 방식의 상세가 급격히 변경될 수 있다. 예를 들어, 일부 구현예들에서, 다음 상태는 랜덤하게 식별될 수 있다. 다른 구현예들에서, 다음 상태는, 예를 들어, 유전자 알고리즘, 현재 및 최근 결과들의 슬로프, 또는 소정의 다른 메소드 등을 이용함으로써, 현재 상태에 소정 방식으로 관련된 상태들의 패밀리로부터 식별될 수 있다. 본 발명의 문맥에서는 임의의 이러한 알고리즘이나 프로세스를 이용하여 새로운 상태를 식별할 수 있다.Depending on the particular search algorithm and other choices used, the details of how the next state is identified can be changed drastically. For example, in some implementations, the next state can be randomly identified. In other implementations, the next state can be identified from a family of states that are related in some way to the current state, for example by using genetic algorithms, slopes of current and recent results, or some other method. In the context of the present invention, any such algorithm or process may be used to identify a new state.

특정한 일 구현예에서, 다음 상태는, 스스로 또는 다른 제약 조건들이나 기준에 부가하여, 그리고 분할 기준(118)에 의해 임의의 특정한 알고리즘을 이용하여 제약될 수 있다. 분할 기준(118)은, "거리 제약 조건" 및 "기준 상태" 둘 다를 포함할 수 있다. 거리 제약 조건 및 기준 상태의 선택에 따라, 많은 서로 다른 검색 방식들을 얻을 수 있다. 분할 기준 파라미터들에 대하여 서로 다른 선택들로부터 발생할 수 있는 검색 방식들의 일부 예들을, 도 4 내지 도 9를 참조하여 후술한다.In one particular implementation, the next state may be constrained using any particular algorithm by itself or in addition to other constraints or criteria, and by partition criteria 118. Partition criteria 118 may include both “distance constraint” and “reference state”. Depending on the distance constraint and the choice of reference state, many different search schemes can be obtained. Some examples of search schemes that may arise from different selections for splitting reference parameters are described below with reference to FIGS. 4-9.

정확한 실시예 및 구현예에 따라, 분할 기준(118)을 다양한 방식으로 식별할 수 있다. 예를 들어, 동작 흐름(100)에 따라 동작하는 검색 프로세스는, 소정의 기준에 기초하여 또는 다른 검색 프로세스들과의 정보 교환에 기초하여 분할 기준(118) 자체를 선택할 수 있지만, 이러한 예로 한정되지는 않는다. 다른 방법으로, 분할 기준(118)은, 제어 또는 조정 프로세스 혹은 제어 또는 조정 프로세스로서 기능하는 또다른 검색 프로세스와 같은 다른 소스로부터 얻을 수 있다. 다른 선택 사항들도 이용가능하며, 분할 기준(118)을 식별하는 어떠한 방법도 이용할 수 있다.Depending on the exact embodiment and implementation, the partition criteria 118 can be identified in various ways. For example, a retrieval process operating in accordance with the operational flow 100 may select the dividing criteria 118 itself based on predetermined criteria or based on information exchange with other retrieval processes, but is not limited to this example. Does not. Alternatively, partition criteria 118 can be obtained from another source, such as a control or coordination process or another search process that functions as a control or coordination process. Other options are available, and any method of identifying segmentation criteria 118 may be used.

거리 제약 조건은 2개 이상의 상태 사이의 차이의 소정의 측정을 제공한다. 하나 이상의 구현예에서, 거리 제약 조건은 상태들 중 하나에 관련되며 이러한 하나가 기준 상태일 수 있다. 일부 구현예들에서, 기준 상태는 검색 알고리즘에 제공되는 원래의 상태 데이터일 수 있다. 다른 구현예들에서 또는 다른 시간대의 동일한 구현예에서, 기준 상태는 소정의 다른 상태 데이터를 포함할 수 있다. 동작(160)의 일부 구현들예에서는, 분할 기준(118)의 일부인 거리 제약 조건을 이용하여, 기준 상태가, 특정한 정도로, 식별된 새로운 상태와 유사한지, 기존의 상태 데이터(110)와 유사한지, 또는 소정의 다른 상태 데이터와 유사한지 여부를 평가할 수 있다. 다른 구현예들에서는, 다시 거리 제약 조건을 이용하여 기준 상태가, 특정한 정도로, 식별된 새로운 상태와 다른지 여부를 평가할 수 있다.Distance constraints provide some measure of the difference between two or more states. In one or more implementations, the distance constraint is related to one of the states and this one can be the reference state. In some implementations, the reference state can be the original state data provided to the search algorithm. In other implementations or in the same implementation at different time zones, the reference state can include some other state data. In some implementations of operation 160, using a distance constraint that is part of partition criterion 118, the reference state is, to a certain extent, similar to the identified new state or similar to existing state data 110. , Or similar to some other state data. In other implementations, distance constraints can again be used to assess whether the reference state differs from the identified new state to a certain degree.

예시적인 일 구현예에서, 거리 제약 조건은 해밍 거리(Hamming distance)를 이용하여 구현될 수 있다. 해밍 거리는, 하나의 상태가 다른 상태와 동일해지도록 그 하나의 상태에 대하여 수행되어야 하는 변경 횟수의 측정값이다. 예를 들어, 변수들(A, B, C), 상태(a, b, c), 다른 상태(a, f, g)가 있다고 가정한다. 이 상 태들 사이의 해밍 거리는 2이며, 그 이유는, 제1 상태를 제1 상태와 동일하게 하기 위해, B의 값이 b로부터 f로 변경되어야 하며 C의 값이 c로부터 g로 변경되어야 하기 때문이다. 일부 경우에, 예를 들어, 해밍 거리가 일부 로컬 검색 알고리즘들로 이용될 수 있을 때, 이 해밍 거리는 시작 상태와 종료 상태 사이의 중간 상태들의 수를 나타낼 수 있다.In one exemplary implementation, distance constraints may be implemented using Hamming distance. The hamming distance is a measure of the number of changes that must be made to one state so that one state is equal to the other state. For example, assume that there are variables A, B, C, states a, b, c, and other states a, f, g. The hamming distance between these states is 2, because in order to make the first state equal to the first state, the value of B must be changed from b to f and the value of C must be changed from c to g. to be. In some cases, for example, when a hamming distance can be used with some local search algorithms, this hamming distance can represent the number of intermediate states between the start state and the end state.

동일한 구현예 또는 다른 구현예에서는, 다른 동작들 또는 메소드들을 거리 제약 조건의 구현예의 일부로서 이용할 수 있다. 예를 들어, 벡터를 이용하여 상태 데이터가 표현되는 경우에, 거리 제약 조건은, 예를 들어 벡터들을 다른 하나의 벡터 상으로 사영하는 것, 하나의 벡터 또는 벡터들을 표면 상으로 사영하는 것 등과 같은 벡터 연산들을 이용하여 구현될 수 있지만, 이러한 예로 한정되지는 않는다.In the same or other implementations, other operations or methods may be used as part of the implementation of the distance constraint. For example, in the case where state data is represented using a vector, the distance constraint may be, for example, projecting vectors onto another vector, projecting one vector or vectors onto a surface, and the like. It may be implemented using vector operations, but is not limited to this example.

거리 제약 조건에 대하여 사용되는 알고리즘, 거리 제약 조건의 특정한 한정값, 거리 제약 조건을 평가할 목적으로 어느 상태들을 이용할 것인지의 선택에 따라, 다양한 검색 조사 방식들을 얻을 수 있다. 예를 들어, 동작 흐름(100)을 이용하는 경우, 동작(160)은 기준 상태를 검색 알고리즘에 제공되는 초기 상태로 정의할 수 있고, 기준 상태로부터의 거리 측정값이 지정된 값 미만인 새로운 상태들만 식별할 수 있도록 거리 제약 조건을 이용할 수 있지만, 이러한 예로 한정되지는 않는다. 다른 예에서, 동작(160)은 다른 거리 제약 조건을 이용하여, 기준 상태에 대한 거리 측정값이 소정의 다른 값보다 큰 새로운 상태들만 식별할 수 있다. 또다른 예에서, 동작(160)은, 2개 값들 사이의 또는 특정 범위 내의 거리 측정값을 갖는 상태들만이 식별되도록 특정하는 거리 제약 조건을 이용할 수 있다. 동작(160)은 서로 다른 많은 상태들 및 값들을 갖는 거리 측정값을 이용하여 검색 조사를 제약하거나 지시할 수 있다.Depending on the algorithm used for the distance constraint, the specific constraints of the distance constraint, and the choice of which states to use for the purpose of evaluating the distance constraint, various search investigation schemes can be obtained. For example, using operation flow 100, operation 160 may define a reference state as an initial state provided to the search algorithm, and identify only new states where the distance measurement from the reference state is less than the specified value. Distance constraints may be used, but are not limited to these examples. In another example, operation 160 may use other distance constraints to identify only new states where the distance measurement for the reference state is greater than some other value. In another example, operation 160 may use a distance constraint that specifies that only states having a distance measurement between two values or within a certain range are identified. Operation 160 may constrain or direct the search survey using distance measurements having many different states and values.

거리 기준 및 기준 상태의 분할 기준 파라미터들에 대하여 서로 다른 값들을 선택하는 것은, 다수의 개별적인 컴퓨팅 리소스를 이용하여 검색의 다수의 인스턴스가 동시에 (또는 순차적으로, 또는 하나의 컴퓨팅 리소스에 대하여 시간 공유 방식으로) 발생하는 경우에, 유용할 수 있다. 예를 들어, 검색 알고리즘의 하나의 인스턴스는 기준 상태로부터 특정한 거리 측정값 내에 있는 그러한 상태들을 조사하도록 지시받을 수 있다. 검색 알고리즘의 다른 인스턴스는, 기준 상태로부터 특정한 거리 측정값을 벗어나는 그러한 상태들을 조사하도록 지시받을 수 있다. 검색 알고리즘의 하나 이상의 인스턴스를 이용하는 하나의 가능한 예시적인 시스템을 도 2를 참조하여 후술한다.Selecting different values for the split reference parameters of the distance criterion and the reference state means that multiple instances of the search can be simultaneously (or sequentially) or time-shared for one computing resource using multiple individual computing resources. It may be useful if it occurs. For example, one instance of a search algorithm may be instructed to examine such states that are within a particular distance measure from a reference state. Another instance of the search algorithm may be instructed to examine such states that deviate from a particular distance measure from a reference state. One possible example system using one or more instances of a search algorithm is described below with reference to FIG. 2.

도 2를 참조해 보면, 검색 알고리즘들의 하나 이상의 인스턴스를 이용하여 검색 공간을 조사하는 예시적이며 일반적인 시스템(200)이 도시되어 있다. 하나 이상의 검색 프로세스(210, 212, 214), 및 조정 또는 제어 프로세스(260)가 시스템(200)에 포함된다. 일부 구현예에서, 검색 프로세스들(210, 212, 214) 중 하나 이상은 조정 또는 제어 요소(270, 272, 274)를 포함할 수 있다. 또한, 분할 기준(220, 222, 224)의 하나 이상의 인스턴스, 다른 데이터(230, 232, 234)의 하나 이상의 인스턴스, 출력 데이터(250, 252, 254)의 하나 이상의 인스턴스, 종료 출력 데이터(280)를 비롯한 다양한 데이터 요소들이 그 시스템에 의해 이용된다.Referring to FIG. 2, an example and general system 200 is shown that examines a search space using one or more instances of search algorithms. One or more retrieval processes 210, 212, 214, and coordination or control processes 260 are included in system 200. In some implementations, one or more of the retrieval processes 210, 212, 214 can include coordination or control elements 270, 272, 274. In addition, one or more instances of split criteria 220, 222, 224, one or more instances of other data 230, 232, 234, one or more instances of output data 250, 252, 254, termination output data 280 Various data elements, including, are utilized by the system.

도 2는 다른 도면들을 참조하여 설명될 수 있지만, 예시적인 시스템(200)을 임의의 특정한 도면 또는 도면들의 시스템 또는 기타 내용에 관련된 것으로 한정하려는 것이 아님을 이해하기 바란다.2 may be described with reference to other figures, it should be understood that the example system 200 is not intended to be limited to any particular figure or system of figures.

하나 이상의 구현예에서, 하나 이상의 검색 프로세스(210, 212, 214)는 소정의 분할 기준(220, 222, 224) 및 다른 데이터(230, 232, 234)에 기초하여 검색 공간의 소정의 일부를 검색하도록 설계된 동작 흐름을 실행한다. 예를 들어, 검색 프로세스는, 도 1을 참조하여 설명한 동작 흐름(100), 또는 이 동작 흐름을 적합하게 수정한 소정의 동작 흐름을 실행할 수 있다. 다른 구현예에서, 그 하나 이상의 검색 프로세스(210, 212, 214)는 다른 동작 흐름들을 실행할 수 있다. 일부 구현예들에서, 각 검색 프로세스는, 다수의 코어를 갖는 컴퓨터 프로세서, 특정한 컴퓨터 프로세서, 또는 다수의 컴퓨터의 분산형 세트의 특정한 컴퓨터에서의 특정한 코어처럼, 특정한 개별적인 컴퓨팅 리소스 상에서 실행될 수 있다. 다른 구현예에서, 하나 이상의 검색 프로세스는 소정의 컴퓨팅 리소스를 공유할 수 있다. 임의의 개수의 검색 프로세스들을 이용할 수 있다. 서로 다른 구현예들에서는, 해결할 문제의 복잡성, 개별적으로 이용가능한 컴퓨팅 리소스들의 개수 등과 같은 요인들에 따라 서로 다른 개수의 검색 프로세스들을 이용할 수 있다.In one or more implementations, one or more of the search processes 210, 212, 214 retrieve a predetermined portion of the search space based on certain partitioning criteria 220, 222, 224 and other data 230, 232, 234. Implement an operational flow designed to For example, the retrieval process may execute the operation flow 100 described with reference to FIG. 1 or a predetermined operation flow in which the operation flow is appropriately modified. In other implementations, the one or more retrieval processes 210, 212, 214 can execute other operational flows. In some implementations, each search process can be executed on a particular individual computing resource, such as a computer processor with multiple cores, a particular computer processor, or a particular core in a particular computer in a distributed set of multiple computers. In other implementations, one or more search processes can share certain computing resources. Any number of search processes can be used. Different implementations may use different numbers of search processes depending on factors such as the complexity of the problem to be solved, the number of individually available computing resources, and the like.

동작 흐름을 실행하는 검색 프로세스는, 일부 구현예에서 다른 데이터(230, 232, 234) 뿐만 아니라 제공된 소정의 분할 기준(220, 222, 224)도 이용할 수 있다.The retrieval process that executes the operational flow may, in some implementations, utilize the given segmentation criteria 220, 222, 224 as well as other data 230, 232, 234.

더욱 상세히 후술하는 바와 같이, 전체 시스템에 대한 검색 토폴로지는, 특 히, 분할 기준(220, 222, 224) 및 활용되는 검색 프로세스의 개수에 의해 제약되거나 참조되는 특정한 데이터에 의해 결정된다. 일부 구현예들에서, 일부 검색 프로세스들은 동일하거나 유사한 분할 기준을 가질 수 있는 한편 다른 검색 프로세스들은 서로 다른 분할 기준을 가질 수 있다. 마찬가지로, 다양한 검색 프로세스들은 동일하거나 서로 다른 기타 데이터를 이용할 수 있다.As will be described in more detail below, the search topology for the entire system is determined in particular by the particular data being constrained or referenced by the partitioning criteria 220, 222, 224 and the number of search processes utilized. In some implementations, some search processes can have the same or similar partitioning criteria while other search processes can have different partitioning criteria. Similarly, various retrieval processes may use the same or different other data.

분할 기준(220, 222, 224)은 상세히 전술한 바와 같이 거리 제약 조건 및 기준 상태 정보 둘 다를 포함할 수 있다. 검색 프로세스에 의해 이용되는 분할 기준은, 거리 제약 조건 및 기준 상태의 단일 세트를 포함할 수 있고, 또는 거리 제약 조건 및 기준 상태 정보의 다수 세트를 포함할 수 있다. 거리 제약 조건 및 기준 상태 정보의 다수 세트에 해당하는 후자의 경우, 검색 프로세스는 거리 제약 조건 및 기준 상태 정보의 일부만을 또는 전부를 이용할 수 있다.The segmentation criteria 220, 222, 224 may include both distance constraints and reference state information, as described above in detail. The segmentation criteria used by the search process may include a single set of distance constraints and reference states, or may include multiple sets of distance constraints and reference state information. In the latter case, which corresponds to multiple sets of distance constraint and reference state information, the search process may utilize some or all of the distance constraint and reference state information.

다른 데이터(230, 232, 234)는, 특히, 검색 프로세스가 출력 데이터(250, 252, 254)를 식별하는 데 필요하거나 유용한 임의의 추가 데이터를 포함할 수 있다. 일부 구현예들에서, 다른 데이터(230, 232, 234)는 중단 기준을 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 일부 구현예들에서는, 어떠한 다른 데이터(230, 232, 234)도 필요하지 않거나 요구되지 않을 수 있으며, 이 데이터 요소는 존재하지 않거나 시스템에 의해 사용되지 않을 수 있다.The other data 230, 232, 234 can include any additional data that is necessary or useful, in particular, for the search process to identify the output data 250, 252, 254. In some implementations, other data 230, 232, 234 can include abort criteria, but is not limited to this example. In some implementations, no other data 230, 232, 234 may be needed or required, and this data element may not be present or used by the system.

제공된 분할 기준(220, 222, 224), 다른 데이터(230, 232, 234), 동작 흐름(100)과 같은 동작 흐름을 이용함으로써, 검색 프로세스(210, 212, 214)는 출력 데이터(250, 252, 254)를 식별하게 된다. 출력 데이터(250, 252, 254)는 다양한 정보를 포함할 수 있다. 이 정보는, 동작 흐름(100)과 같이 실행된 동작 흐름의 일부로서 발생한 정보 중 임의의 정보, 및/또는 기타 정보를 포함할 수 있다. 예를 들어, 출력 데이터(250, 252, 254)는 검색 프로세스에 의해 식별된 하나 이상의 상태를 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 일부 경우에, 이러한 하나 이상의 상태는, 적어도, 제공된 분할 기준을 이용하고 기타 데이터도 이용할 수 있는 특정한 검색 프로세스에 의해 발견된 솔루션처럼, 해결할 문제점에 대하여 적합한 솔루션 또는 솔루션들을 나타낼 수 있다. 동일한 또는 다른 구현예들에서, 출력 데이터는 다수의 상태, 리턴되거나 조사되는 상태들의 적합성이나 적응성, 및/또는 기타 데이터를 포함할 수 있다.By using operational flows such as the provided segmentation criteria 220, 222, 224, other data 230, 232, 234, operational flow 100, the retrieval process 210, 212, 214 results in output data 250, 252. , 254). The output data 250, 252, 254 may include various information. This information may include any of the information generated as part of the operational flow executed as the operational flow 100, and / or other information. For example, output data 250, 252, 254 may include one or more states identified by a retrieval process, but is not limited to this example. In some cases, this one or more states may represent a suitable solution or solutions to the problem to be solved, at least, such as a solution found by a particular search process that uses the provided partitioning criteria and may also use other data. In the same or other implementations, the output data may include multiple states, suitability or adaptability of the states returned or examined, and / or other data.

이후, 출력 데이터(250, 252, 254)는 조정 또는 제어 프로세스(260)에 의해 이용될 수 있고, 이 프로세스는 소정의 종료 출력 데이터(280)를 식별할 수 있거나 새로운 세트의 분할 기준(220, 222, 224)과 다른 데이터(230, 232, 234)도 식별할 수 있으며, 이들은 다시 검색 프로세스(210, 212, 214)를 이용함으로써 검색 공간의 추가 조사를 수행하는 데 이용된다.The output data 250, 252, 254 may then be used by the adjustment or control process 260, which may identify the predetermined end output data 280 or may use a new set of partitioning criteria 220, 222, 224 and other data 230, 232, 234 can also be identified, which in turn are used to perform further investigation of the search space by using search processes 210, 212, 214.

종료 출력 데이터(280)는 다양한 정보를 포함할 수 있다. 일부 예시적인 구현예들에서, 종료 출력 데이터(280)는, 검색 프로세스(210, 212, 214)에 의해 식별되고 검색 프로세스들 및/또는 조정 또는 제어 프로세스(260)에 의해 시스템(200)의 사용자에 관련된 것으로 판정되는 하나 이상의 상태를 포함할 수 있다. 예를 들어, 종료 출력 데이터(280)는, 시스템(200)에 의해 이용되는 동작 흐름들의 모든 반복들 전체에서 검색 프로세스들 중 임의의 검색 프로세스에 의해 발견된 하나의 가장 적합한 출력 상태를 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 다른 예시적인 구현예들에서, 종료 출력 데이터는 다수의 출력 상태를 포함할 수 있다. 또한, 종료 출력 데이터는, 동작 흐름(100)에 의해 발생된 상세한 결과 데이터(112) 등과 같이 시스템의 사용자에게 유용한 다른 정보를 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 또한, 종료 출력 데이터는, 예를 들어, 검색 조사 프로세스의 집계 요약을 비롯하여 조정 또는 제어 프로세스에 의해 발생된 정보, 또는 기타 데이터를 포함할 수 있지만, 이러한 예로 한정되지는 않는다.The termination output data 280 may include various information. In some example implementations, the termination output data 280 is identified by the retrieval process 210, 212, 214 and is a user of the system 200 by the retrieval processes and / or the coordination or control process 260. It may include one or more states determined to be related to. For example, the termination output data 280 may include one most suitable output state found by any of the retrieval processes across all iterations of the operational flows used by the system 200. However, it is not limited to this example. In other example implementations, the termination output data can include multiple output states. In addition, the termination output data may include other information useful to the user of the system, such as detailed result data 112 generated by the operational flow 100, but is not limited to this example. In addition, the termination output data may include, but is not limited to, for example, information generated by an adjustment or control process, including an aggregate summary of a search survey process, or other data.

조정 또는 제어 프로세스(260)는, 다양한 메소드들을 이용하여 실행을 중지하고 소정의 종료 출력 데이터(280)의 리턴 여부를 결정할 수 있다. 일부 구현예들에서, 조정 또는 제어 프로세스는, 출력 데이터(250, 252, 254)가 시스템(200)의 사용자에 의해 제공되는 소정의 임계값 내에 속하는 경우, 종료 출력 데이터를 리턴할 수 있다. 예를 들어, 그 프로세스는 종료 출력 데이터가 소정값을 초과할 때에만 또는 종료 출력 데이터의 결과 데이터(112)가 특정 범위 내에 속할 때에만 종료 출력 데이터를 리턴할 수 있다. 동일한 또는 다른 구현예들에서, 조정 또는 제어 프로세스(260)는, 검색 프로세스들(210, 212, 214)에 의해 이용되는 동작 흐름들을 소정 횟수 실행하였을 때, 종료 출력 데이터를 리턴할 수 있다. 예를 들어, 그 프로세스는 고정된 반복 횟수만큼 또는 소정의 시간량동안만 동작 흐름들을 실행할 수 있고, 이후에 일부 종료 출력 데이터(280)를 리턴할 수 있다.The adjustment or control process 260 can use various methods to stop execution and determine whether to return the predetermined exit output data 280. In some implementations, the adjustment or control process can return termination output data if the output data 250, 252, 254 falls within a predetermined threshold provided by the user of the system 200. For example, the process may return the end output data only when the end output data exceeds a predetermined value or only when the result data 112 of the end output data falls within a specific range. In the same or other implementations, the coordination or control process 260 may return end output data when executing the operational flows used by the retrieval processes 210, 212, 214 a predetermined number of times. For example, the process may execute operational flows for a fixed number of iterations or only for a predetermined amount of time, and then return some exit output data 280.

조정 또는 제어 프로세스(260)가 종료 출력 데이터(280)를 리턴하지 않는 경우, 이 프로세스는 대신 새로운 세트의 분할 기준(220, 222, 224) 및 다른 데이 터(230, 232, 234)도 식별할 수 있으며, 이들은 이후에 검색 프로세스들(210, 212, 214)을 다시 이용함으로써 검색 공간의 추가 조사를 수행하는 데 이용될 수 있다. 조정 또는 제어 프로세스(260)가 이러한 데이터 및/또는 그 데이터 자체의 본질을 식별하는 방식은 매우 다양할 수 있다.If the adjustment or control process 260 does not return the exit output data 280, this process will also identify a new set of partition criteria 220, 222, 224 and other data 230, 232, 234 instead. These can then be used to perform further investigation of the search space by reusing search processes 210, 212, 214. The manner in which the coordination or control process 260 identifies the nature of this data and / or the data itself can vary widely.

새로운 분할 기준(220, 222, 224) 및 새로운 기타 데이터(230, 232, 234)는 일부 검색 프로세스들에 대하여 동일할 수 있고 또는 일부 또는 모든 검색 프로세스들에 대하여 서로 다를 수 있다. 예를 들어, 일 구현예에서, 조정 또는 제어 프로세스(260)는 동일한 기준 상태 데이터 및 다른 데이터를 이용할 수 있고 거리 제약 조건 데이터만 변경시킬 수 있다. 다른 구현예에서, 조정 또는 제어 프로세스(260)는 검색 프로세스들의 일부 또는 전부에 대하여 기준 상태 및 거리 제약 조건 둘 다를 변경시킬 수 있다. 서로 다른 분할 기준으로부터 발생하는 검색 방식들의 일부 예들을 도 4 내지 도 9를 참조하여 후술한다.The new segmentation criteria 220, 222, 224 and the new other data 230, 232, 234 may be the same for some search processes or may be different for some or all search processes. For example, in one implementation, the adjustment or control process 260 may use the same reference state data and other data and change only the distance constraint data. In other implementations, the adjustment or control process 260 can change both the reference state and distance constraints for some or all of the search processes. Some examples of search schemes resulting from different partitioning criteria are described below with reference to FIGS. 4 through 9.

조정 또는 제어 프로세스(260)는 임의의 메소드를 이용하여 새로운 분할 기준(220, 222, 224) 및 새로운 다른 데이터(230, 232, 234)를 식별할 수 있다. 하나 이상의 예시적인 구현예에서, 조정 또는 제어 프로세스(260)는, 모든 검색 프로세스들에 대하여 하나의 기준 상태만을 식별할 수 있고, 출력 데이터(250, 252, 254)에서 제공되는 바와 같이 이전 반복으로부터 가장 적합한 상태를 식별함으로써 그 상태를 식별할 수 있다. 다른 구현예들에서, 이 프로세스는, 일부 다른 수단을 이용하여 기준 상태를 식별할 수 있고, 또는 서로 다른 검색 프로세스들에 대하여 서로 다른 기준 상태들을 식별할 수 있다. 마찬가지로, 조정 또는 제어 프로세 스(260)는, 각 검색 프로세스에 대하여 서로 다른 거리 제약 조건들을 이용함으로써, 예를 들어, 검색 공간을 서로 다른 분할부들로 분리하여 서로 다른 다양한 방식들로 조사를 지시할 수 있다. The adjustment or control process 260 can use any method to identify new segmentation criteria 220, 222, 224 and new other data 230, 232, 234. In one or more example implementations, the coordination or control process 260 can identify only one reference state for all retrieval processes and from previous iterations as provided in the output data 250, 252, 254. You can identify the state by identifying the most appropriate state. In other implementations, this process can identify the reference state using some other means, or can identify different reference states for different search processes. Similarly, the coordination or control process 260 may use different distance constraints for each search process, for example, dividing the search space into different partitions and directing the survey in different ways. can do.

일부 구현예들에서, 조사를 위한, 출력 데이터, 분할 기준, 및/또는 새로운 상태들의 식별은, 하나의 조정 또는 제어 프로세스(260) 대신에 하나 이상의 조정 또는 제어 요소(270, 272, 274)에서 수행될 수 있다. 일부 구현예들에서, 이러한 조정 또는 제어 요소들은 하나 이상의 검색 프로세스(210, 212, 214)에 관련될 수 있다. 하나 이상의 조정 또는 제어 요소와 같은 요소들을 이용하여 조사를 위해 종료 출력 데이터 및 새로운 상태들을 식별하는 동작 흐름의 한 가지 가능한 구현예를, 도 3을 참조하여 보다 상세히 후술한다.In some implementations, the identification of the output data, the segmentation criteria, and / or the new states, for investigation, is performed at one or more adjustment or control elements 270, 272, 274 instead of one adjustment or control process 260. Can be performed. In some implementations, these coordination or control elements can relate to one or more search processes 210, 212, 214. One possible implementation of the operational flow of identifying exit output data and new states for investigation using elements such as one or more adjustment or control elements is described in more detail below with reference to FIG. 3.

이러한 구현예들 중 일부에서, 다수의 검색 프로세스들(210, 212, 214) 중 전체 검색 조사 프로세스를 지시하고 조정 또는 제어하는 데 하나의 조정 또는 제어 요소(270)만이 필요할 수 있지만, 이러한 예로 한정되지는 않는다. 예를 들어, 시작할 제1 검색 프로세스는 자신이 제1 검색 프로세스임을 검출할 수 있고 이후에 시작되는 임의의 검색 프로세스들을 제어할 수 있다. 다른 구현예들에서, 각 검색 프로세스(210, 212, 214)는 자신의 고유한 조정 또는 제어 프로세스(270, 272, 274)를 가질 수 있지만, 이러한 예로 한정되지는 않는다. 이러한 시스템에서, 조정 또는 제어 프로세스들은 서로 통신하여 전체 검색 조사를 중단하는 때를 결정할 수 있고 조사할 새로운 상태들, 이용될 새로운 분할 기준 등을 식별할 수 있다. 또다른 구현예들에서, 검색 프로세스들의 전부가 아닌 일부는 조정 또는 제어 요소 들을 포함할 수 있다.In some of these implementations, only one coordination or control element 270 may be required to direct and coordinate or control the entire search investigation process of the plurality of search processes 210, 212, 214, but is limited to this example. It doesn't work. For example, the first search process to start may detect that it is the first search process and may control any search processes that are subsequently started. In other implementations, each retrieval process 210, 212, 214 can have its own coordination or control process 270, 272, 274, but is not limited to this example. In such a system, the coordination or control processes may communicate with each other to determine when to stop the full search investigation and identify new states to investigate, new segmentation criteria to be used, and the like. In still other implementations, some but not all of the retrieval processes can include coordination or control elements.

이제 도 3을 참조해 보면, 집중화된 분할 에이전트 또는 로직 없이, 검색 공간을 조사하기 위해 검색 알고리즘들을 이용하는 데 수행될 수 있는 다양한 동작들을 포함하는, 예시적인 일반적 동작 흐름(300)이 도시되어 있다. 예시적인 동작 흐름(300)은, 검색 공간을 조사하고, 일부 구현예들에서, 아마도 동작 흐름(300)과 같은 동작 흐름을 실행하는 다른 시스템들과 통신함으로써 자신의 검색을 지시한다.Referring now to FIG. 3, an exemplary general operational flow 300 is shown, including various operations that may be performed using search algorithms to examine a search space, without a centralized partitioning agent or logic. Exemplary operational flow 300 directs its search by examining the search space and, in some implementations, possibly communicating with other systems executing an operational flow, such as operational flow 300.

도 3은 다른 도면들을 참조하여 설명될 수 있지만, 예시적인 동작 흐름(300)을 임의의 특정한 도면 또는 도면들의 시스템 또는 기타 내용에 관련된 것으로 한정하려는 것이 아님을 이해하기 바란다. 또한, 예시적인 동작 흐름(300)이 동작 실행의 특정한 순서를 가리키지만 하나 이상의 다른 구현예들에서는 그 동작들이 다른 순서를 가질 수 있다는 점을 이해하기 바란다. 게다가, 예시적인 동작 흐름(300)에 예시한 데이터 및 단계들 중 일부는 필요하지 않을 수 있으며 일부 구현예에서 생략될 수 있다. 마지막으로, 이 동작 흐름이 다수의 개별적인 단계를 포함하지만, 일부 환경에서는 이러한 동작들 중 일부를 조합하고 동시에 실행시킬 수 있다는 점을 인식하기 바란다.3 may be described with reference to other figures, it should be understood that the illustrative operational flow 300 is not intended to be limited to anything related to any particular figure or system of figures. Also, while the example operational flow 300 indicates a particular order of execution of the operations, it is to be understood that in one or more other implementations, the operations may have a different order. In addition, some of the data and steps illustrated in the example operational flow 300 may not be required and may be omitted in some implementations. Finally, while this flow of operations involves a number of individual steps, it should be appreciated that in some circumstances some of these operations may be combined and executed simultaneously.

도 2의 시스템(200)은, 문제에 대한 가능한 솔루션 또는 솔루션들을 위해 검색 공간을 조사하는, 예시적인 동작 흐름(100)에 대한 하나의 사용을 도시한다. 시스템(200)의 일 구현예는 조정 또는 제어 프로세스(260)를 이용하여 동작 흐름(100)을 실행하는 검색 프로세스들(210, 212, 214)의 전체 동작을 유도하고 있지 만, 조정 또는 제어 프로세스(260)와 같이 단일 분할 에이전트를 이용하는 것이 모든 구현예에서 필요하진 않는다.The system 200 of FIG. 2 illustrates one use for the example operational flow 100, examining the search space for possible solutions or solutions to problems. One implementation of the system 200 uses the coordination or control process 260 to direct the overall operation of the retrieval processes 210, 212, 214 executing the action flow 100, but the coordination or control process Using a single splitting agent, such as 260, is not necessary in all implementations.

다른 구현예들에서는, 소정의 다른 메소드를 이용하여 검색 프로세스들(210, 212, 214)의 유도를 수행할 수 있다. 예를 들어, 검색 프로세스들에 의해 실행되는 동작 흐름들은 조사할 종료 출력 데이터 및 새로운 상태들을 스스로 식별할 수 있고, 어떠한 집중된 분할 로직도 필요하지 않을 수 있다. 예를 들어, 각 검색 프로세스(210, 212, 214)는 동작 흐름(300)의 검색 프로세스처럼 동작 흐름을 실행할 수 있지만, 이러한 예로 한정되지는 않는다. 이것은 특히 하나 이상의 조정 또는 제어 요소(270, 272, 274)를 이용함으로써 발생할 수 있고, 또는 소정의 다른 요소를 통해 발생할 수 있으며, 또는 검색 프로세스 자체 내에서 발생할 수 있다. 이러한 구현예에서 또는 다른 구현예들에서, 교환/분할 동작(330)은, 조정 또는 제어 프로세스(260)에 의해 제공되는 동일한 기능성의 일부 또는 전부를 달성할 수 있다. 하나 이상의 구현예에서, 다수의 검색 프로세스들 각각은 동작 흐름(300)을 동시에 실행할 수 있고, 데이터를 교환할 수 있으며 또는 조사를 추가로 지시하도록 통신할 수 있다.In other implementations, some other method may be used to perform derivation of search processes 210, 212, 214. For example, the operational flows executed by the retrieval processes may self identify the exit output data and new states to examine and may not require any centralized partitioning logic. For example, each retrieval process 210, 212, 214 can execute an operational flow like the retrieval process of the operational flow 300, but is not limited to this example. This may occur in particular by using one or more adjustment or control elements 270, 272, 274, or may occur through some other element, or may occur within the search process itself. In such or other implementations, the exchange / split operation 330 can achieve some or all of the same functionality provided by the coordination or control process 260. In one or more implementations, each of the plurality of retrieval processes may execute operation flow 300 concurrently, exchange data or communicate to further direct the survey.

도시한 바와 같이, 동작(310)의 일 구현예는 검색 공간을 조사한다. 조사는, 전술한 도 1의 동작 흐름(100)의 그것과 같은 동작 흐름을 이용하여, 또는 소정의 다른 동작 흐름을 이용하여 달성될 수 있다. 동작 흐름(100)을 이용하는 예에서, 동작 흐름(300)이 동작(310)으로부터 진행된 후, 동작 흐름(100)에 의해 이용되거나 발생되는 데이터 중 임의의 것은, 동작 흐름(300)에서의 후속 동작들에 대하여 이용가능하다. 이 데이터는, 검색 동안 조사된 상태들 및 초기 상태를 비롯한 상태 데이터(110), 및 결과 데이터(112)를 포함하지만, 이러한 예로 한정되지는 않는다.As shown, one implementation of operation 310 examines the search space. The investigation may be accomplished using an operational flow such as that of the operational flow 100 of FIG. 1 described above, or using some other operational flow. In the example using the operational flow 100, after the operational flow 300 proceeds from the operation 310, any of the data used or generated by the operational flow 100 is a subsequent operation in the operational flow 300. Are available for these. This data includes, but is not limited to, state data 110, and result data 112, including states and initial states that were examined during a search.

동작(320)의 일 구현예에서, 동작 흐름(300)은 자신의 이 인스턴스가 실행을 중단해야 하는지 여부를 결정한다. 동작(320)에서 동작 흐름(300)의 이 인스턴스가 중단되어야 한다고 결정되면, 동작 흐름(300)은 종료된다("예" 분기, 동작(320)). 동작 흐름(300)이 중단되어선 안된다고 결정되면, 동작 흐름은 후술하는 바와 같이 동작(330)으로 진행된다("아니오" 분기, 동작(320)).In one implementation of operation 320, the operation flow 300 determines whether this instance of itself should stop execution. If it is determined in operation 320 that this instance of the operation flow 300 should be stopped, the operation flow 300 ends (“Yes” branch, operation 320). If it is determined that operation flow 300 should not be interrupted, operation flow proceeds to operation 330 ("No" branch, operation 320), as described below.

동작 흐름이 중단되어야 하는지 여부를 결정하는 동작(320)에 의해 이용되는 기준은 매우 다양할 수 있다. 예를 들어, 일 구현예에서, 동작(320)은 동작(310)의 실행에 의해 리턴되는 결과들 중 하나 이상이 허용가능한 범위 내에 속하는 경우 실행 중단을 결정할 수 있으나, 이러한 예로 한정되지는 않는다. 동일한 또는 다른 구현예에서, 동작(320)은 동작 흐름(300)이 소정 횟수의 세트 반복 동안 또는 소정량의 시간동안 실행된 경우 동작 흐름의 실행을 중단할 수 있지만, 마찬가지로, 이러한 예로 한정되지는 않는다. 또다른 구현예 또는 구현예들에서, 동작(320)은 소정의 다른 동작 흐름이 적합한 솔루션을 발견한 경우 동작 흐름(300)의 실행을 중단할 수 있다.The criteria used by operation 320 to determine whether the operational flow should be interrupted can vary widely. For example, in one implementation, operation 320 may determine execution halt if one or more of the results returned by execution of operation 310 fall within an acceptable range, but is not limited to this example. In the same or other implementations, operation 320 may cease execution of the operation flow when operation flow 300 has been executed for a predetermined number of set iterations or for a predetermined amount of time, but likewise is not limited to this example. Do not. In another implementation or implementations, operation 320 may stop execution of operation flow 300 if any other operation flow finds a suitable solution.

일부 구현예들에서, 동작(320)은 동작 흐름(300)의 특정한 인스턴스만 그 실행을 중단할 수 있다. 동일하거나 다른 구현예에서, 동작(320)은 동작 흐름(300)의 동시에 실행되고 있는 하나 이상의 다른 인스턴스의 실행을 직접적으로 또는 간 접적으로 중단할 수도 있다. 예를 들어, 일부 구현예들에서, 동작 흐름(300)의 이 특정한 인스턴스가 문제점에 대한 허용가능한 솔루션을 식별하게 되면, 동작(320)은 실행을 중단할 수 있고 동작 흐름(300)의 다른 모든 인스턴스도 실행을 중단해야 한다는 것을 통신할 수도 있다.In some implementations, operation 320 can stop execution of only a particular instance of operation flow 300. In the same or other implementations, operation 320 may directly or indirectly suspend execution of one or more other instances of concurrently executing operation flow 300. For example, in some implementations, if this particular instance of operation flow 300 identifies an acceptable solution to the problem, operation 320 may cease execution and all other operations of operation flow 300 The instance may also communicate that it should stop running.

동작 흐름(300)이 동작(320)에 의해 중단되지 않으면, 동작 흐름은 동작(330)으로 진행하게 된다. 동작(330)의 하나 이상의 구현예에서, 데이터는 동작 흐름(300)의 동시에 실행중인 다른 인스턴스들과 교환될 수 있고, 검색 공간을 분할하거나 더 조사하는 방식이 결정되어, 동작 흐름(300)의 인스턴스들 중 하나 이상 간에 통신될 수 있다.If operation flow 300 is not interrupted by operation 320, operation flow proceeds to operation 330. In one or more implementations of operation 330, data may be exchanged with other concurrently running instances of operation flow 300, and a manner of dividing or further examining the search space may be determined such that It may be communicated between one or more of the instances.

교환되는 데이터 및 검색 공간이 분할되는 방식은 매우 다양할 수 있다. 하나 이상의 구현예에서, 예를 들어, 동작 흐름(300)의 특정한 인스턴스는 다음 반복에 대한 특정한 분할 기준을 식별할 수 있지만, 이러한 예로 한정되지는 않는다. 이후, 동작 흐름(300)의 이러한 인스턴스는, 동작 흐름(300)의 다른 인스턴스들에 대하여, 선택된 분할 기준의 모두 또는 일부를 통신할 수 있고, 검색할 다른 분할들에 대한 명령어들도 통신할 수 있다. 이후, 동작 흐름(300)의 다른 인스턴스들은 동작 흐름의 제1 인스턴스에 의해 제공되는 명령어들에 따라 검색을 행할 수 있다.The manner in which the data exchanged and the search space are partitioned can vary widely. In one or more implementations, for example, a particular instance of the operational flow 300 may identify a particular partitioning criterion for the next iteration, but is not limited to this example. This instance of the operational flow 300 may then communicate, to other instances of the operational flow 300, all or part of the selected partitioning criteria and also communicate instructions for other partitions to retrieve. have. Thereafter, other instances of the operational flow 300 may perform a search according to the instructions provided by the first instance of the operational flow.

동작(300)의 하나 이상의 구현예에서, 동작 흐름(300)의 각 인스턴스는 분할 기준에 대한 바람직한 값들을 식별할 수 있고, 이후에 이 값들을 동작 흐름(300)을 실행하는 다른 인스턴스들에게 통신한다. 이후, 동작(330)의 각 인스턴스 내의 일 부 로직은, 초기에 선택된 특정한 분할 기준을 동작 흐름의 다른 인스턴스들에 의해 선택된 특정한 기준에 비교하는 방식을 평가할 수 있다. 일부 구현예들에서, 동작(330)은 새로운 분할 기준을 식별한 후 이 새로운 분할 기준을 동작(330)을 실행하는 다른 인스턴스들에게 통신할 수 있다. 일부 구현들에서, 후보 분할 기준을 선택하고, 동작 흐름(300)의 다른 인스턴스들과 통신하며, 선택한 분할 기준을 갱신하는 이러한 프로세스는, 예를 들어, 선택된 분할 기준들이 동일해질 때까지 또는 다른 관점에서 볼 때 적합할 때까지 임의의 횟수만큼 실행될 수 있다.In one or more implementations of operation 300, each instance of operation flow 300 may identify desirable values for the segmentation criteria, and then communicate these values to other instances executing operation flow 300. do. Thereafter, some logic in each instance of operation 330 may evaluate how to compare the initially selected particular segmentation criteria to the particular criteria selected by other instances of the operational flow. In some implementations, operation 330 can identify a new partition criterion and then communicate this new partition criterion to other instances executing operation 330. In some implementations, this process of selecting candidate splitting criteria, communicating with other instances of operation flow 300, and updating the selected splitting criteria can be, for example, until the selected splitting criteria are the same or in a different perspective. Can be run any number of times until it is appropriate.

도 1 및 도 2를 참조하여 설명한 분할 기준과 마찬가지로, 일부 구현예들에서, 동작 흐름(300)의 한 인스턴스에 의해 이용되는 분할 기준은, 동작 흐름(300)의 다른 인스턴스들에 의해 이용되는 분할 기준과 동일할 수 있다. 동일하거나 다른 구현예들에서, 동작 흐름(300)의 한 인스턴스에 의해 이용되는 분할 기준은, 동작 흐름(300)의 또다른 인스턴스에 의해 이용되는 분할 기준과 다를 수 있다. 게다가, 분할 기준은 서로 다른 기준 상태들, 서로 다른 거리 제약 조건, 또는 이들 둘 다로 인해 다를 수 있다. 마찬가지로, 동작 흐름(300)의 한 인스턴스에 의해 이용되는 임의의 다른 데이터는, 동작 흐름(300)의 다른 인스턴스들에 의해 이용되는 다른 데이터와 동일하거나 다를 수 있다.Similar to the splitting criteria described with reference to FIGS. 1 and 2, in some implementations, the splitting criteria used by one instance of the operational flow 300 is the splitting criteria used by other instances of the operational flow 300. It may be the same as the standard. In the same or other implementations, the segmentation criteria used by one instance of the operational flow 300 may be different from the segmentation criteria used by another instance of the operational flow 300. In addition, the splitting criteria may be different due to different reference conditions, different distance constraints, or both. Likewise, any other data used by one instance of operation flow 300 may be the same or different from other data used by other instances of operation flow 300.

동작(300)이 동작 흐름의 다른 반복을 위해 이용될 분할 기준을 식별하는 방식은 매우 다양할 수 있으며 전술한 예들에 의해 어떠한 방식으로 한정되지 않는다는 점을 이해하길 바란다.It is to be understood that the manner in which operation 300 identifies the segmentation criteria to be used for other iterations of the operational flow can vary widely and is not limited in any way by the examples described above.

도 4 내지 도 9에서는, 다수의 검색 프로세스를 갖는 다양한 분할 기준을 이 용함으로써 얻을 수 있는 검색 토폴로지를 조사한다. 전술한 바와 같이, 분할 기준은 기준 상태 및 거리 제약 조건을 포함할 수 있다. 검색 토폴로지는, 다수의 검색 프로세스를 위해, 기준 상태 및 거리 제약 조건에 대하여 동일하거나 서로 다른 값들을 식별함으로써 생성될 수 있다. 일부 경우에서는, 도 4 내지 도 9에 대하여 예시된 토폴로지들이 비교적 정적이라고 고려될 수 있지만, 이들은 결합될 수도 있어서, 검색 토폴로지가 시간에 따라 서서히 전개되거나 전체 검색을 통해 변경될 수 있다.4 to 9, the search topology obtained by using various partitioning criteria having a plurality of search processes is examined. As discussed above, the segmentation criteria may include reference conditions and distance constraints. The search topology may be generated by identifying the same or different values for reference conditions and distance constraints for multiple search processes. In some cases, the topologies illustrated with respect to FIGS. 4-9 may be considered relatively static, but they may be combined such that the search topology may evolve over time or change throughout the entire search.

도 4 내지 도 9의 각각에 있어서, 예시된 토폴로지가 구현될 수 있는 방식의 적합한 구현예는, 도 1 내지 도 3에 대하여 전술한 시스템 및 동작 흐름이다. 예를 들어, 2개의 검색 공간을 예시하는 토폴로지는, 도 2를 참조하여 전술한, 검색 프로세스(210) 및 검색 프로세스(212)를 활용할 수 있다. 임의의 다른 구현예 또는 그 변형예도 이용가능하다. 도 1을 참조하여 설명한 동작 흐름(100)의 일 구현예에서, 동작(160)은 후술하는 분할 기준을 이용하여 자신이 식별하는 새로운 상태들을 제약할 수 있다.In each of FIGS. 4-9, a suitable implementation of the manner in which the illustrated topology can be implemented is the system and operational flow described above with respect to FIGS. For example, a topology illustrating two search spaces may utilize the search process 210 and the search process 212 described above with reference to FIG. 2. Any other embodiment or variations thereof is also available. In one implementation of the operational flow 100 described with reference to FIG. 1, operation 160 may constrain the new states that it identifies using the segmentation criteria described below.

도 4 내지 도 9를 다른 도면들을 참조하여 설명할 수 있지만, 도 4 내지 도 9의 예시는 임의의 특정 도면 또는 도면들의 시스템 또는 다른 내용에 관련된 것으로 한정하려는 것이 아님을 이해하길 바란다. 또한, 도 4 내지 도 9에서는 설명의 편의상 예시적인 데이터 세트의 일반적인 표현을 예시하기 때문에, 예시된 형상의 본질이나 구성으로부터 또는 데이터 값들의 식별로부터 추가로 추론할 것은 없다. 본 명세서에서 설명하는 예시는 이것은 2개의 변수를 이용하여 모델링된 문제 공간 에 대한 적합한 표현일 수 있는 2차원 공간을 이용하여 나타낼 수 있지만, 문제 공간 및 검색 조사 방법들은 임의의 개수의 변수 또는 임의의 다른 표현을 이용하여 표현될 수 있음을 이해하길 바란다. 예를 들어, 문제 공간 및 검색 조사의 방법들은, 상태를 나타내는 데 이용되는 변수들의 데카르트 곱에 의해 생성되는 하이퍼플랜을 이용하여 부분적으로 또는 전체적으로 표현될 수 있다.Although FIGS. 4-9 may be described with reference to other figures, it is to be understood that the illustrations of FIGS. 4-9 are not intended to be limited to anything related to the system or other content of any particular figure or figures. In addition, since FIGS. 4-9 illustrate a general representation of an exemplary data set for convenience of description, there is no further inference from the nature or configuration of the illustrated shape or from the identification of data values. The example described herein may be represented using two-dimensional space, which may be a suitable representation of a problem space modeled using two variables, but the problem space and search investigation methods may be any number of variables or any Please understand that it can be expressed using other expressions. For example, the methods of problem space and search investigation can be expressed in part or in whole using a hyperplan generated by a Cartesian product of variables used to represent states.

이제 도 4를 참조해 보면, 검색 공간을 2개의 검색 공간들로 나눔으로써 많은 가능한 검색 토폴로지들 중 하나를 예시하는 시스템(400)의 예시적이며 일반적인 표현이 도시되어 있다. 시스템(400)에서는, 전체 검색 공간(410), 제1 검색 공간(420), 제2 검색 공간(430), 기준 상태(424), 거리 제약 조건(426)이 도시되어 있다. 도 5 내지 도 9를 참조하여 후술하는 후속 검색 토폴로지들의 각각은 일부 유사한 요소들을 포함할 수 있다는 점과 각 예시를 위해 이러한 유사한 요소들의 설명을 반복하지 않을 수 있다는 점에 주목하길 바란다.Referring now to FIG. 4, an illustrative and general representation of a system 400 illustrating one of many possible search topologies by dividing a search space into two search spaces is shown. In system 400, an entire search space 410, a first search space 420, a second search space 430, a reference state 424, and a distance constraint 426 are shown. Note that each of the subsequent search topologies described below with reference to FIGS. 5-9 may include some similar elements and that the description of these similar elements may not be repeated for each example.

도 4를 참조하여 예시한 검색 토폴로지는, 솔루션을 위해 검색될 수 있는 전체 문제 영역을 나타내는 전체 검색 공간(410)을, 제1 검색 프로세스에 의해 처리될 검색 공간 및 제2 검색 프로세스에 의해 처리될 검색 공간으로 나누는 서로 다른 분할 기준들을 이용하여 발생할 수 있다. 예시적인 시스템(400)에서, 제1 검색 공간 및 제2 검색 공간 둘 다를 위한 기준 상태는 동일할 수 있으며, 기준 상태(424)에 의해 표현될 수 있다. 제1 검색 프로세스를 위한 거리 제약 조건은 "d < D"일 수 있고, 거리 제약 조건(426)에 의해 표현될 수 있다. 본 문맥에서, "d < D"는, 제1 검색 프로세스에 의해 검색되는 상태들을 위한 거리 측정값이 기준 상태 로부터(424)로부터 소정값(D)보다 작아야 한다는 것을 가리킬 수 있다. 반면에, 제2 검색 프로세스는 "d >= D"라는 거리 제약 조건을 가질 수 있으며, 이것은, 이 예에서, 제2 검색 프로세스에 의해 고려되는 상태들을, 동일한 기준 상태(424)에 대하여 다시 판정된 동일한 소정값(D) 이상의 거리 측정값을 갖는 상태들로 제약할 수 있다.The search topology exemplified with reference to FIG. 4 may include the entire search space 410 representing the entire problem area that can be searched for a solution, the search space to be processed by the first search process and the second search process. This can occur using different partitioning criteria divided into search spaces. In the example system 400, the reference state for both the first search space and the second search space may be the same and may be represented by the reference state 424. The distance constraint for the first search process may be "d <D" and may be represented by distance constraint 426. In this context, “d <D” may indicate that the distance measurement for the states retrieved by the first search process should be less than the predetermined value D from 424 from the reference state. On the other hand, the second search process may have a distance constraint of "d> = D", which, in this example, determines the states considered by the second search process against the same reference state 424 again. Can be constrained to states having a distance measurement equal to or greater than the same predetermined value D.

분할 기준의 이러한 선택들에 따라 제1 검색 공간(420)이 제1 검색 프로세스에 의해 검색될 수 있고 제2 검색 공간(430)이 제2 검색 프로세스에 의해 검색될 수 있다.According to these selections of partitioning criteria, the first search space 420 can be searched by the first search process and the second search space 430 can be searched by the second search process.

도 4에 대하여 도시한 것과 같은 검색 토폴로지의 많은 가능한 이용들이 존재하지만, 한 가지 가능한 이용은, 제1 검색 공간(420)을 이용하여 전체 검색 공간(410)의 특정 영역을 상세히 검색하는 동안 제2 검색 공간(430)을 이용하여 전체 검색 공간(410)의 나머지를 덜 상세히 검색하는 것일 수 있다.There are many possible uses of the search topology as shown with respect to FIG. 4, but one possible use is the second while using the first search space 420 to search for a specific area of the entire search space 410 in detail. The search space 430 may be used to search the rest of the entire search space 410 in less detail.

이제 도 5를 참조해 보면, 새로운 분할 기준을 이용함으로써 검색이 시간에 따라 변경될 수 있는 방식을 예시하는 시스템(500)의 예시적인 표현이 도시되어 있다. 이 특정한 예는 도 4에 대하여 전술한 검색 토폴로지로부터 검색 토폴리지의 하나의 가능한 변경을 도시한다. 시스템(500)에는, 전체 검색 공간(410), 제1 검색 공간(520), 제2 검색 공간(530), (제1 검색 공간(420)과 동일한) 구 제1 검색 공간(420), 및 기준 상태(524)가 도시되어 있다.Referring now to FIG. 5, an exemplary representation of a system 500 is illustrated that illustrates how a search can be changed over time by using new segmentation criteria. This particular example illustrates one possible modification of the search topology from the search topology described above with respect to FIG. 4. The system 500 includes an entire search space 410, a first search space 520, a second search space 530, an old first search space 420 (same as the first search space 420), and Reference state 524 is shown.

도 5에 대하여 예시한 검색 토폴로지는, 이 경우 도 4에 대하여 예시한 검색 토폴로지로부터 시간에 따라 2개의 검색 프로세스들을 이용하여 검색을 지시하고 변경할 수 있는 하나의 가능성있는 방식을 도시할 수 있다. 예시적인 시스템(400)과 유사하게, 예시적인 시스템(500)에서는, 제1 검색 프로세스 및 제2 검색 프로세스 둘 다를 위한 기준 상태가 동일하고, 즉, 기준 상태(524)이며, 한편 거리 제약 조건들은 서로 다르다. 즉, "d < D" 및 "d >= D"이다. 그러나, 기준 상태(524)가 시스템(400)에서 기준 상태(424)로부터 변경되었기 때문에, 제1 및 제2 검색 프로세스들은 이제 전체 검색 공간(410)의 서로 다른 부분들을 검색한다.The search topology illustrated with respect to FIG. 5 may in this case illustrate one possible way of instructing and changing the search using two search processes over time from the search topology illustrated with respect to FIG. 4. Similar to the example system 400, in the example system 500, the reference state for both the first search process and the second search process is the same, that is, the reference state 524, while the distance constraints are Are different. That is, "d <D" and "d> = D". However, because the reference state 524 has changed from the reference state 424 in the system 400, the first and second search processes now search for different portions of the overall search space 410.

아마도 도 5에 대하여 예시한 방식과 유사한 방식으로 또는 일부 다른 방식으로 분할 기준을 주기적으로 변경함으로써, 전체 검색이 적합한 솔루션들을 점점 더 많이 찾도록 진행될 수 있다. 예를 들어, 하나의 검색 프로세스가 상세 검색을 수행하는 한편 다른 하나의 프로세스가 보다 일반적인 검색을 수행하는 도 4 및 도 5에 대하여 예시한 일 구현예에서, 검색 프로세스들은 가끔씩 자신들의 가장 적합한 솔루션들을 교환 및 비교할 수 있지만, 이러한 예로 한정되지는 않는다. 일 구현예에서, 이것은 일반 검색에 의해 위치가 알려져 있는 가능한 보다 적합한 검색 공간에 대하여 보다 상세한 검색을 수행할 수 있다.Perhaps by periodically changing the partitioning criteria in a manner similar to that illustrated for FIG. 5 or in some other manner, the entire search may proceed to find more and more suitable solutions. For example, in one implementation illustrated with respect to FIGS. 4 and 5 where one search process performs a refinement while the other performs a more general search, the search processes sometimes provide their most suitable solutions. Exchange and comparison is possible, but is not limited to these examples. In one implementation, this may perform a more detailed search for possible more suitable search spaces whose location is known by a general search.

일 구현예에서, 분할 기준의 변경은, 도 2에 대하여 전술한 조정 또는 제어 프로세스(260) 또는 조정 또는 제어 요소들(270, 272, 274), 및/또는 도 3에 대하여 설명한 "분할/교환" 동작(330)의 실행 결과에 관련될 수 있다. 다른 구현예들에서, 분할 기준의 변경은 소정의 다른 시스템 요소 또는 동작에 관련될 수 있다.In one implementation, the change in partitioning criteria may be performed by the adjustment or control process 260 or adjustment or control elements 270, 272, 274 described above with respect to FIG. "May be related to the execution result of operation 330. In other implementations, the change in partitioning criteria can be related to any other system element or operation.

이제 도 6을 참조해 보면, 검색 공간을 3개의 검색 공간들로 나누는 많은 가능한 분리 중 하나를 예시하는 시스템(600)의 예시적이고 일반적인 표현이 도시되 어 있다. 시스템(600)에는, 전체 검색 공간(610), 제1 검색 공간(620), 제2 검색 공간(630), 제3 검색 공간(640), 및 기준 상태(624)가 도시되어 있다.Referring now to FIG. 6, an illustrative, general representation of a system 600 is illustrated that illustrates one of the many possible separations that divide a search space into three search spaces. In system 600, an entire search space 610, a first search space 620, a second search space 630, a third search space 640, and a reference state 624 are shown.

도 6에 대하여 예시한 검색 토폴로지는, 서로 다른 분할 기준들을 이용하여 전체 검색 공간(610)을 각각 하나의 검색 프로세스에 의해 처리되는 3개의 검색 공간으로 나눔으로써, 발생할 수 있다. 제1 검색 프로세스는 제1 검색 공간(620)을 검색할 수 있고, 제2 검색 프로세스는 제2 검색 공간(630)을 검색할 수 있으며, 제3 검색 프로세스는 제3 검색 공간(640)을 검색할 수 있다.The search topology illustrated with respect to FIG. 6 may occur by dividing the entire search space 610 into three search spaces, each processed by one search process, using different partitioning criteria. The first search process may search the first search space 620, the second search process may search the second search space 630, and the third search process may search the third search space 640. can do.

예시적인 시스템(600)에서, 각 검색 프로세스를 위한 기준 상태는 동일할 수 있으며, 즉, 기준 상태(624)일 수 있다. 제1 검색 프로세스를 위한 거리 제약 조건은 "d < D1"일 수 있고, 제2 검색 프로세스를 위한 거리 제약 조건은 "D2 > d >= D1"일 수 있으며, 제3 검색 프로세스를 위한 거리 제약 조건은 "d >= D3"일 수 있다. 제1 검색 공간(620) 및 제3 검색 공간(640)을 위한 거리 제약 조건들(각각, 거리 제약 조건(642), 거리 제약 조건(646))은, 이들이 검색한 상태들에 대한 거리 측정값이 D1(제1 검색 공간(620)의 경우)처럼 소정값보다 작거나 D3(제2 검색 공간(640)의 경우)처럼 소정값 이상인 검색 공간을 정의할 수 있다는 점에서, 도 4 및 도 5에 대하여 전술한 거리 제약 조건들과 유사하다. 제2 검색 공간(630)을 위한 분할 기준은, 2개의 특정값을 포함하는 거리 제약 조건(644)인, "D2 > d >= D1"을 이용하며, 이에 따라 어떤 면에서는 제1 검색 공간(620)과 제3 검색 공간(640)의 거리 제약 조건들 사이에 있는 상태들을 검색한다.In the example system 600, the reference state for each search process may be the same, that is, the reference state 624. The distance constraint for the first search process may be "d <D1", the distance constraint for the second search process may be "D2> d> = D1", and the distance constraint for the third search process May be "d> = D3". The distance constraints (distance constraint 642, distance constraint 646, respectively) for the first search space 620 and the third search space 640 are distance measures for the states they searched for. 4 and 5 in that it is possible to define a search space that is smaller than a predetermined value, such as D1 (for the first search space 620) or more than a predetermined value, such as D3 (for the second search space 640). Similar to the distance constraints described above for. The dividing criterion for the second search space 630 uses " D2 > d > = D1 ", which is a distance constraint 644 that includes two specific values, thus in some respects the first search space ( Search for states that are between the distance constraints of 620 and third search space 640.

D2 및 D3를 선택하는 방식에 따라, 검색 공간들 사이에 중첩 영역을 신중하 게 생성할 수 있다. 예를 들어, 일부의 경우에 D2 > D3이라면, 632로 예시한 중첩 영역이 생성될 수 있다. 반면에, D2 = D3이면, 어떠한 중첩 영역도 생성되지 않는다. 본 명세서에서 설명하는 분할 메카니즘에 의해 이용가능한 유연성을 도시하고자 발생가능한 중첩(632)을 예시한다.Depending on how D2 and D3 are selected, it is possible to carefully create overlapping regions between search spaces. For example, in some cases if D2> D3, an overlap region illustrated at 632 may be generated. On the other hand, if D2 = D3, no overlapping region is generated. Illustrate overlap 632 that may occur to illustrate the flexibility available by the segmentation mechanism described herein.

이제 도 7을 참조해 보면, 기준 상태들이 동일하지 않고 검색 공간들이 전체 검색 공간 모두를 포함하지 않는 2개의 검색 공간으로 분리되는 것을 예시하는 시스템(700)의 예시적이며 일반적인 표현이 도시되어 있다. 시스템(700)에는, 전체 검색 공간(710), 제1 검색 공간(720), 제2 검색 공간(730), 제1 공간 기준 상태(724), 제2 공간 기준 상태(734)가 도시되어 있다.Referring now to FIG. 7, an exemplary and general representation of a system 700 is illustrated that illustrates that reference states are not equal and search spaces are divided into two search spaces that do not include all of the search spaces. In system 700, an entire search space 710, a first search space 720, a second search space 730, a first spatial reference state 724, and a second spatial reference state 734 are shown. .

도 7에 대하여 예시한 검색 토폴로지는, 서로 다른 분할 기준들을 이용하여 전체 검색 공간(710)을 각 검색 공간마다 하나의 검색 프로세스에 의해 처리되는 제1 검색 공간(720) 및 제2 검색 공간(730)으로 나눔으로써, 발생할 수 있다. 전술한 예들 중 일부와는 달리, 시스템(700)은 분할 기준의 일부인 기준 상태들이 동일하지 않은 검색 토폴로지를 예시한다. 이 예에서, 제1 검색 공간을 위한 기준 상태는 제1 공간 기준 상태(724)에 의해 예시되어 있는 한편 제2 검색 공간을 위한 기준 상태는 제2 공간 기준 상태(734)에 의해 예시되어 있다. 또한, 각 분할 기준의 일부인 거리 제약 조건들도, 자신들에 관한 기준 상태 및 거리 제약 조건 자체 둘 다에 있어서 서로 다르다. 제1 검색 공간(720)을 위한 거리 제약 조건(740)은 "d < D1"인 한편, 제2 검색 공간(730)을 위한 거리 제약 조건(742)은 "d < D2"이다. 그 결과 제2 검색 공간(730)을 예시한 크기는 제1 검색 공간(720)의 크기보다 넓으며, 이것은, 일부 예들에서, 요구되는 것은 아니지만 D2가 D1보다 크다는 것을 의미할 수 있다.The search topology illustrated with respect to FIG. 7 includes a first search space 720 and a second search space 730 where the entire search space 710 is processed by one search process for each search space using different partitioning criteria. By dividing by). Unlike some of the examples described above, system 700 illustrates a search topology in which the reference states that are part of the partitioning criteria are not identical. In this example, the reference state for the first search space is illustrated by the first spatial reference state 724 while the reference state for the second search space is illustrated by the second spatial reference state 734. In addition, the distance constraints that are part of each division criterion are also different in both the reference state for them and the distance constraints themselves. The distance constraint 740 for the first search space 720 is "d <D1" while the distance constraint 742 for the second search space 730 is "d <D2". As a result, the size illustrating the second search space 730 is wider than the size of the first search space 720, which may mean that in some examples, D2 is greater than D1, although not required.

마지막으로, 시스템(700)은 또한 전체 검색 공간(710)의 모두가 검색되는 것이 아님을 예시하고 있다. 예시적인 시스템(700)은 2개의 검색 프로세스만을 갖고 있으며, 이들 각각은 자신의 고유한 기준 상태 주위의 상세 영역을 검색한다. 이러한 상세 영역들의 외부에 해당하는, 전체 검색 공간(710)의 일부는 검색되지 않는다. 일부 경우에선 유용할 수 있지만, 전체 검색 공간을 적어도 하나의 검색 공간에 의해 커버하는 것은 요구 조건이 아니다. 또한, 일부 구현예들에서는, 반복 기준들 중 하나 이상이 변경될 수 있는 추가 반복이, 현재 검색되고 있지 않는 검색 공간의 일부 또는 전체를 포함할 수 있다.Finally, the system 700 also illustrates that not all of the entire search space 710 is searched. The example system 700 has only two search processes, each of which searches for a detail area around its own reference state. Some of the entire search space 710, which falls outside of these detailed areas, is not searched. While useful in some cases, covering the entire search space by at least one search space is not a requirement. Further, in some implementations, additional iterations, in which one or more of the iteration criteria can be changed, can include some or all of the search space that is not currently being searched.

이제 도 8을 참조해 보면, 기준 상태들이 동일하지 않으며 최종 검색 공간들이 중첩되는 2개의 검색 공간으로의 분리를 예시하는 시스템(800)의 예시적이고 일반적인 표현이 도시되어 있다. 시스템(800)에는, 전체 검색 공간(810), 제1 검색 공간(820), 제2 검색 공간(830), 제1 공간 기준 상태(824), 제2 공간 기준 상태(834), 및 공유된 검색 공간(850)이 도시되어 있다.Referring now to FIG. 8, an illustrative and general representation of a system 800 is illustrated illustrating separation into two search spaces where the reference states are not the same and the final search spaces overlap. System 800 includes an entire search space 810, a first search space 820, a second search space 830, a first spatial reference state 824, a second spatial reference state 834, and a shared Search space 850 is shown.

전술한 예들 중 일부처럼, 도 6에 대하여 예시한 검색 토폴로지는, 전체 검색 공간(810)을 각 검색 공간마다 하나의 검색 프로세스에 의해 처리되는 제1 검색 공간(820), 제2 검색 공간(830)으로 나누는 서로 다른 분할 기준들로부터 발생할 수 있다. 도시한 바와 같이, 2개 검색 공간을 위한 기준 상태들은 서로 다르며, 즉, 제1 검색 공간은 제1 공간 검색 상태(824)를 이용하는 반면 제2 검색 공간은 제2 공간 검색 상태(834)를 이용한다.As with some of the examples described above, the search topology illustrated with respect to FIG. 6 includes a first search space 820 and a second search space 830 where the entire search space 810 is processed by one search process for each search space. Can be derived from different partitioning criteria. As shown, the reference states for the two search spaces are different, that is, the first search space uses the first spatial search state 824 while the second search space uses the second spatial search state 834. .

이 예시적인 시스템에서 분할 기준들을 위한 특정한 선택들에 따라, 전체 검색 공간(810)의 일부가 모든 검색 프로세스들에 의해 검색된다. 이렇게 중첩되는 일부는 공유된 검색 공간(850)으로 예시되어 있다. 본 예에서 알 수 있듯이, 검색 프로세스들이 동일하지 않은 검색 공간들을 항상 조사할 필요는 없다.In accordance with certain choices for partitioning criteria in this example system, a portion of the entire search space 810 is searched by all search processes. Some of these overlaps are illustrated by shared search space 850. As can be seen in this example, the search processes do not always need to look into unequal search spaces.

이제 도 9를 참조해 보면, 기준 상태들 및 거리 제약 조건들을 포함하는 분할 기준을 이용하여 제3 검색 공간이 정의되는 3개의 검색 공간으로의 분리를 예시하는 시스템(900)의 예시적이며 일반적인 표현이 도시되어 있다. 시스템(900)에는, 전체 검색 공간(910), 제2 검색 공간(920), 제2 검색 공간(930), 제3 검색 공간(940), 제1 공간 기준 상태(924), 제2 공간 기준 상태(934)가 도시되어 있다.Referring now to FIG. 9, an exemplary and general representation of a system 900 that illustrates the separation into three search spaces in which a third search space is defined using partitioning criteria including reference states and distance constraints. Is shown. The system 900 includes an overall search space 910, a second search space 920, a second search space 930, a third search space 940, a first space reference state 924, and a second space reference. State 934 is shown.

제1 검색 공간(920) 및 제2 검색 공간(930)은, 예를 들어 도 7을 참조하여 전술한 분할 기준과 유사한 분할 기준을 이용하여 정의된다. 이 공간들은, 이 예에서 각각 D1 및 D2인 세트 값에 의해 특정된 거리 측정값 내의 상태들을 포함하는 검색 공간을 정의하는 거리 제약 조건들 뿐만 아니라, 서로 다른 기준 상태들, 제1 공간 기준 상태(924), 제2 공간 기준 상태(934)를 각각 이용한다.The first search space 920 and the second search space 930 are defined using a split criterion similar to the split criterion described above with reference to, for example, FIG. 7. These spaces, in this example, are different reference states, the first spatial reference state, as well as distance constraints that define a search space that includes states in the distance measurement specified by the set value, respectively D1 and D2. 924 and the second spatial reference state 934 are used, respectively.

반면에, 제3 검색 공간(940)은, 정의된 일부 다른 검색 공간들과는 다른 방식으로 정의된다. 제3 검색 공간(940)은, 2개의 기준 상태 및 2개의 거리 제약 조건을 포함하는 분할 기준을 이용하여 정의된다. 이 예에서, 제3 검색 공간(940)은, 제1 공간 기준 상태(924)로부터 판정된 "d1 >= D1"라는 거리 제약 조건을 이용하여, 그리고, 제2 공간 기준 상태(934)로부터 판정된 "d2 >= D2"라는 거리 제약 조건을 이용하여 정의된다. 이 예에서, 이 분할 기준은, 제3 검색 프로세스에 의해 고려되는 상태들을, 제1 검색 공간(920)의 일부 또는 제2 검색 공간(930)의 일부가 아닌 상태들만으로 제약한다.On the other hand, the third search space 940 is defined in a different way from some other search spaces defined. The third search space 940 is defined using a split criterion that includes two reference states and two distance constraints. In this example, the third search space 940 is determined using the distance constraint "d1> = D1" determined from the first space reference state 924 and from the second space reference state 934. Defined using a distance constraint of "d2> = D2". In this example, this partitioning criterion constrains the states considered by the third search process to only those states that are not part of the first search space 920 or parts of the second search space 930.

이제 도 10을 참조해 보면, 컴퓨팅 장치의 하나의 가능한 기본적인 구현예가 도시되어 있다. 도 10 및 이에 관련된 설명은, 본 명세서에서 설명한 다양한 기술들을 구현할 수 있는 예시적인 컴퓨티 환경을 간략하고도 일반적으로 설명하려는 것이다. 요구 사항은 아니지만, 이 기술들은, 본 명세서에서, 컨트롤러, 프로세서, 퍼스널 컴퓨터, 또는 도 10에 예시한 컴퓨팅 장치(1000)와 같은 기타 컴퓨팅 장치에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 적어도 부분적으로 설명된다.Referring now to FIG. 10, one possible basic implementation of a computing device is shown. 10 and related descriptions are intended to provide a brief and general description of an example computing environment that may implement the various techniques described herein. Although not required, the techniques herein describe computer executable instructions, such as program modules, executed by a controller, processor, personal computer, or other computing device, such as computing device 1000 illustrated in FIG. 10. It is described at least in part in the general context.

일반적으로, 프로그램 모듈은, 특정한 태스크를 수행하거나 특정한 추상 데이터 유형을 구현하는, 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈에 의해 수행되는 태스크는 블록도 및 동작 흐름도를 참조하여 전술되어 있다.Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Tasks performed by the program modules are described above with reference to block diagrams and operational flow diagrams.

당업자라면, 설명, 블록도, 흐름도를, 컴퓨터 판독가능 매체의 하나 이상의 형태에서 구현될 수 있는 컴퓨터 실행가능 명령어들의 형태로 구현할 수 있다. 본 명세서에서 이용되는 바와 같이, 컴퓨터 판독가능 매체는, 컴퓨터에 의해 액세스될 수 있고 이해될 수 있는 형태로 인코딩되는 정보를 저장하거나 구현할 수 있는 임의의 매체일 수 있다. 컴퓨터 판독가능 매체의 통상적인 유형은, 분리식 및/또는 비분리식 매체, 및 통신 매체를 비롯하여 휘발성 메모리 및 비휘발성 메모리, 데이 터 저장 장치를 포함하지만, 이러한 예로 한정되지는 않는다.Skilled artisans may implement the description, block diagrams, flow diagrams in the form of computer executable instructions that may be embodied in one or more forms of computer readable media. As used herein, a computer readable medium can be any medium that can store or implement information encoded in a form that can be accessed and understood by a computer. Typical types of computer readable media include, but are not limited to, volatile and nonvolatile memory, data storage devices, including removable and / or non-removable media, and communication media.

통신 매체는 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 정보를 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하지만, 이러한 예로 한정되지는 않는다.Communication media embody computer readable information on modulated data signals, such as carrier waves or other transport mechanisms, and include all information delivery media. The term " modulated data signal " means a signal that has one or more of its characteristics set or changed to encode information in the signal. By way of example, communication media includes, but is not limited to, wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, or other wireless media.

도 10의 컴퓨팅 장치(1000)는, 가장 기본적인 구성에 있어서, 적어도 하나의 처리 장치(1002) 및 메모리(1004)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 메모리(1004)는 (RAM처럼) 휘발성, (ROM, 플래시 메모리 등처럼) 비휘발성, 또는 이들 둘 다의 소정의 조합일 수 있다. 이러한 가장 기본적인 구성은 도 10에서 점선(1006)으로 예시되어 있다. 또한, 컴퓨팅 장치(1000)는 추가 특징들/기능성을 가질 수도 있다. 예를 들어, 컴퓨팅 장치(1000)는 자기 또는 광 디스크나 테이프를 비롯한 (분리식 및/또는 비분리식) 추가 저장소를 포함할 수도 있지만, 이에 제한되는 것은 아니다. 이러한 추가 저장소는 도 10에서 분리식 저장소(1008) 및 비분리식 저장소(1010)에 의해 예시되어 있다.The computing device 1000 of FIG. 10, in its most basic configuration, includes at least one processing device 1002 and a memory 1004. Depending on the exact configuration and type of computing device, memory 1004 may be volatile (such as RAM), nonvolatile (such as ROM, flash memory, etc.), or some combination of both. This most basic configuration is illustrated by dashed line 1006 in FIG. In addition, computing device 1000 may have additional features / functionality. For example, computing device 1000 may include, but is not limited to, additional storage (removable and / or non-removable), including magnetic or optical disks or tapes. This additional reservoir is illustrated by the removable reservoir 1008 and the non-removable reservoir 1010 in FIG. 10.

컴퓨팅 장치(1000)는, 컴퓨팅 장치(1000)를 다른 장치들과 통신할 수 있게 하는 하나 이상의 통신 접속부(1012)를 포함할 수도 있다. 컴퓨팅 장치(1000)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 하나 이상의 입력 장치(1014)를 가질 수도 있다. 디스플레이, 스피커, 프린터 등과 같은 하나 이상의 출력 장치(1016)도 컴퓨팅 장치(1000)에 포함될 수 있다.Computing device 1000 may include one or more communication connections 1012 that enable computing device 1000 to communicate with other devices. The computing device 1000 may have one or more input devices 1014, such as a keyboard, mouse, pen, voice input device, touch input device, or the like. One or more output devices 1016, such as a display, speaker, printer, or the like, may also be included in the computing device 1000.

당업자라면 본 명세서에서 설명하는 기술들을 도 10에 예시한 컴퓨팅 장치(1000)가 아닌 컴퓨팅 장치들로 실시할 수 있다는 것을 인식할 것이다. 예를 들어, 본 명세서에서 설명하는 기술들은 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍가능 가전제품. 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등에서 실시될 수도 있지만, 이에 제한되는 것은 아니다.Those skilled in the art will appreciate that the techniques described herein may be implemented with computing devices other than the computing device 1000 illustrated in FIG. 10. For example, the techniques described herein are hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics. The present invention may be implemented in a network PC, a minicomputer, a mainframe computer, or the like, but is not limited thereto.

본 명세서에서 설명하는 기술들은 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 구현될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.The techniques described herein may be implemented in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media.

본 명세서에서는 전술한 기술들이 소프트웨어로 구현되는 것으로 설명하였지만, 다른 방법으로, 본 명세서에서 전술한 기술들이 하드웨어, 펌웨어, 혹은 소프트웨어, 하드웨어, 및/또는 펌웨어의 다양한 조합들로서 부분적으로 또는 모두 구현될 수 있다는 점을 이해할 것이다.Although the foregoing techniques have been described as being implemented in software, alternatively, the techniques described above may be implemented in part or in whole as hardware, firmware, or various combinations of software, hardware, and / or firmware. I understand that.

Claims (20)

a) 검색 공간에서 검색을 행하는 각 프로세스에 대하여, 상기 검색 공간 내의 적어도 하나의 기준 검색 상태를 식별하는 단계와,a) for each process of performing a search in a search space, identifying at least one reference search state in the search space, b) 상기 검색 공간에서 검색을 행하는 각 프로세스에 대하여, 상기 검색 공간 내의 현재 검색 상태들을 선택하기 위해 상기 적어도 하나의 기준 검색 상태와 함께 이용될 적어도 하나의 거리 제약 조건을 식별하는 단계b) for each process of performing a search in the search space, identifying at least one distance constraint to be used with the at least one reference search state to select current search states in the search space. 를 포함하는 방법.How to include. 제1항에 있어서,The method of claim 1, 상기 검색 공간에서 검색을 행하는 각 프로세스는,Each process of searching in the search space, c) 상기 적어도 하나의 거리 제약 조건 및 상기 적어도 하나의 기준 상태에 기초하여 현재 검색 상태를 식별하는 단계와,c) identifying a current search state based on the at least one distance constraint and the at least one reference state; d) 상기 현재 검색 상태를 이용하여 모델을 평가하는 단계와,d) evaluating a model using the current search state; e) 상기 적어도 하나의 거리 제약 조건 및 상기 적어도 하나의 기준 상태에 기초하여 새로운 상태를 선택하고, 상기 새로운 상태를 상기 현재 검색 상태로서 이용하는 단계와,e) selecting a new state based on the at least one distance constraint and the at least one reference state, and using the new state as the current search state; f) 중단 기준이 충족될 때까지 상기 d) 내지 e) 단계를 반복하는 단계f) repeating steps d) to e) until the stopping criteria are met 를 포함하는 메소드를 수행하는 방법.How to perform a method that includes. 제2항에 있어서,The method of claim 2, 적어도 2개의 프로세스가 상기 검색 공간을 검색하는 방법.At least two processes searching the search space. 제3항에 있어서,The method of claim 3, a) 상기 검색 공간 내의 상기 적어도 하나의 기준 검색 상태는 상기 검색 공간에서 검색을 행하는 각 프로세스에 대하여 동일하고, a) the at least one reference search state in the search space is the same for each process performing a search in the search space, b) 상기 검색 공간에서 검색을 행하는 각 프로세스에 대한 상기 적어도 하나의 거리 제약 조건은 상기 검색 공간을 영역들로 분할하도록 선택되는 방법.b) the at least one distance constraint for each process of searching in the search space is selected to divide the search space into regions. 제4항에 있어서,The method of claim 4, wherein 적어도 2개의 영역이 적어도 부분적으로 중첩되는 방법.At least two regions at least partially overlap. 제4항에 있어서,The method of claim 4, wherein 적어도 2개의 영역이 비중첩(non-overlapping)되는 방법.At least two regions are non-overlapping. 제3항에 있어서,The method of claim 3, a) 적어도 하나의 거리 제약 조건은, 상기 검색 공간에서 검색을 행하는 적어도 하나의 프로세스와 상기 검색 공간에서 검색을 행하는 다른 프로세스들에 대하여 서로 다른 방법.a) at least one distance constraint is different for at least one process of searching in the search space and other processes of searching in the search space. 제3항에 있어서,The method of claim 3, a) 상기 검색 공간 내의 적어도 하나의 기준 검색 상태는, 상기 검색 공간에서 검색을 행하는 적어도 하나의 프로세스와 상기 검색 공간에서 검색을 행하는 다른 프로세스들에 대하여 서로 다른 방법.a) at least one reference search state in the search space is different for at least one process for searching in the search space and other processes for searching in the search space. 제8항에 있어서,The method of claim 8, 상기 검색 공간에서 검색을 행하는 각 프로세스에 대한 상기 적어도 하나의 거리 제약 조건은, 상기 검색 공간을 영역들로 분할하도록 선택되는 방법.And said at least one distance constraint for each process of performing a search in said search space is selected to partition said search space into regions. 제9항에 있어서,The method of claim 9, 적어도 2개의 영역이 적어도 부분적으로 중첩되는 방법.At least two regions at least partially overlap. 제9항에 있어서,The method of claim 9, 적어도 2개의 영역이 비중첩되는 방법.At least two regions are non-overlapping. 제2항에 있어서,The method of claim 2, 적어도 2개의 프로세스의 각각은 제2항의 메소드를 실행하고,Each of the at least two processes execute the method of claim 2, 상기 적어도 2개의 프로세스 중 적어도 하나의 프로세스는, 자신의 적어도 하나의 기준 검색 상태를 상기 적어도 2개의 프로세스 중 적어도 다른 하나의 프로세서와 더 교환하는 방법.At least one of the at least two processes further exchanges its at least one reference search state with at least another processor of the at least two processes. 제2항에 있어서,The method of claim 2, 상기 검색 공간에서 검색을 행하는 각 프로세스는,Each process of searching in the search space, a) 자신의 고유한 적어도 하나의 기준 검색 상태를 식별하고, a) identify its own at least one criteria search state, b) 자신의 고유한 적어도 하나의 거리 제약 조건을 식별하며, b) identify their own at least one distance constraint, c) 상기 검색 공간에서 검색을 행하는 각 프로세스는 메소드를 더 수행하고,c) each process performing a search in the search space further executes a method, 상기 메소드는, The method is i) 자신의 고유한 적어도 하나의 기준 상태를 포함하는 정보를 상기 적어도 2개의 프로세스 중 적어도 하나의 프로세스와 교환하는 단계와,i) exchanging information containing at least one reference state of its own with at least one of the at least two processes; ii) 제2항의 c) 단계 내지 f) 단계를 수행하는 단계와, ii) performing steps c) to f) of claim 2, 상기 f) 단계의 중단 기준이 충족되는 경우,If the abort criteria of step f) are met, iii) 새로운 적어도 하나의 기준 상태를 식별하고 상기 새로운 적어도 하나의 기준 상태를 상기 적어도 하나의 기준 상태로서 이용하는 단계와,iii) identifying a new at least one reference state and using the new at least one reference state as the at least one reference state; iv) 상기 검색 공간 내의 현재의 검색 상태들을 선택하기 위해, 상기 적어도 하나의 기준 검색 상태와 함께 이용될 새로운 적어도 하나의 거리 제약 조건을 식별하고, 상기 새로운 적어도 하나의 거리 제약 조건을 상기 적어도 하나의 거리 제약 조건으로서 이용하는 단계와,iv) identify a new at least one distance constraint to be used with the at least one reference search state to select current search states in the search space, and apply the new at least one distance constraint to the at least one Using as a distance constraint, v) 전역적인 중단 기준에 도달할 때까지 상기 i) 단계 내지 (iv) 단계를 반복하는 단계v) repeating steps i) to (iv) until a global stop criterion is reached; 를 포함하는 방법.How to include. 제2항에 있어서,The method of claim 2, g) 검색 공간에서 검색을 행하는 각 프로세스에 대한 조정 프로세스에 의해, 상기 검색 공간 내의 적어도 하나의 기준 검색 상태를 식별하는 단계와,g) identifying at least one reference search state within the search space by an adjustment process for each process performing a search in the search space; h) 상기 검색 공간에서 검색을 행하는 각 프로세스에 대한 조정 프로세스에 의해, 상기 검색 공간 내의 현재의 검색 상태들을 선택하기 위해 상기 적어도 하나의 기준 검색 상태와 함께 이용될 적어도 하나의 거리 제약 조건을 식별하는 단계와,h) identifying, by the adjustment process for each process performing a search in the search space, at least one distance constraint to be used with the at least one reference search state to select current search states in the search space. Steps, i) 상기 검색 공간에서 검색을 행하는 각 프로세스가 제2항의 c) 단계 내지 f) 단계를 수행하는 단계와,i) each process of searching in the search space performing steps c) to f) of claim 2, 상기 f) 단계의 중단 기준이 충족되는 경우,If the abort criteria of step f) are met, j) 상기 조정 프로세스에 의해 새로운 적어도 하나의 기준 상태를 식별하고, 상기 검색 공간을 검색하는 프로세스들에 의해 상기 새로운 적어도 하나의 기준 상태를 상기 적어도 하나의 기준 상태로서 이용하는 단계와,j) identifying a new at least one reference state by the reconciliation process and using the new at least one reference state as the at least one reference state by processes for searching the search space; k) 상기 검색 공간 내의 현재의 검색 상태들을 선택하기 위해, 상기 조정 프로세스에 의해, 상기 적어도 하나의 기준 검색 상태와 함께 이용될 새로운 적어도 하나의 거리 제약 조건을 식별하고, 상기 새로운 적어도 하나의 거리 제약 조건을 상기 적어도 하나의 거리 제약 조건으로서 이용하는 단계와,k) identifying, by the adjustment process, a new at least one distance constraint to be used with the at least one reference search state to select current search states in the search space, and wherein the new at least one distance constraint Using a condition as said at least one distance constraint; l) 전역적 중단 기준에 도달할 때까지 상기 i) 단계 내지 k) 단계를 반복하는 단계l) repeating steps i) to k) until a global abort criterion is reached; 를 더 수행하는 방법.How to do more. 제1항의 방법을 수행하는 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체.A computer readable medium comprising executable instructions for performing the method of claim 1. 인코딩된 실행가능 명령어들을 구비하는 컴퓨터 판독가능 매체로서, A computer readable medium having encoded executable instructions, the computer readable medium comprising: a) 검색 공간을 복수의 영역으로 분할하기 위해 적어도 하나의 분할 기준을 식별하는 수단을 포함하며,a) means for identifying at least one segmentation criterion for partitioning the search space into a plurality of regions, 상기 복수의 영역의 각각은 검색 프로세스에 의해 검색될 상기 검색 공간의 일부를 나타내며, Each of the plurality of areas represents a portion of the search space to be searched by a search process, 상기 적어도 하나의 분할 기준의 각각은 적어도 하나의 기준 검색 상태 및 적어도 하나의 거리 제약 조건을 포함하는 컴퓨터 판독가능 매체.Wherein each of the at least one partitioning criterion comprises at least one reference search state and at least one distance constraint. 제16항에 있어서,The method of claim 16, 상기 적어도 하나의 분할 기준에 기초하여 현재 검색 상태를 식별하는 수단을 더 포함하는 컴퓨터 판독가능 매체.Means for identifying a current search state based on the at least one partitioning criterion. 검색 공간을 검색하는 시스템으로서,As a system for searching a search space, a) 복수의 컴퓨팅 리소스와,a) a plurality of computing resources, b) 상기 복수의 컴퓨팅 리소스 중 적어도 하나의 컴퓨팅 리소스에서 실행되 는 복수의 검색 프로세스와, b) a plurality of retrieval processes running on at least one of the plurality of computing resources; c) 적어도 하나의 분할 기준을 식별하는 적어도 하나의 제어 프로세스 - 상기 분할 기준은 기준 상태에 대한 적어도 하나의 거리 측정을 포함함 - 와,c) at least one control process identifying at least one segmentation criterion, wherein the segmentation criterion comprises at least one distance measure for a reference condition; 를 포함하고, Including, d) 상기 복수의 검색 프로세스의 각각은, 상기 적어도 하나의 분할 기준에 기초하여 현재의 검색 상태를 선택하도록 구성된 검색 공간 검색 시스템.d) each of the plurality of search processes is configured to select a current search state based on the at least one segmentation criterion. 제18항에 있어서,The method of claim 18, 적어도 하나의 검색 프로세스가 상기 제어 프로세스이며, At least one search process is the control process, 상기 제어 프로세스는, 상기 복수의 검색 프로세스의 각각에 대하여 적어도 하나의 분할 기준을 식별하고, The control process identifies at least one segmentation criterion for each of the plurality of search processes, 상기 제어 프로세스는, 상기 복수의 컴퓨팅 리소스 중 적어도 하나의 컴퓨팅 리소스에서 실행되는 검색 공간 검색 시스템.And the control process is executed on at least one computing resource of the plurality of computing resources. 제18항에 있어서,The method of claim 18, 상기 거리 측정은 해밍 거리인 검색 공간 검색 시스템.And the distance measure is a Hamming distance.
KR1020077029058A 2005-06-28 2006-06-27 Constrained exploration for search algorithms KR20080024126A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/170,290 US20060294073A1 (en) 2005-06-28 2005-06-28 Constrained exploration for search algorithms
US11/170,290 2005-06-28

Publications (1)

Publication Number Publication Date
KR20080024126A true KR20080024126A (en) 2008-03-17

Family

ID=37568807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077029058A KR20080024126A (en) 2005-06-28 2006-06-27 Constrained exploration for search algorithms

Country Status (5)

Country Link
US (1) US20060294073A1 (en)
EP (1) EP1889191A4 (en)
KR (1) KR20080024126A (en)
CN (1) CN101208693A (en)
WO (1) WO2007002747A2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589975B2 (en) 1998-08-21 2013-11-19 United Video Properties, Inc. Electronic program guide with advance notification
EP2475166A1 (en) 2006-07-31 2012-07-11 United Video Properties, Inc. Systems and methods for providing media guidance planners
US20080104127A1 (en) * 2006-11-01 2008-05-01 United Video Properties, Inc. Presenting media guidance search results based on relevancy
WO2010088536A1 (en) * 2009-01-30 2010-08-05 Interdigital Patent Holdings, Inc. Method and apparatus for component carrier aggregation in wireless communications
US8458159B2 (en) 2010-05-05 2013-06-04 Microsoft Corporation Automatic role determination for search configuration

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217052A1 (en) * 2000-08-24 2003-11-20 Celebros Ltd. Search engine method and apparatus

Also Published As

Publication number Publication date
WO2007002747A3 (en) 2007-10-04
EP1889191A2 (en) 2008-02-20
US20060294073A1 (en) 2006-12-28
EP1889191A4 (en) 2009-12-16
WO2007002747A2 (en) 2007-01-04
CN101208693A (en) 2008-06-25

Similar Documents

Publication Publication Date Title
Paliwal et al. Reinforced genetic algorithm learning for optimizing computation graphs
JP2022511491A (en) Generation of integrated circuit floor plans using neural networks
CN111126668B (en) Spark operation time prediction method and device based on graph convolution network
Massim et al. Efficient combined immune-decomposition algorithm for optimal buffer allocation in production lines for throughput and profit maximization
CN113703741B (en) Neural network compiler configuration method and device, computer equipment and storage medium
CN114915630B (en) Task allocation method, network training method and device based on Internet of Things equipment
Chen et al. $ d $ d-Simplexed: Adaptive Delaunay Triangulation for Performance Modeling and Prediction on Big Data Analytics
Chen et al. QoS-aware service composition over graphplan through graph reachability
KR20080024126A (en) Constrained exploration for search algorithms
CN113988464A (en) Network link attribute relation prediction method and equipment based on graph neural network
CN110414627A (en) A kind of training method and relevant device of model
CN114154641A (en) AI model training method and device, computing equipment and storage medium
CN113449842A (en) Distributed automatic differentiation method and related device
Baldo et al. Performance models for master/slave parallel programs
Feljan et al. Task allocation optimization for multicore embedded systems
Meng et al. Combined global and local search for optimization with gaussian process models
Nguyen et al. A genetic programming approach for evolving variable selectors in constraint programming
van Stralen et al. Fitness prediction techniques for scenario-based design space exploration
CN110780978A (en) Data processing method, system, device and medium
KR101669919B1 (en) Job scheduler for electromechanical system for biological analyses
Dorzán et al. Approximated algorithms for the minimum dilation triangulation problem
WO2021051920A1 (en) Model optimization method and apparatus, storage medium, and device
CN107105052A (en) Heuristic web service composition method based on figure planning
Gonçalves Moreira et al. Evolving Allocation Rules for Beam Search Heuristics in Assembly Line Balancing
Ghazal et al. Multi-Objective Optimization for Automated Business Process Discovery.

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid