내 모델 검사 코드에서 특정 변수의 최대 값을 찾는 데 관심이 있습니다. 내가 지금 사용하는 절차는 어설 션 문 을 갖고, 바이너리 검색 방식으로 MAX_VALUE를 계속 변경하는 것입니다. 그러나 SPIN이 실제로 한 번의 실행으로 변수의 최대 값을 제공 할 수있는 방법이 있다면 훨씬 더 좋습니다. UPPAAL에는 sup
연산자가 있습니다. SPIN에 상응하는 프로그램이 있습니까?SPIN/PROMELA에서 변수의 최대 값을 확인할 수 있습니까
1
A
답변
1
이 does not appear to existPromela
연산자 (sup
에 해당하는 유한 도메인이 관련되어 있음)가 max
입니다.
한가지 가능한 방식은 상태 공간을 탐색하는 동안 외부 파일 var
값을 덤프 한 Promela 명세서 내에 embedded C code을 통해 예를 들어, 상태 정보를 기록 할 때마다 var
변경 값 :
c_code{
FILE *fp;
int max_value;
}
함께 가진 inline
:
int var;
inline set_var(value){
var = value;
c_code{
fp = fopen("max_value.txt", "r");
fscanf(fp, "%d", & max_value);
fclose(fp);
if (now.var > max_value){
fp = fopen("max_value.txt", "w");
fprintf(fp, max_value);
fclose(fp);
}
}
, 전체 상태 공간은 종류에 의존하는, 열거한다 속성 확인 여부, 부분 주문 감소 적용 여부 등이 있습니다.
이 접근법은 파일에 대한보다 효율적인 액세스로 개선 될 수 있습니다.
관련 문제
- 1. Objective-C에서 변수의 값을 확인할 수 없습니다
- 2. 버전 변수의 값은 어디에서 확인할 수 있습니까?
- 3. DJANGO_SETTINGS_MODULE 환경 변수의 값을 어떻게 확인할 수 있습니까?
- 4. 매크로의 값을 확인할 수 있습니까?
- 5. anylogic에서 최대 값을 갖는 변수의 이름을 얻음
- 6. 패널에서 변수의 최대 값을 찾는 방법
- 7. @RequestMapping을 사용하여 헤더 값을 확인할 수 있습니까
- 8. @ jndiPattern @ 값을 어떻게 확인할 수 있습니까?
- 9. 브라우저의 readyState 값을 수동으로 확인할 수 있습니까?
- 10. jQuery로 onclick = ""값을 확인할 수 있습니까?
- 11. 이 값을 어떻게 확인할 수 있습니까?
- 12. 성별 값을 NameID로 어떻게 확인할 수 있습니까?
- 13. NULL 포인터를 가리키는 값을 확인할 수 있습니까?
- 14. ORIG_HEAD 값을 빠르게 확인할 수 있습니까?
- 15. 글로벌 변수의 값을 어떻게 바꿀 수 있습니까
- 16. 변수의 값을 어떻게 설정할 수 있습니까?
- 17. 다른 스크립트에서 변수의 값을 가져올 수 있습니까?
- 18. AJAX 요청에서 변수의 값을 설정할 수 있습니까?
- 19. 이 변수의 값을 어떻게 설정할 수 있습니까?
- 20. 함수 매개 변수의 값을 변경할 수 있습니까?
- 21. 변수의 최소값과 최대 값을 얻는 올바른 방법
- 22. 변수의 내용이 무언가로 시작하는지 어떻게 확인할 수 있습니까?
- 23. 최대 varchar (최대) 변수의 크기
- 24. C++ API에서 변수가 결정적 값을 가지고 있는지 확인할 수 있습니까
- 25. RewriteRule 또는 RewriteCond 서버 변수의 값을 어떻게 확인할 수 있습니까? 내가보고 싶은 경우, 예를 들어
- 26. 어떻게 확인할 수 있습니까 NSDATE
- 27. 스택에 할당해야하는 변수의 크기에는 최대 한도가 있습니까?
- 28. 어떻게 확인할 수 있습니까?
- 29. 최대 SqlDbType.Int와 같은 SqlDbTypes의 최대 값을 어떻게 얻을 수 있습니까?
- 30. Rails 모델에 대한 매개 변수의 유효성을 검사 할 때 다른 매개 변수와 비교하여 하나의 매개 변수 값을 확인할 수 있습니까?
이 점을 지적 해 주신 덕분에 모델 검사 중에 전역으로 상태를 추적하는'c_code '를 사용하여'inline'을 수정했습니다. –
이것을 assert (var