초기 값 제약

초기 값 제약

FD 변수의 초기 도메인을 설정하는 술어들을 설명해요.

출처: GNU Prolog Manual - Initial value constraints

본문

fd_domain/3, fd_domain_bool/1

Templates

fd_domain(+fd_variable_list_or_fd_variable, +integer, +integer)
fd_domain(?fd_variable, +integer, +integer)
fd_domain_bool(+fd_variable_list)
fd_domain_bool(?fd_variable)

Description fd_domain(Vars, Lower, Upper)은 Vars의 각 요소 X를 Lower..Upper 안의 값을 취하도록 제약해요. 이 술어는 일반적으로 변수의 초기 도메인을 구간으로 설정하는 데 사용돼요. Vars는 단일 FD 변수(또는 단일 Prolog 변수)일 수도 있어요.

fd_domain_bool(Vars)fd_domain(Vars, 0, 1)과 동일하며 불리언 FD 변수를 선언하는 데 사용돼요.

Errors

  • Vars가 변수가 아니지만 부분 리스트 — instantiation_error
  • Vars가 변수도 FD 변수도 정수도 리스트도 아님 — type_error(list, Vars)
  • Vars 리스트의 어떤 요소 E가 변수도 FD 변수도 정수도 아님 — type_error(fd_variable, E)
  • Lower가 변수 — instantiation_error
  • Lower가 변수도 정수도 아님 — type_error(integer, Lower)
  • Upper가 변수 — instantiation_error
  • Upper가 변수도 정수도 아님 — type_error(integer, Upper)

Portability: GNU Prolog 술어.

fd_domain/2

Templates

fd_domain(+fd_variable_list, +integer_list)
fd_domain(?fd_variable, +integer_list)

Description fd_domain(Vars, Values)은 리스트 Vars의 각 요소 X를 리스트 Values 안의 값을 취하도록 제약해요. 이 술어는 일반적으로 변수의 초기 도메인을 값 집합으로 설정하는 데 사용돼요. Vars의 각 변수의 도메인은 희소 표현을 사용해요. Vars는 단일 FD 변수(또는 단일 Prolog 변수)일 수도 있어요.

Errors

  • Vars가 변수가 아니지만 부분 리스트 — instantiation_error
  • Vars가 변수도 FD 변수도 정수도 리스트도 아님 — type_error(list, Vars)
  • Vars 리스트의 어떤 요소 E가 변수도 FD 변수도 정수도 아님 — type_error(fd_variable, E)
  • Values가 부분 리스트이거나 변수인 요소 E를 가진 리스트 — instantiation_error
  • Values가 부분 리스트도 리스트도 아님 — type_error(list, Values)
  • Values 리스트의 어떤 요소 E가 변수도 정수도 아님 — type_error(integer, E)

Portability: GNU Prolog 술어.

더 알아보기