250 likes | 370 Vues
This document explores the SAT encoding of the induced subgraph isomorphism problem, a well-known NP-complete problem. It highlights its applications in diverse fields such as chemical compound analysis, protein-interaction networks, social networks, and circuit design. The key variables and mappings are defined, including constraints for valid mappings between nodes in smaller and larger graphs. Additionally, the text delves into optimization techniques using redundant clauses and discusses common challenges in solving such problems, showcasing empirical results and significant contributors to this field.
E N D
Assignment 2 Observations Mausam
The SAT Encoding • Induced Subgraph Isomorphism • NP complete problem • Applications: similarities between chemical compounds; protein-interaction networks, social networks, circuit design.. • Variables • X(i,j) denotes that ith node (in smaller graph) mapped to jth node (in larger graph) • Self edge: If node i has a self-edge and node j doesn’t • remove X(i,j) • Self-edge: If node j has a self-edge and node i doesn’t • remove X(i,j)
The SAT encoding • Each node maps to exactly one other node • X(i,1) X(i,2) X(i,3)… X(i,n) • Pairs of X(i,1) X(i,2); X(i,1) X(i,3) … • Each node in larger graph maps to at most one node • Pairs of X(1,j)X(2,j); X(1,j)X(3,j); … • Disallowed pairs of mappings • If edge(i1,i2) and no edge(j1,j2): X(i1,j1)X(i2,j2); • If no edge(i1,i2) and edge(j1,j2): X(i1,j1)X(i2,j2); • If edge(i1,i2) and edge(j2,j1): X(i1,j1)X(i2,j2); • Overall – O(nm) vars, O(n2m2) clauses
Fun optimizations U S Yes. A mapping is: M(A) = S, M(B) = Q, M(C) = R The edges from P to other nodes don‘t matter since no node in G got mapped to P. • Degree trick: Can B ever map to P/S/R? • No: Indegree of B is greater than indegree of P/S/R • Remove X(B,P), X(B,S), X(B,R) • Common neighbor constraint: Can A-U and C-T? • They both don’t have an edge • They both have outdegrees 1 • No: because AC have common neighbor 1; UT 0 • X(A,U)X(C,T) • … A C P R T B Q
Observations • People solved ~100+80 node problems… • For an NP hard problem that’s not too bad, is it? • Paresh’s observations • adding redundant clauses helps miniSAT for tough problems.
Best Competitors • Kim Wallmark • Alan Ludwig • HaroonBarri
Assignment 3 Discussion Mausam
BlackJack: State Space • MinSum: the minimum sum of the player's hand so far. • NumAces: the number of Aces in the player's hand so far. • dMinSum: the minimum sum of the dealer's hand so far. • dNumAces: the number of Aces in the dealer's hand so far. • isTwoCards: a Boolean that represents that the player's hand has just two cards so far. • isBlackJack: a Boolean that represents that the player got a BlackJack. • pair: has value between 0 and 10. Zero indicates that the player doesn't have a pair. Any other value i indicates that the player has two cards of value i. • turn: a Boolean to indicate whether it is player's turn or dealer's.
BlackJack: Action Space • Stand: Turn = 0 • Hit: get a new card with prob… update minSum, numAces, isTwoCard, pair • Double: get a new card, update minSum, numAces, etc.; • Turn = 1. • Allowed when isTwoCard = 1 • Default: run default dealer policy. • Allowed with turn = 1 • Split: tricky! • Allowed with pair > 0; isTwoCard = 1
BlackJack Split (say only three cards) • Q((c,c), SPLIT) • 2p1p1V(c,1) • p1p2V(c,1) + p1p2V(c,2) • p1p3V(c,1) + p1p3V(c,3) • p2p1V(c,1) + p2p1V(c,2) • 2p2p2V(c,2) • p2p3V(c,3) + p2p3V(c,3) • p1p3V(c,1) + p1p3V(c,3) • p2p3V(c,3) + p2p3V(c,3) • 2p3p3V(c,3) • (c,c) • [(c,1) & (c,1)] p1p1 • [(c,1) & (c,2)] p1p2 • [(c,1) & (c,3)] p1p3 • [(c,2) & (c,1)] p2p1 • [(c,2) & (c,2)] p2p2 • [(c,2) & (c,3)] p2p3 • [(c,3) & (c,1)] p3p1 • [(c,3) & (c,2)] p3p2 • [(c,3) & (c,3)] p3p3 2p1(p1+p2+p3) = 2p1
Value of Terminal States • If isTwoCards = 1, minSum=11, numAces = 1 • Return 1.5 • If minSum>21 • Return -1 • If minSum < 21 and dMinSum > 21 • Return 1 • … • …
Can you solve it with Expectimax? • No • Because there is possibility of infinite loop • Values are well-formed • Loop of size n becomes less probable as n increases • (see beginning example from lecture on MDPs) • EXCEPTION: Q(1010, split) for p> 0.5 • Solution: use Value Iteration/Policy Iteration
Optimizations • Dealer’s policy is fixed. So, run the Markov chain ahead of time to generate a table • Pr(dealer gets 17|first card=c) • Pr(dealer gets 18|first card=c) • Pr(dealer gets 19|first card=c) • Pr(dealer gets 20|first card=c) • Pr(dealer gets 21|first card=c) • Pr(dealer busts|first card=c) • Remove dMinSum, dNumAces, turn. • Add dFirstCard • Remove Default action • Change the equations for double/stand based on computed probabilities
Comments • numAces – not required. Convert to hasAce • Only first ace is relevant. After that each ace = 1 • Handle infinite splits by allowing say, 10 splits • Should work fine in practice • Modification: have the bet amount in state space • Needn’t multiply by 2 in equations for doubling • Need to use this info when computing terminal rewards
Difference in solutions? • In real BJ: Dealer and player BJ is a push • In our BJ: player wins • ??? • In real BJ: there is a 4/6/8 card deck • In our BJ: infinite cards • You can easily modify code to handle 1st case • 2nd case: Monte carlo sampling!
Should you play our BlackJack? • Expected reward before game starts • SUM[Pr(game)*expected reward of the game] • Deal three cards… and use V(s) to compute exp reward • My expected reward: $0.058 • Yes! We should play the game
Discussion Mausam
Followup Courses • 546 Machine Learning/Data Mining • 515 Probabilistic Graphical Models • 517 Natural Language Processing • ??? AI/Statistics for Big Data • 571 Robotics • 579 Intelligent control • 574 Special Topics in AI • 528 Computational Neuroscience • 510 Human computer Interaction
Final Exam • 50% objective • True/false • Multiple choice • Fill in the blanks • Match the following… • 25% short answer questions • 1 word – 5 line responses… • opinions/strengths/weaknesses/etc… • 25% Problem solving • Problem modeling; short calculations…
Why do an exam? • Goal: revise and analyze the whole course • Expected preparation time • ~1 day • Go over lecture slides • Read parts of the notes that are unclear…
What worked • Programming Assignments • You hated them • You loved them • You learned through them • Written Assignments(?) • Forced us to be regular • Classes • I absolutely enjoyed the interaction! • Emails/bulletin boards • Videos(?)
What didn’t work • Programming environment • People didn’t know unix • People didn’t know Java! • Packed • Once someone got behind, it got tough to recover • Workload
Thanks • To all of you • who contributed to helping each other through newsgroup and other questions • who asked terrific questions in class • who gave regular feedback on class, assignments, grading, organization