IT105 Bellman Ford 벨만 포드(Bellman Ford) 알고리즘에 대해 알아보려고 한다. (자세한 부분은 아래 페이지 참조)https://www.geeksforgeeks.org/bellman-ford-algorithm-simple-implementation/https://www.geeksforgeeks.org/bellman-ford-algorithm-dp-23/ 벨만 포드 알고리즘을 알아보기 전에 흔히 알려진 다익스트라 알고리즘은 시작점으로부터 그래프 상의 모든 정점까지의 최단 거리를 찾아준다. 그러나 간선 값이 양수가 아닌 음수일 경우에는 정상적으로 알고리즘을 사용할 수 없다. 바로 이 시점에 등장한 것이 벨만 포드 알고리즘이다.즉, 간선 값이 음수 일 경우에도 시작점으로부터 모든 정점까지의 최단 거리를 찾아 준다. 물론.. 2019. 8. 25. Global Interpreter Lock (GIL) 해당 글은 아래 글을 번역 및 의역한 것이다. (보다 자세한 부분은 첨부된 페이지를 참조)https://realpython.com/python-gil/#why-wasnt-it-removed-in-python-3 Python의 Global Interpreter Lock (GIL)은 mutex (또는 lock)으로 "오직" 하나의 Thread가 Python Interpreter의 제어권을 가지고 있는 것이다. 즉, 한 시점에 하나의 Thread만 실행 상태에 있을 수 있다는 의미이다. GIL은 Single-threaded 프로그램에서 확인할 수는 없다. 대신에 CPU-Bound, Multi-Threaded 코드에서는 Bottlenect이 발생하여 성능에 악영향을 주는 것을 확인할 수 있다. 그 이유는 GIL.. 2019. 8. 11. [번역] Speed Up Your Python Program With Concurrency Part 2 지난 번에 이어서 좀 더 자세히 알아보려고 한다.*의역이 있을 수 있고 이해한 바를 바탕으로 정리했기 때문에 원문과 의미가 조금 달라 질 수 있다. (원문은 아래에 첨부하였다.)https://realpython.com/python-concurrency/#how-to-speed-up-an-io-bound-program I/O Bound 프로그램의 속도를 높이는 방법I/O Bound 관련 프로그램으로 네트워크 상에서 컨텐츠를 내려 받는 문제에 대해 알아보자. 동기(Synchronous) 버전먼저 해당 작업을 비동시성 작업으로 시작해보자. 프로그램은 requests 모듈이 필요하다. 때문에 프로그램을 실행하기전에 pip install requests를 실행해야 한다. import requests import .. 2019. 8. 11. [번역] Speed Up Your Python Program With Concurrency Part 1 파이썬 동시성에 관한 좋은 글이 있어서 관련 내용을 번역해보려 한다. *의역이 있을 수 있고 이해한 바를 바탕으로 정리했기 때문에 원문과 의미가 조금 달라 질 수 있다. (원문은 아래에 첨부하였다.)https://realpython.com/python-concurrency/#how-to-speed-up-an-io-bound-program추가로 해당 포스팅은 부분 부분 나누어서 진행하려고 한다. 동시성(Concurreny) 이란?동시성의 사전적 정의는 어떠한 사건이 동시에 발생(simultaneous occurrence)하는 것이다. Python에서는 동시에 발생하는 사건들이 내부적으로 Thread, Task, Process 등에 의해 호출된다. (하지만 High level 관점에서는 모두 순서대로 수행되.. 2019. 8. 3. 이전 1 ··· 6 7 8 9 10 11 12 ··· 27 다음