이 글은 성장 신경 가스 (GNG)라고하는 클러스터링의 적응 알고리즘을 구현하는 MQL5 프로그램을 개발하는 방법의 예를 보여줍니다. 이 글은 언어 문서를 공부하고 신경 정보학 분야에서 특정 프로그래밍 기술과 기본 지식을 보유한 사용자를 대상으로 합니다.
알고리즘을 프로그래밍할 때 "세트"라고 하는 것을 저장해야 할 필요성을 분명히 처리해야 합니다. 뉴런 세트와 이들 사이의 에지 세트라는 두 세트가 있습니다. 두 구조 모두 프로그램 과정에서 발전 할 것이지만 (그리고 우리는 항목을 추가하고 제거할 계획입니다) 이에 대한 메커니즘도 제공해야 합니다.
물론 객체의 동적 배열을 사용하려고 할 수는 있지만 수많은 데이터 복사 이동 작업을 수행해야하므로 기본적으로 프로그램 속도가 느려집니다. 지정된 속성을 사용하여 추상화 작업에 더 적합한 옵션은 프로그램 그래프와 가장 간단한 버전인 연결 목록입니다.
연결 목록의 작동 원리를 독자들에게 상기시켜드리겠습니다 (그림 1). 기본 클래스의 개체에는 멤버 중 하나와 동일한 개체에 대한 포인터가 포함되어있으므로 메모리에 있는 개체의 물리적 순서에 관계없이 선형 구조로 결합할 수 있습니다. 또한 목록 이동, 노드 추가, 삽입 및 삭제, 검색, 비교 및 정렬, 필요한 경우 기타 절차를 캡슐화하는 "carriage" 클래스가 있습니다.
새로운 기고글 성장하는 신경 가스: MQL5 구현 가 게재되었습니다:
이 글은 성장 신경 가스 (GNG)라고하는 클러스터링의 적응 알고리즘을 구현하는 MQL5 프로그램을 개발하는 방법의 예를 보여줍니다. 이 글은 언어 문서를 공부하고 신경 정보학 분야에서 특정 프로그래밍 기술과 기본 지식을 보유한 사용자를 대상으로 합니다.
알고리즘을 프로그래밍할 때 "세트"라고 하는 것을 저장해야 할 필요성을 분명히 처리해야 합니다. 뉴런 세트와 이들 사이의 에지 세트라는 두 세트가 있습니다. 두 구조 모두 프로그램 과정에서 발전 할 것이지만 (그리고 우리는 항목을 추가하고 제거할 계획입니다) 이에 대한 메커니즘도 제공해야 합니다.
물론 객체의 동적 배열을 사용하려고 할 수는 있지만 수많은 데이터 복사 이동 작업을 수행해야하므로 기본적으로 프로그램 속도가 느려집니다. 지정된 속성을 사용하여 추상화 작업에 더 적합한 옵션은 프로그램 그래프와 가장 간단한 버전인 연결 목록입니다.
연결 목록의 작동 원리를 독자들에게 상기시켜드리겠습니다 (그림 1). 기본 클래스의 개체에는 멤버 중 하나와 동일한 개체에 대한 포인터가 포함되어있으므로 메모리에 있는 개체의 물리적 순서에 관계없이 선형 구조로 결합할 수 있습니다. 또한 목록 이동, 노드 추가, 삽입 및 삭제, 검색, 비교 및 정렬, 필요한 경우 기타 절차를 캡슐화하는 "carriage" 클래스가 있습니다.
그림 1. 선형 연결 목록 구성의 도식적 표현
작성자: Alexey Subbotin