作者takua624 (TAKUA)
看板EE_DSnP
標題[問題] HW6基本AIG格式問題
時間Fri Dec 9 23:30:19 2011
原本以為AIG就快要不難理解了,結果還是不行參透。
1.以SPEC裡面第六頁那個線路為例,
M = 10的意思不是"10個variable",而是"variable 最大到10"...嗎?
所以只要最大那個是10,中間缺了4也沒關係...嗎?
既然這樣,3號頭上伸出來的11是怎麼回事呢?
2. ./tests.fraig/opt01.aag
M=2,那後面怎麼會既有一個input、一個output,還有一個gate呢?
而且cirp的結果也是"有三個東西"
不曉得我對這個aag檔的解讀是否正確:
aag 2 1 0 1 1 //variable編號最大到2,有一個PI、一個PO、一個AIG
2 // 有一個PI編號是1
4 // 有一個PO編號是2
4 0 2 // 有一個AIG編號是2,它的輸出是 CONST 0 & PI 1
這樣...所以PO可以跟AIG同樣編號...嗎?
然後PO 3是怎麼來的?明明不可以有三號不是嗎?
--
春
苑樹雪菜萌苗,
雀兒喜上夏枝梢;
藍眼望盡
黃泉路,只盼儷人一
美笑。
長巾初解投送抱,金
珠麗葉賀新好;
神代仙眷且羨嫉,長伴相隨誓到老。
靜馬千華留秋晚,冬風不止
三鄉道;
紅枝立約攜手情,今此空餘泣嚎啕。
姬宮千歌音悠悠,
櫻井奏樂聲裊裊;奈何天令伊人變,
飛離斯愛離斯去。
結城AIRA→ 悲慟獨泣無人應,
白晝夢盡皆空語。
←美鄉あき
Kalafina→ 紅月旋響戚
音樂,黯然步上
鎮魂旅。
←飛 蘭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.147.96
1F:→ Helicoid:原PO可以再看一次講義和相關資料 再來決定要不要發文 12/09 23:34
嗯,又看過一次了,大概吧。是指這個嗎?
http://fmv.jku.at/aiger/FORMAT
我決定還是繼續問吧。
看了講義與參考資料後,搞懂了PI、PO跟AIG可以互相重複
但還是不懂11號跟3號是怎麼來的。他們已經超過MAX variable的編號了吧。
2F:推 kickpp:我記得M就是var個數才是 literal跟varible不一樣 12/10 00:08
3F:→ kickpp:一個varible會有正負所以有兩個literal 我的理解是這樣 12/10 00:09
4F:→ takua624:M就是VAR個數的話,opt01 M=2,可是東西有三個耶 12/10 00:10
5F:→ takua624:對,一個VAR有兩個LITERAL 12/10 00:10
6F:推 vuluy:output不用編號 12/10 00:22
7F:推 kickpp:推樓上 12/10 00:39
8F:推 ric2k1:1. M 是指最大 variables 個數 (也是 varID),中間缺沒關係 12/10 01:26
9F:→ ric2k1:2. 11 & 3 是 literal ID, which is 2*varId or 2*varID+1 12/10 01:27
10F:→ ric2k1:3. PO 不用有自己的 varID, 因為他一定是從別的 gate接來的 12/10 01:28
謝謝教授。可是SPEC上面那個線路裡面,"11"如果是literal,指的應該是5號吧?
但是他是連到3號GATE的OUTPUT耶!
然後對這個aag:
aag 2 1 0 1 1
2
4
4 1 2
cirg 3 竟然有東西?明明沒有3號variable啊?
如果3是一個literal,那應該是指1號variable,但並不是
這個神秘3是2號GATE的輸出不是嗎?
11F:→ e124553423:程式裡PO好像會從M+1開始編號 12/10 07:56
12F:→ e124553423:可能是為了方便?(但是input還是要接對) 12/10 07:56
嗯,這樣就還算能看出道理了,感謝樓上!
所以以opt01來說,神秘3號的確是一個variable,指的是"第[3-M]個PO",也就是第一個PO
然後要找第一個PO就要看aag的第三行那個"4",這個4是一個literal
所以就知道了第1個PO是接在2號variable的輸出端,且沒有反相
然後2號variable是一個AIG...[下略]
然後SPEC的神秘11例子裡,11也是一個額外的variable,表示第一個PO
不過這樣跟教授說的"PO不用有自己的varID"好像有點衝突。
是說在AIG的規則裡面PO沒有自己的varID,但在這個程式裡為了方便,還是幫它編號吧?
※ 編輯: takua624 來自: 61.57.147.96 (12/10 09:04)
13F:推 ric2k1:從 1 號開始編 var ID 是因為 0 號留給 const 0 12/10 11:05
14F:→ ric2k1:PO 的 ID 是要在程式裡頭自己編的,為了 report 區別方便 12/10 11:06
15F:→ ric2k1:否則 cirg 3 你就不知道應該要 report 哪一個了 12/10 11:07
16F:推 ric2k1:關於 PO 的 ID,請見 spec 第四頁 1.7 12/10 11:09