본 연구는 네트워크 코딩과 소프트 액터-크리틱 강화 학습을 통합하여 핵심 IoT 네트워크에서 에너지 효율적인 라우팅을 달성하며, 에너지 소비를 40% 감소시키고 패킷 전달 비율이 97%임을 입증했습니다.
연구 논문
본 연구는 네트워크 코딩과 소프트 액터-크리틱 강화 학습을 통합하여 핵심 IoT 네트워크에서 에너지 효율적인 라우팅을 달성하며, 에너지 소비를 40% 감소시키고 패킷 전달 비율이 97%임을 입증했습니다.
사물인터넷(IoT) 네트워크의 급속한 확장은 데이터 라우팅이 노드 에너지에 큰 부담을 주는 핵심 IoT 네트워크에서 에너지 효율 문제를 심화시켰습니다. 본 논문은 이러한 도전을 해결하기 위해 네트워크 코딩(NC)과 소프트 액터-크리틱(SAC) 강화 학습을 통합한 하이브리드 모델을 제안합니다. NC는 패킷을 결합하여 중복 전송을 최소화하며, SAC 에이전트는 노드 상태, 링크 품질, 잔류 에너지를 기반으로 에너지 인식 경로를 동적으로 선택합니다.
이 시스템은 다양한 트래픽 조건 하에서 IoT 노드의 5× 5 그리드 토폴로지(512바이트 패킷, 100초 런타임)를 사용하여 NS-3 시뮬레이터를 사용하여 구현되었습니다. 결과는 NC + SAC가 기존 라우팅 및 독립 방식에 비해 에너지 소비를 40% 줄이고, 패킷 전달 비율을 97%, 처리량을 50% 개선하며, 네트워크 수명을 연장함을 달성함을 보여줍니다.
주요 기여로는 새로운 NC-SAC 통합, 여러 지표에 걸친 종합적인 NS-3 검증, 지속 가능한 IoT 인프라를 위한 학습 기반 코딩 통신 시연이 있습니다. 이 하이브리드 접근법은 신뢰성, 에너지 절약, 성능을 균형 있게 결합하여 차세대 친환경 IoT 네트워크를 위한 확장 가능한 프레임워크를 제공합니다.
사물인터넷(IoT)은 21세기 가장 혁신적인 기술 중 하나로 부상했으며, 수십억 개의 기기를 원활하게 연결하여 더 스마트한 가정, 도시, 산업, 의료 시스템을 가능하게 했습니다1. 하지만 이 전례 없는 성장과 함께 에너지 소비 문제라는 시급한 도전 과제가 생깁니다. 특히 코어 네트워크에 배치된 IoT 기기는 종종 배터리로 구동되거나 자원이 제한된 경우가 많습니다. 기기와 데이터 트래픽의 밀도가 증가함에 따라 에너지 효율성은 IoT 인프라의 장기적인 지속 가능성을 보장하는 중요한 요소가 됩니다. 이러한 맥락에서 성능과 에너지 절약의 균형을 맞추는 지능형 통신 및 라우팅 전략을 설계하는 것이 매우 중요합니다.
IoT 네트워크의 전통적인 라우팅 방식은 종종 최단 경로 또는 신뢰성 중심 접근법에 집중합니다. 기본 시나리오에서는 효과적이지만, 이러한 방법들은 특히 동적이거나 대규모 배치에서 중복 전송과 급격한 에너지 소모를 초래하는 경우가 많습니다 2,3. 이러한 한계를 해결하기 위해 연구자들은 여러 패킷을 하나의 부호화된 패킷으로 결합하여 전송 횟수를 줄이는 네트워크 코딩(NC)과 같은 기법을 탐구해 왔습니다. NC는 처리량을 향상시키고, 지연 시간을 줄이며, 대역폭 사용을 최적화하는 데 효과가 입증되었습니다. 그러나 네트워크 코딩은 통신 오버헤드를 줄이는 데 강력하지만, 노드 에너지 수준을 본질적으로 고려하거나 변동하는 네트워크 조건에 적응하지는 못합니다 4,5.
이때 머신러닝 기반 의사결정이 중요한 역할을 합니다. 강화 학습(RL)은 IoT 노드가 환경과 상호작용하고 보상으로부터 학습함으로써 적응적 의사결정을 내릴 수 있도록 하는 특히 견고한 프레임워크를 제공합니다. 강화학습 알고리즘 중에서, 소프트 액터-크리틱(SAC)은 엔트로피 정규화6을 통해 탐색과 활용의 균형을 맞추는 능력 덕분에 두드러지게 주목받고 있습니다. 기존 RL 모델과 달리, SAC는 다양한 행동 선택을 장려하여 시스템이 너무 빠르게 비효율적인 전략으로 수렴하는 것을 방지합니다. 에너지 제한이 제한된 IoT 네트워크의 경우, 이는 링크 품질과 전달 성공뿐만 아니라 각 노드의 잔류 에너지 수준에도 적응하는 더 똑똑한 라우팅 선택으로 이어집니다.
최근 연구들은 강화 학습이 IoT 통신과 에너지 관리를 최적화하는 데 미치는 역할에 점점 더 초점을 맞추고 있습니다. 예를 들어, Dev 등은 에너지 효율적인 IoT 통신을 위해 Harris Hawks 최적화를 적용했고, Tuong 등은 무선 IoT 시스템에서 계층적 이중화를 위한 심층 강화 학습을 탐구했습니다. 최근 연구들 8,9는 근접 정책 최적화(proximal policy optimization)와 분산 다중 에이전트 프레임워크와 같은 고급 강화 학습 기법이 대규모 IoT 환경에서 적응력을 더욱 향상시킬 수 있음을 강조합니다.
본 연구는 네트워크 코딩(NC)과 소프트 액터-크리틱(SAC) 알고리즘을 결합하여 핵심 IoT 네트워크에서 에너지 인식 지능형 라우팅을 달성하는 새로운 하이브리드 통신 모델을 제시합니다. 독립적으로 NC 또는 강화 학습을 사용하거나 이산적 행동 딥 RL 모델을 사용하는 기존 접근법과 달리, 본 연구는 SAC의 엔트로피 정규화 연속 행동 공식화를 활용하여 에너지 수준, 링크 안정성, 패킷 버퍼 상태 등 네트워크 상태에 기반한 라우팅 결정을 동적으로 최적화합니다. NC 통합은 재전송을 줄이고 대역폭 활용을 개선할 수 있으며, SAC는 네트워크 부하를 균형 있게 하고 노드 에너지를 절약하기 위한 적응형 경로 선택을 보장합니다. 이 이중 메커니즘은 학습 기반 코딩 통신의 새로운 패러다임을 도입하여 기존 방법에 비해 에너지 효율, 처리량, 패킷 전달 비율, 네트워크 수명 면에서 측정 가능한 향상을 달성합니다.
우리는 NS-3 시뮬레이션 환경을 사용하여 제안된 프레임워크를 구현하고 테스트했으며, 다양한 트래픽 부하 하에서 5×5 IoT 노드 그리드를 배포했습니다. 패킷 크기, 거리, 전송 에너지 모델은 현실적인 IoT 조건을 반영하도록 신중하게 정의되었습니다. 이 시뮬레이션을 통해 패킷 전달 비율(PDR), 처리량, 네트워크 수명, 에너지 효율성 등 주요 지표를 평가했습니다. 결과는 다음과 같습니다: 전통적인 라우팅 및 독립형 모델과 비교했을 때, NC + SAC 하이브리드 시스템은 에너지 소비를 거의 40% 줄이고, 처리량을 50% 개선했으며, 네트워크 수명을 크게 연장했으며, 패킷 전달 비율은 거의 97%에 달했습니다.
수치적 향상을 넘어서, 이 작업의 진정한 강점은 확장성과 적응성에 있습니다. IoT 네트워크가 계속 크기와 복잡성을 키워짐에 따라, 변화하는 조건에 동적으로 적응하는 솔루션이 매우 중요해질 것입니다. 이 하이브리드 프레임워크는 에너지 절약이라는 즉각적인 문제를 해결할 뿐만 아니라, 실제 배치에서 스스로 지속 가능한 자율적이고 자율적인 IoT 시스템의 기반을 마련합니다. 표 1에는 에너지 소비, 패킷 전달 비율, 네트워크 수명, 처리량과 같은 매개변수의 성능 로그가 포함되어 있습니다. 표 2는 실험에서 도출된 결과를 요약한 것입니다. 더 나아가, 강화 학습을 IoT 네트워킹에 통합함으로써 AI 기반 프로토콜이 자원이 제한된 환경에서 기기의 상호작용 방식을 재구성할 잠재력을 보여줍니다.
최근 지능형 커뮤니케이션 전략의 발전은 적응적이고 지속 가능한 IoT 라우팅 프레임워크의 필요성을 더욱 강화합니다10, 11, 12. 전통적인 클러스터링 기반 또는 정적 라우팅 프로토콜은 변동하는 링크 품질, 변동하는 노드 에너지 수준, 간섭과 같은 동적 네트워크 문제를 잘 반영하지 못해 급격한 성능 저하와 초기 노드 고장으로 이어질 수 있습니다. 현대의 강화 학습 기반 접근법은 IoT 장치가 환경과의 지속적인 상호작용을 통해 최적의 전송 전략을 동적으로 학습할 수 있게 함으로써 이러한 문제를 해결하는 데 큰 잠재력을 보여주었습니다10, 11, 12. 동시에 네트워크 코딩은 제한된 네트워킹 환경에서 중복 전송을 줄이고 스펙트럼 효율을 향상시키는 데 유용함을 입증했습니다. 그러나 대부분의 기존 연구는 이 기법들을 독립적으로 평가하며, 결합하지 않고 평가합니다. 따라서 NC를 Soft Actor-Critic과 같은 연속 제어 강화 학습 기법과 통합하면 실시간 변화에 적응하면서 에너지를 절약할 수 있는 보다 견고하고 지능적인 의사소통 메커니즘을 제공합니다15,16. 이 하이브리드 패러다임은 IoT 네트워크의 회복력과 자율성을 강화할 뿐만 아니라, 지속 가능한 대규모 배포를 위한 친환경 통신 시스템과 머신러닝 기반 무선 아키텍처 분야의 신흥 연구 동향과도 일치합니다.
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
데이터 전송 및 패킷 처리 워크플로우
노드 초기화: 각 노드는 완전한 네트워크 토폴로지 정보, 최대 에너지 용량, 그리고 의사결정을 위해 준비된 사전 학습된 SAC 에이전트를 가지고 시작합니다. 네트워크 코딩 모듈은 패킷 결합 작업을 활성화하고 준비합니다.
패킷 인코딩 과정: 전송이 시작되면 소스 노드는 센서로부터 여러 데이터 패킷을 수집합니다. 네트워크 부호화 모듈은 효율적인 수학적 연산을 사용하여 이 패킷들을 더 적은 수의 부호화된 패킷으로 결합하여 총 전송 횟수를 크게 줄입니다.
SAC 라우팅 결정 실행: SAC 에이전트는 이웃 에너지 수준, 링크 품질, 트래픽 상태, 목적지 거리 등 현재 네트워크 상태를 분석합니다. 학습된 정책을 바탕으로 에너지 효율과 신뢰성을 우선시하며 최적의 다음 홉 이웃을 선택합니다.
다중 홉 패킷 전달: 암호화된 패킷이 선택한 경로를 통해 이동합니다. 중간 노드는 현재 버퍼 상태와 남은 에너지 수준에 따라 패킷을 추가로 결합할지 직접 전달할지 결정합니다.
보상 계산 및 저장: 각 전송 후, 시스템은 전달 성공률, 사용 에너지, 전송 지연, 패킷 손실을 기반으로 보상 점수를 계산합니다. 이 보상 정보는 SAC 요원이 학습할 수 있도록 저장됩니다.
지속적인 학습 업데이트: SAC 요원은 저장된 경험을 정기적으로 검토하고 의사결정 전략을 업데이트하여 에너지 효율적인 경로를 선택하는 데 더 능숙해지면서 높은 배송 성능을 유지합니다.
시스템 아키텍처
일반적인 노드는 다음과 같이 동작합니다: 데이터를 감지하고 수집한 후 네트워크 코딩으로 인코딩한 후, SAC 에이전트가 선택한 라우팅 경로를 통해 인코딩된 패킷을 전달합니다. SAC 에이전트는 남은 에너지, 버퍼 상태, 링크 품질 등 노드의 상태를 평가하여 다음 최적의 홉을 결정합니다. 이 과정은 역동적이며 네트워크 조건이 변함에 따라 경험을 통해 진화합니다. 그림 1 은 이러한 데이터 흐름과 구성 요소 간 상호작용을 보여줍니다.
네트워크 부호화 방정식
중간 노드에서는 다음과 같이 네트워크 코딩이 적용됩니다:

여기서 Ci는 인코딩된 패킷, αij는 SAC를 통해 학습된 부호 계수, Pj는 원래 패킷입니다. 이로 인해 네트워크는 전송 횟수를 줄이고 신뢰성을 향상시킬 수 있습니다.
SAC 목적 함수
SAC 에이전트는 다음과 같은 엔트로피 정규화된 목적을 사용하여 정책을 최적화합니다:

여기서 r(st, at)는 보상이고, α 는 탐험을 위한 트레이드오프 매개변수이며, H 는 엔트로피 항입니다.
에너지 소비 모델
현실적인 에너지 사용을 시뮬레이션하기 위해 다음 모델이 사용됩니다:

여기서 : Eelec-는 송수신기를 실행하는 비트당 에너지, - k 는 데이터 크기 (비트), -
는 송신기 증폭기가 필요로 하는 에너지, - 는 노드 간 거리, -d 는 경로 손실 지수입니다.
평가 지표
본 연구의 시뮬레이션에서 사용된 다음 성과 지표들:
패킷 전달 비율(PDR):

처리량:

네트워크 수명: 네트워크 노드의 50%가 에너지를 소진할 때까지의 지속 기간을 의미합니다.
에너지 효율:

의사 코드
IoT 네트워크 노드 초기화
이 기능은 시스템이 작동하기 전에 네트워크 내 모든 IoT 노드를 설정합니다. 각 노드는 최대 에너지, 패킷을 저장할 빈 버퍼, 로컬 환경을 나타내는 상태, 최적 결정을 학습하는 SAC 에이전트, 그리고 지능형 데이터 인코딩을 가능하게 하는 NC 모듈이 할당됩니다.
디펜스 initialize_nodes(네트워크):
네트워크 내 노드에 대해:
node.energy = MAX_ENERGY
node.buffer = []
node.state = sense_environment(node)
node.agent = initialize_sac_agent()
node.nc_module = activate_network_coding()
패킷 생성 및 네트워크 코딩
이 기능은 소스 노드에서 센서 데이터를 수집하고, 선형 또는 XOR 기반 네트워크 코딩 방법으로 인코딩하며, 전송을 준비하는 역할을 합니다. 여러 패킷을 하나의 코딩된 패킷으로 묶어 네트워크를 통해 전달할 수 있도록 하여 통신 오버헤드를 줄입니다.
디비전 generate_and_code_packets(source_node):
data_packets = collect_data(source_node)
coded_packet = network_code(data_packets)
queue_transmission(source_node, coded_packet)
디펜스 network_code(패킷):
반환 linear_combination(패킷)
SAC 기반 라우팅 결정
여기서 현재 노드는 SAC 에이전트를 사용해 네트워크 상태를 분석하고 가장 에너지 효율적이고 신뢰할 수 있는 이웃 노드를 선택하여 패킷을 전달합니다. 이 결정은 학습된 정책과 링크 품질이나 잔류 에너지 같은 현재 환경 조건에 기반합니다.
디펜스 select_next_hop(current_node):
current_state = observe_network_state(current_node)
action = sac_agent_policy(current_node.agent, current_state)
next_hop = map_action_to_neighbor(동작)
next_hop
패킷 전송 및 피드백 루프
이 함수는 부호화된 패킷의 실제 전송을 관리합니다. 최적의 다음 홉을 결정한 후, 링크가 유효하면 패킷이 전송됩니다. 시스템은 전송 성공률과 에너지 사용량을 바탕으로 보상을 계산하며, 이를 바탕으로 SAC 에이전트의 학습 모델을 업데이트합니다.
디펜스 transmit_packet(current_node, 패킷):
next_hop = select_next_hop(current_node)
만약 is_link_valid(current_node, next_hop):
send(packet, next_hop)
보상 = compute_reward(current_node, 패킷)
update_sac_agent(current_node, 보상)
기체:
recompute_next_hop(current_node)
SAC 에이전트 업데이트 (학습 단계)
패킷이 전송되면 이 기능은 SAC 에이전트를 업데이트합니다. 상태 변화를 기록하고 경험을 메모리에 저장하며, 충분한 경험이 수집되면 샘플 배치를 사용해 에이전트의 의사결정 전략을 개선합니다. 이 방법은 노드가 시간이 지남에 따라 네트워크 변화에 적응하는 데 도움을 줍니다.
방어 update_sac_agent(노드, 보상):
new_state = observe_network_state(노드)
store_transition(node.agent.memory, node.state, node.action, reward, new_state)
만약 enough_experience(node.agent.memory):
batch = sample_batch(node.agent.memory)
node.agent = optimize_sac(node.agent, batch)
node.state = new_state
수신기에서의 디코딩
목적지에서 이 함수는 수신된 모든 부호화된 패킷을 받아 가우시안 제거법과 같은 방법으로 원래 데이터로 다시 디코딩합니다. 복구된 데이터는 적절한 애플리케이션 계층이나 프로세스로 전달됩니다.
디펜스 decode_packet(destination_node:
received_packets = destination_node.buffer
original_data = 디코드(received_packets)
deliver_data(original_data)
def 디코드(패킷):
반환 gaussian_elimination(패킷)
에너지 모니터링 및 노드 슬립 논리
이 기능은 각 노드의 에너지 수준을 추적하여 노드가 계속 작동할지 아니면 전력 절약을 위해 절전 모드로 전환할지 결정합니다. 에너지가 충분하면, 노드는 송전 관련 비용을 공제합니다; 그렇지 않으면 전체 네트워크 수명을 연장하기 위해 일시적으로 종료됩니다.
def monitor_energy(노드):
만약 node.energy < 임계값이라면:
put_node_to_sleep(노드)
그렇지 않으면 node.energy -= transmission_cost()
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
우리는 네 가지 다른 접근법을 비교한 시뮬레이션을 수행했습니다: (i) 최적화가 없는 전통적 모델, (ii) 네트워크 코딩(NC)만 사용하는 시스템, (iii) 라우팅에 대해 소프트 액터-크리틱(SAC) 알고리즘만을 사용하는 설정, (iv) NC와 SAC를 결합한 제안된 하이브리드 모델.
에너지 소비
가장 중요한 개선은 에너지 효율성에서 관찰되었습니다. 전통적인 IoT 네트워크는 고정된 경로에 의존하고 패킷 손실이 발생할 때 잦은 재전송으로 인해 빠르게 에너지를 소비합니다. NC를 도입하면 중복 재전송을 줄여 효율성을 높여 에너지를 절약할 수 있습니다. SAC는 에너지가 많은 경로를 피하고 라우팅 결정을 동적으로 조정하여 성능을 더욱 향상시켰습니다. NC와 SAC의 통합은 가장 큰 이점을 가져왔는데, 시스템이 효율적이고 지능적으로 통신하는 법을 배워 전체 에너지 소비가 가장 적은 결과...
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
이 연구는 네트워크 코딩(NC)과 소프트 액터-크리틱(SAC) 강화 학습 알고리즘을 통합한 새로운 에너지 인식 커뮤니케이션 전략을 핵심 IoT 네트워크를 대상으로 제안합니다. 이 하이브리드 접근법의 목표는 신뢰할 수 있고 효율적인 데이터 전송을 유지하면서 에너지 소비를 최소화하는 것입니다. NC는 데이터 패킷을 인코딩하여 중복 전송을 줄이고, SAC는 관찰된 네트워크 상태를 기반으로 에너지 효율적인 라우팅 경로를 동적으로 학습하고 선택합니다. 제시된 시뮬레이션 결과는 하이브리드 NC + SAC 방법이 에너지 효율, 패킷 전달 비율, 처리량, 네트워크 수명 측면에서 전통적인 라우팅 및 독립 실행형 방식을 훨씬 능가함을 확인시켜 줍니다.
이 연구의 중요성은 NC13을 통한 데이터 효율성과 SAC9를 통한 적응형 학습을 통합하여 IoT
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
저자들은 공개할 것이 없습니다.
옥스퍼드 공과대학과 자인 임베 대학교의 지원과 자원에 깊은 감사를 전합니다.
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
| 이름 | 회사 | 카탈로그 번호 | 댓글 |
|---|---|---|---|
| 6GB NVIDIA GeForce RTX 3050 (컴퓨터 시스템) | 비디아 | https://www.nvidia.com/en-in/geforce/graphics-cards/30-series/rtx-3050/ | 시뮬레이션 및 훈련용: CPU RAM: 16GB, GPU RAM |
| AMD 라이젠 (컴퓨터 시스템) | AMD | 라이젠 7 | 시뮬레이션 및 훈련용: 프로세서 |
| 하드웨어 테스트베드 (향후 선택적 작업) | 라즈베리 Pi | https://www.raspberrypi.com/products/raspberry-pi-4-model-b/ | 실제 IoT 배포 및 검증을 위한 무선 모듈이 탑재된 라즈베리 파이 4 노드 |
| 인텔 코어 i7 (컴퓨터 시스템) | 인텔 코어 | i7-7700 프로세서 | 시뮬레이션 및 훈련용: 프로세서 |
| 주피터 노트북 | 주피터 | https://jupyter.org/ | 반복 개발, 디버깅 및 시각화를 위한 환경 |
| 매트플롯립 | 파이썬 | https://matplotlib.org/ | 성능 지표(에너지, 처리량, PDR, 네트워크 수명)를 표시하는 Python 시각화 라이브러리 |
| 네트워크 코딩 모듈 | 선형 네트워크 코딩 및 패킷 인코딩을 구현하기 위한 맞춤형 Python/NS-3 통합 | ||
| NS-3 시뮬레이터 | NS-3 | nsnam.org | IoT 네트워크 시뮬레이션 및 라우팅 평가에 사용되는 오픈 소스 이산 이벤트 네트워크 시뮬레이터 |
| NumPy | 넘버피 | numpy.org | 시뮬레이션 로그, 통계 분석, 구조화된 데이터셋을 처리하는 Python 패키지 |
| 판다 | pandas.pydata.org | 시뮬레이션 로그, 통계 분석, 구조화된 데이터셋을 처리하는 Python 패키지 | |
| 파이썬 3.10 | 파이썬 | 버전 3.10.0 | SAC 에이전트 훈련, 코딩 계수 최적화 및 데이터 처리에 사용되는 프로그래밍 언어 |
| 파이토치 | 파이토치 | https://pytorch.org/ | Soft Actor-Critic 알고리즘 및 강화 학습 모델을 구현하기 위한 딥러닝 라이브러리 |
| 씨본 | 파이썬 | https://seaborn.pydata.org/ | 성능 지표(에너지, 처리량, PDR, 네트워크 수명)를 표시하는 Python 시각화 라이브러리 |
| Ubuntu 20.04 (컴퓨터 시스템) | 우분투 | 버전 20.04 | 시뮬레이션 및 교육용: 운영체제 |
액세스가 제한되었습니다. 이 콘텐츠를 보려면 로그인하거나 체험판을 시작하세요.
이 JoVE 논문의 텍스트 또는 그림 재사용 허가 요청
허가 요청