public int WM_SYSCOMMAND = 0x0112;
public int SC_MONITORPOWER = 0xF170;
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
/////
SendMessage(this.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, 2);
한국 WIKI에는 그다지 설명이 잘되어있지 않기 때문에 영문 WIKI를 참고하기를 바랍니다.
담금질 기법(Simulated Annealing, SA)은 전역 최적화 문제에 대한 일반적인 확률적 메타 알고리즘이다. 이 기법은 광대한 탐색 공간 안에서, 주어진 함수의 전역 최적해에 대한 좋은 근사를 준다. 커크패트릭, 젤라트, 베키가 1983년에 고안했다. 보통 영어를 그냥 읽어서 시뮬레이티드 어닐링이라고 부른다.
담금질 기법이라는 말은 금속 공학의 담금질(quenching)에서 왔는데, 이는 풀림(annealing)의 오역이다. 풀림은 금속재료를 가열한 다음 조금씩 냉각해 결정을 성장시켜 그 결함을 줄이는 작업이다. 열에 의해서 원자는 초기의 위치(내부 에너지가 극소점에 머무르는 상태)로부터 멀어져 에너지가 더욱 높은 상태로 추이된다. 천천히 냉각함으로써 원자는 초기 상태보다 내부 에너지가 한층 더 극소인 상태를 얻을 가능성이 많아진다.
SA 알고리즘은 해를 반복해 개선함으로써, 현재의 해 근방에 있는 해를 임의로 찾는데, 그때에 주어진 함수의 값과 전역 인자 T (온도를 의미한다)가 영향을 준다. 그리고 앞에서 기술한 물리 과정과 비슷한 원리로. T(온도)의 값은 서서히 작아진다. 따라서, 처음에는T가 크기 때문에 해가 크게 변화하지만, T가 0에 가까워짐에 따라 변화가 줄어든다. 처음은 간단하게 비탈을 올라갈 수 있으므로, 등산법으로 문제가 되는 지역 최적점에 빠졌을 때의 대책을 생각할 필요가 없다.
아래 의사코드 ( pseudo-code, 類似)는 담금질 기법을 코드화한 것이다.
P는 P=nk=5*100=500 이 되고 Step 이 500 이 된다. 여기서 Step의 값은 아주 중요한 요소가 된다. 만약 Step이 크게 되면 최적한된 값을 건더 뛰고 넘어가서 최적화의 단계를 가지지 못한다. 여기서 최적화를 예를 들면 만약 무작위의 10개의 돌이 있으면 이 돌을 가장 작은 공간에 배치할 때 가장 효율적으로 배치한 값이 담금질 기법의 최적화 값이 된다. 10개의 돌을 배치하는 방법으로 단순히 10!*10의 경우의 수를 생각해 보겠지만 이것을 한 번씩 다해서 최적의 경우의 수를 얻는다는 것은 너무나 비효율적이고 만약 돌의 갯수가 100000 개라고 하면 이 많은 경우의 수를 하는 것이 불가능하다. 그리고 특정 시간안에 이것을 찾아야 하는 조건이면 거의 불가능하게 된다. 그래서 모든 경우의 수를 하지 않고 이것을 찾는 방법이 바로 담금질 기법이다. 하지만 이 담금질 기법의 문제점이 바로 적당한 Step 사이즈 즉 가장 효율적으로 찾기 위한 돌을 움직여야 하는 갯수를 결정하는 것이다. 본론으로 돌아가서 Step의 사이즈가 작으면 최적화의 방법을 당연히 찾을 것이다. 여러가지 경우의 수를 많이 해보면 당연히 그중에 찾을 확률이 높다. 하지만 Step의 사이즈가 작으면 작을 수록 무작위로 모든 경우 수를 해보는 것과 점점 차이가 없어진다. 그럼 담금질 기법의 의미가 없어진다.
담금질 기법의 원문을 자주 보거나 번역판을 보면 온도라는 말과 Frozen 즉 냉각이라는 말이 자주 나온다. 이것은 이 기법이 담금질 기법과 비슷하기 때문에 같은 개념으로 설명하기 위한 것이지 절대 이것이 정말 온도나 냉각을 의미하는 것이 아니라 경우의 수을 높여서 더 안좋은 결과가 나오는 것을 Uphill 즉 상승 즉 온도의 상승으로 보고, 경우의 수의 조합을 좋게 해서 Downhill 즉 하락 온도의 하락으로 보고 설명을 하는 것이다. 온도가 완전히 떨어진 경우 Downhill의 최저점이 우리가 찾는 최적의 조합이 되는 것이다.
begin Get an initial solution S; // s ← s0; e ← E(s) 초기값을 설정한다. Get an initial temperature T>0; // 초기 온도값을 설정함, 예) T=1000 while not yet "frozen" do // 최적의 경우를 찾을 때 까지 즉 온도가 완전히 내려 갈때 까지 프로그램을 Loop한다.
for 1<= i <= P do // P=nk 즉 Step의 사이즈가 되고 k는 주어진 종류를 n은 우리가 결정하게 된다. 즉 STEP사이즈를 결정하게 된다.
Pick a random neighbor S' of S; // 임의로 선택한 솔루션 S' 과 기존의 솔루션 S를 선택한다.
∆ <- cost(S')-cost(S); // 기존의 솔루션과 새로운 솔루션을 가격의 차 즉 최적화의 값의 차를 만듭니다.
// ∆ <- area(S')-area(S), 돌을 예를 들면 면적이 크기가 효율성의 차이 이다.
/* downhill move */
if ∆ <= 0 then S <- S' // S'의 값이 작으면 즉 차지하는 면적이 작고, 더 효율적으로 배치 되었으면,
// 이것이 현재까지의 최적화가 되고 이것을 온도가 내려간다. Downhill로 표현한다.
/* uphill move */
if ∆ > 0 then S <- S' // S'의 값이 크면 즉 차지하는 면적이 크고, 더 비 효율적으로 배치 되었으면, 이것을 온도가 올라간다.
// uphill로 표현한다.
T <-rT; // 한가지 경우의 수를 처리 했었므로 한 단계 줄어 들게 되면 다음 반복을 진행한다. return S // 프로그램이 마무리 되면 우리가 찾는 최적화의 답을 리턴하고, 정확히 최적화의 답을 찾았으면 이것을 Global Optimization 즉 모든 경우의 수중에서 가장 최적화된 것이다. end
여기서 원래의 SA(Generic Simulated Annealing Algorithm)은 여러가지 찾는 속도나 사용하는 메모리의 경우에 대하여 문제점이 있다. 그래서 여러 박사 과정의 분들이 새로운 기법을 추가하여 더욱 발전되어 기법을 찾아 내었다. 하지만 이 아이디어 자체는 모든 분야에 대하여 적용이 가능한다. 임의의 경우의 수가 많은 경우 정해진 조건에서 대용량의 최적화를 찾을 때 유용하게 사용이 된다.
Daum 카페를 이용해주시는 여러분께 감사 드리며, 티스토리 출처 파일 재생 중단과관련하여 안내 말씀 드립니다.
앞으로 티스토리에 원본 영상 파일을 올리고
동영상 플레이어를 통해 카페쪽에서 재생하는 것이 차단됩니다.
이는 티스토리에 과부하가 발생하여 서비스의 정상 운영에 어려움이 있기 때문이며,
이용자 여러분의 많은 양해 부탁드립니다.
<티스토리 출처 파일 재생 중단 안내>
1. 일자
- 2012년 7월 19일 부터
2. 중단되는 기능
- 동영상 플레이어를 통해 티스토리에 첨부한 동영상 파일의 재생 (신규 및 기존에 등록된 게시글 포함)
3. 사유
티스토리의 첨부 제공을 악용하여 첨부한 동영상을 외부 서비스(카페 및 타 사이트)에서
동영상 플레이어로 업로드하여 연속 재생하는 행위로 인해 티스토리에 과도한 트래픽이 유발되고 있습니다.
이는 티스토리의 이용약관에 위배되는 행위로서,
티스토리의 첨부파일을 외부에서 접근 하는 것이 아닌 '티스토리의 트래픽을 외부사이트에서 이용하는 행위'를
차단 조치하게 되었습니다.
<해당 약관 내용>
티스토리 : 이용약관 11조 1-2항. 회사의 서비스에 게시된 정보를 변경하거나 서비스를 이용하여 얻은 정보를 회사의 사전 승낙 없이 영리 또는 비영리의 목적으로 복제, 출판, 방송 등에 사용하거나 제3자에게 제공하는 행위
※ 아래와 같은 경우의 티스토리 첨부파일 접근은 정상적으로 이용 가능합니다.
- 티스토리에 zip 압축 첨부파일을 첨부 후 해당 경로를 카페에 올려서 다운로드 하려는 경우 -> 정상적으로 다운로드 됨. - 티스토리에 첨부한 이미지를 복사하여 카페에 붙여넣기 할 경우 -> 정상적으로 보여짐. - 티스토리에 첨부한 이미지 경로를 카페에서 클릭할 경우 -> 정상적으로 다운로드 됨. - 티스토리에 첨부한 플래시 파일 경로를 카페에서 클릭할 경우 -> 정상적으로 다운로드 됨
※ 다음 블로그는 해당 되지 않습니다.(5시 40분 글 수정)
Daum 카페는 앞으로도 더 좋은 서비스를 제공해 드리기 위해 최선을 다하겠습니다.
감사합니다.
이로인하여.. 플레베이터가 영영 필요 없어질 수 있습니다..
일단.. 지켜보기로 하였습니다..
최악의 경우, 故Flevator가 될 수 있습니다..
안녕하세요. 말씀하신 외부사이트(베스티즈, 인스티즈, 카페 등)에서 티스토리의 동영상을 플레이어로 재생하는 행위는 약관 위배이자, 과도한 트래픽 유발로 정상적인 사용자들에게 피해를 주고 있습니다.
현재는 모든 외부사이트를 제한하고 있지는 않습니다. 과도한 트래픽을 유발하는 몇몇 사이트만 제한 중입니다. 그러나 기본적으로 해당 방법이 약관위배이기 때문에 필요하다면 전체 외부 사이트를 제한할 수도 있습니다.
w00tw00t.at.blackhats.romanian.anti-sec:)" failed (2: 지정된 파일을 찾을 수 없습니다), client: 208.109.xxx.xxxx, server: -, request: "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1"
확인해보니 해당 아이피로, 각종 폴더 파일이 존재하는지 확인했습니다.
phpmyadmin 버전별 폴더, web, sql 등등 여러 패턴으로 취약점을 찾습니다.
바로 ZmEu라는 서버 스캐닝 툴입니다.
제한하는 방법은 많이 알려진방법으로 IP를 차단 후, 다른 php로 redirect.
두번째로는 rewrite url기능을 사용해, phpmyadmin의 접근을 제한하거나, 외부에서 필요한 폴더.파일만 허용하기
또, ZmEu라는 User-Agent로 공격을 시도하기 때문에, zmeu를 탐지하여 제한하시면 됩니다.
codiz .
감사합니다. 파일노리 가입해서 이것저것 받기 시작한 뒤로 idle 상태인데도 하드가 계속 벅벅 긁혀대서 뭔가 했더니-_-;;
저는 위디스크는 안 쓰는데 작성해주신 프로그램이 Wedisk\winnetplus.exe를 삭제하려다가 죽어버리네요.. 예외처리가 필요할 것 같긴 한데 여튼 좋은 프로그램 감사해요!
EinSteins .
궁금한것이 있습니다. 가능하다면 방법이 알고싶구요.
롤 현재 진행중인 게임의 시간을 알고싶습니다.
궂이 다른사람이 진행하고있는 게임 시간이 아니더라도
현재 자기가 진행중인 게임의 시간을 감지하고 싶습니다. 방법이 없을까요??
이것까지 어렵다라고 한다면 딱 게임이 시작되는 시점이라도 감지하고 싶습니다.
C++ 코딩만 가능한데.. 자문을 구해봅니다.
devflow
안녕하세요. 그 점에대해선 저도 잘 모르고 해보지 않아서 답변들 드리기 힘듭니다. ㅠ
123 .
윈넷플러스 설치 막아버리면 다음에 파일노리에서 다운할때 다시 풀어야 하나요?
존내욱 .
감사합니다. 유용하게 썼어요!
알 하사드 .
감사합니다!!!
ㄴㅇ .
고맙습니다ㅏ. 진짜 잘 썼어용
식몽인 .
감사합니다.
좋은 자료에요.
as .
정말 감사합니다! 뭔가가 계속 cpu 성능을 먹어버리길레 걱정했는데 도움됬습니다
ㅁㄴ .
와!! 감사합니다
파일노리는 쓰는데 파일노릴 지울 순 없고 그리드 프로그램만 딲 지우고 싶었는데
이게 있었네요!! 잘 썻어요
da .
설치하고 삭제 눌렀는데 삭제 도중 오류가 뜬다고 하네요 ㅠㅠ 어떻게 된거죠
Newcho .
감사합니당!!
ㅇㅇ .
감사합니다! 덕분에 좋은 지식얻고갑니다
컴터cpu가 계속 90퍼길래 이상해서 봣더니;;
다시한번 정말 감사드립니다
1213 .
윈8.1에서 계속 자동설치 예방과정에서 오류가 납니다....
devflow
관리자의 권한을 실행하셨나요?
해당 프로그램의 개발 환경이 윈도우 8.1 Pro인지라.. 아니면 다른 안티바이러스를 잠시 해제해보세요.
혼매직 .
퐐라한광산 bb.com