> For the complete documentation index, see [llms.txt](https://swonh.gitbook.io/sdmp-user-manual-kor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://swonh.gitbook.io/sdmp-user-manual-kor/general-module/undefined-1/solvercontrol.md).

# SolverControl

### GetRunMaxTime

```csharp
public override int GetRunMaxTime()
```

#### 정의

Solver의 최대 구동 시간을 설정합니다. (단위: 초)

#### 반환

<table><thead><tr><th width="151.33333333333331">Type</th><th width="398">Description</th><th>Default</th></tr></thead><tbody><tr><td>Integer</td><td>Solver의 최대 구동 시간 입니다. (단위: 초)</td><td>Int32.MaxValue</td></tr></tbody></table>

#### 예제 (Default Logic)

```csharp
public override int GetRunMaxTime() 
{
    return Int32.MaxValue;
}
```

### GetObjectiveFunctionType

```csharp
public override ObjectiveFunctionType GetObjectiveFuntionType(IRunConfig runConfig)
```

#### 정의

문제의 목적함수 타입을 설정합니다. (Maximize 또는 Minimize)

#### 매개 변수

<table><thead><tr><th width="266">Type</th><th>Description</th></tr></thead><tbody><tr><td>IRunConfig</td><td>구동 정보를 나타내는 IRunConfig 객체입니다.</td></tr></tbody></table>

#### 반환

| Type                  | Description | Default                            |
| --------------------- | ----------- | ---------------------------------- |
| ObjectiveFunctionType | 목적함수 타입입니다. | [Default Logic 참조](#default-logic) |

#### 예제 (Default Logic)

```csharp
public override ObjectiveFunctionType GetObjectiveFuntionType(IRunConfig runConfig)
{
    ObjectiveFunctionType objectiveFunctionType = UtilityHelper.StringToEnum(runConfig.OBJECTIVE_FUNCTION_TYPE, ObjectiveFunctionType.Minimize);

    return objectiveFunctionType;
}
```

### GetProjectName

```csharp
public override string GetProjectName()
```

#### 정의

현재 프로젝트의 이름을 설정합니다.

#### 반환

<table><thead><tr><th width="171">Type</th><th width="370">Description</th><th>Default</th></tr></thead><tbody><tr><td>String</td><td>프로젝트 이름입니다.</td><td><a href="#default-logic-1">Default Logic 참조</a></td></tr></tbody></table>

#### 예시 (Default Logic)

```csharp
public override string GetProjectName()
{
    return Assembly.GetExecutingAssembly().GetName().Name;
}
```

### GetOutputDirectoryPath

```csharp
public override string GetOutputDirectoryPath(string solverName)
```

#### 정의

출력 데이터를 저장할 디렉터리를 설정합니다.

{% hint style="info" %}
별도로 경로를 설정하지 않을 경우, 현재 프로젝트 경로에 "Output" 디렉터리를 생성하여 저장합니다.
{% endhint %}

#### 반환

<table><thead><tr><th width="161.33333333333331">Type</th><th width="435">Description</th><th>Default</th></tr></thead><tbody><tr><td>String</td><td>출력 데이터를 저장할 디렉터리 경로입니다.</td><td>Null</td></tr></tbody></table>

#### 예제 (Default Logic)

```csharp
public override string GetOutputDirectoryPath(string solverName) 
{
    return null;
}
```
