X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=08-word-chains%2Fexplore-word-chain-4.ipynb;h=d16966dde3f6f16f187a052b47daf216403462c0;hb=a3695711a670f04d92097fc0d664eba25685ebdf;hp=da9196ad34d3e3269db135f8df7d4a1045d5b21d;hpb=f8a31f9a1391dbafc69ea6042dd213a3baa7a64c;p=ou-summer-of-code-2017.git diff --git a/08-word-chains/explore-word-chain-4.ipynb b/08-word-chains/explore-word-chain-4.ipynb index da9196a..d16966d 100644 --- a/08-word-chains/explore-word-chain-4.ipynb +++ b/08-word-chains/explore-word-chain-4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": { "collapsed": true }, @@ -16,10 +16,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "data": { @@ -27,22 +25,20 @@ "2336" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "words = [w.strip() for w in open('08-offices.txt').readlines()]\n", + "words = [w.strip() for w in open('08-rooms.txt').readlines()]\n", "len(words)" ] }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { @@ -59,7 +55,7 @@ " 'achy']" ] }, - "execution_count": 6, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -70,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -87,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "collapsed": true }, @@ -102,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": { "collapsed": true }, @@ -114,10 +110,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false - }, + "execution_count": 8, + "metadata": {}, "outputs": [ { "data": { @@ -125,7 +119,7 @@ "['able']" ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -136,10 +130,8 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false - }, + "execution_count": 9, + "metadata": {}, "outputs": [ { "data": { @@ -147,7 +139,7 @@ "['axle', 'abbe', 'ably']" ] }, - "execution_count": 11, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -158,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -171,10 +163,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, + "execution_count": 11, + "metadata": {}, "outputs": [ { "data": { @@ -182,7 +172,7 @@ "0" ] }, - "execution_count": 13, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -193,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": { "collapsed": true }, @@ -210,10 +200,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": false - }, + "execution_count": 13, + "metadata": {}, "outputs": [ { "data": { @@ -221,7 +209,7 @@ "[['abbe', 'able']]" ] }, - "execution_count": 15, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -232,10 +220,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": false - }, + "execution_count": 14, + "metadata": {}, "outputs": [ { "data": { @@ -243,7 +229,7 @@ "[['abbe', 'able', 'axle'], ['abbe', 'able', 'ably']]" ] }, - "execution_count": 16, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -254,10 +240,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": false - }, + "execution_count": 15, + "metadata": {}, "outputs": [ { "data": { @@ -265,7 +249,7 @@ "[['abbe', 'able', 'ably', 'ally']]" ] }, - "execution_count": 17, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -276,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -302,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -330,10 +314,8 @@ }, { "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false - }, + "execution_count": 18, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -352,7 +334,7 @@ "['abbe', 'able', 'ably', 'ally']" ] }, - "execution_count": 20, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -363,7 +345,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": { "collapsed": true }, @@ -389,10 +371,8 @@ }, { "cell_type": "code", - "execution_count": 22, - "metadata": { - "collapsed": false - }, + "execution_count": 20, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -411,7 +391,7 @@ "['abbe', 'able', 'ably', 'ally']" ] }, - "execution_count": 22, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -422,10 +402,8 @@ }, { "cell_type": "code", - "execution_count": 23, - "metadata": { - "collapsed": false - }, + "execution_count": 21, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -1113,7 +1091,13 @@ "['cart', 'part', 'park', 'pars']\n", "['cart', 'part', 'pars', 'bars']\n", "['cart', 'part', 'pars', 'cars']\n", - "['cart', 'part', 'pars', 'ears']\n", + "['cart', 'part', 'pars', 'ears']\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "['cart', 'part', 'pars', 'jars']\n", "['cart', 'part', 'pars', 'mars']\n", "['cart', 'part', 'pars', 'oars']\n", @@ -1567,7 +1551,7 @@ "['cart', 'cant', 'cans', 'vans']" ] }, - "execution_count": 23, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1578,10 +1562,8 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": false - }, + "execution_count": 22, + "metadata": {}, "outputs": [ { "data": { @@ -1589,7 +1571,7 @@ "['cart', 'cant', 'cane', 'vane']" ] }, - "execution_count": 24, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1600,10 +1582,8 @@ }, { "cell_type": "code", - "execution_count": 25, - "metadata": { - "collapsed": false - }, + "execution_count": 23, + "metadata": {}, "outputs": [ { "data": { @@ -2188,7 +2168,7 @@ " 'vane']" ] }, - "execution_count": 25, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -2199,7 +2179,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": { "collapsed": true }, @@ -2227,10 +2207,8 @@ }, { "cell_type": "code", - "execution_count": 27, - "metadata": { - "collapsed": false - }, + "execution_count": 25, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -2248,7 +2226,7 @@ "['cart', 'cant', 'cane', 'vane']" ] }, - "execution_count": 27, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -2259,7 +2237,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "metadata": { "collapsed": true }, @@ -2289,10 +2267,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": { - "collapsed": false - }, + "execution_count": 27, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -2310,7 +2286,7 @@ "['cart', 'cant', 'cane', 'vane']" ] }, - "execution_count": 29, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2330,10 +2306,8 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": false - }, + "execution_count": 28, + "metadata": {}, "outputs": [ { "data": { @@ -2341,7 +2315,7 @@ "94" ] }, - "execution_count": 30, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -2367,10 +2341,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": { - "collapsed": false - }, + "execution_count": 29, + "metadata": {}, "outputs": [ { "data": { @@ -2378,7 +2350,7 @@ "2204" ] }, - "execution_count": 31, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2389,10 +2361,8 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": false - }, + "execution_count": 30, + "metadata": {}, "outputs": [ { "data": { @@ -2400,7 +2370,7 @@ "1" ] }, - "execution_count": 32, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -2411,9 +2381,8 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "metadata": { - "collapsed": false, "scrolled": true }, "outputs": [ @@ -2423,7 +2392,7 @@ "Counter({1: 75, 2: 6, 3: 7, 4: 2, 5: 2, 6: 1, 2204: 1})" ] }, - "execution_count": 33, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -2434,10 +2403,8 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false - }, + "execution_count": 32, + "metadata": {}, "outputs": [ { "data": { @@ -2445,7 +2412,7 @@ "[5]" ] }, - "execution_count": 34, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -2456,10 +2423,8 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "collapsed": false - }, + "execution_count": 33, + "metadata": {}, "outputs": [ { "data": { @@ -2467,7 +2432,7 @@ "[{'abbe', 'able', 'ably', 'ally', 'axle'}]" ] }, - "execution_count": 35, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -2478,10 +2443,8 @@ }, { "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": false - }, + "execution_count": 34, + "metadata": {}, "outputs": [ { "data": { @@ -2489,7 +2452,7 @@ "['buns', 'bunk', 'punk']" ] }, - "execution_count": 36, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2500,7 +2463,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "metadata": { "collapsed": true }, @@ -2515,7 +2478,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -2538,7 +2501,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 37, "metadata": { "collapsed": true }, @@ -2549,35 +2512,33 @@ }, { "cell_type": "code", - "execution_count": 40, - "metadata": { - "collapsed": false - }, + "execution_count": 38, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "['bops', 'bogs', 'begs', 'bees', 'byes', 'eyes', 'eyed']\n", - "['foal', 'foil', 'fail']\n", - "['bush', 'bash', 'base', 'bale', 'ball', 'boll']\n", - "['rift', 'lift', 'life', 'live', 'give', 'gave']\n", - "['club', 'clue', 'flue', 'flee', 'fled', 'pled', 'pied', 'lied', 'lien', 'mien']\n", - "['rung', 'dung', 'ding', 'dins', 'dies', 'lies', 'lien']\n", - "['baas', 'bags', 'bugs', 'bums', 'sums', 'sumo']\n", - "['fits', 'bits', 'bins', 'bind']\n", - "['lids', 'bids', 'bias', 'boas', 'boat', 'boot', 'soot', 'snot', 'snob']\n", - "['cake', 'came', 'cams', 'caws', 'cows', 'tows']\n", - "['tort', 'toot', 'trot', 'troy', 'tray', 'tram', 'cram']\n", - "['sews', 'pews', 'pees', 'peed', 'pied']\n", - "['lack', 'hack', 'hawk', 'haws', 'hows', 'tows']\n", - "['dots', 'dons', 'dens', 'dent', 'pent', 'pest', 'peso']\n", - "['ekes', 'eyes', 'byes', 'bees', 'beet', 'bent', 'lent', 'lept']\n", - "['ruin', 'rain', 'gain', 'grin', 'grid', 'arid', 'acid', 'aced', 'iced']\n", - "['sing', 'sins', 'bins', 'bias', 'bras', 'bray', 'tray', 'trap']\n", - "['lira', 'lire', 'wire', 'wise', 'wish']\n", - "['gash', 'cash', 'case', 'cape', 'rape']\n", - "['crop', 'coop', 'coot', 'loot', 'loft']\n" + "['drip', 'grip', 'grit', 'gait', 'bait', 'bast', 'base', 'babe']\n", + "['cape', 'cope', 'dope', 'dole', 'dolt']\n", + "['laze', 'late', 'lats', 'pats']\n", + "['zest', 'best', 'bust', 'buss', 'buds', 'suds']\n", + "['gape', 'gaps', 'paps', 'peps', 'pees', 'peel']\n", + "['yogi', 'yoga', 'toga', 'togs', 'tors', 'tore']\n", + "['flux', 'flex', 'fled', 'feed', 'fees', 'foes', 'toes', 'toys']\n", + "['bike', 'bake', 'base', 'bast', 'best', 'beet', 'feet']\n", + "['tows', 'lows', 'laws', 'lams', 'lame']\n", + "['jock', 'pock', 'pork', 'pore', 'pure']\n", + "['tabu', 'tabs', 'cabs', 'caws', 'cows', 'cowl', 'coil', 'coif']\n", + "['reek', 'week', 'wees', 'weds', 'wads', 'wadi']\n", + "['gene', 'gone', 'gong', 'song']\n", + "['mete', 'mate', 'bate', 'bats', 'baas', 'bras', 'brag', 'crag', 'cram']\n", + "['gnus', 'anus', 'ants', 'acts', 'aces', 'ayes', 'byes', 'bees', 'been', 'teen']\n", + "['comb', 'come', 'core', 'corn', 'torn', 'tern']\n", + "['ouch', 'much', 'muck', 'buck', 'beck', 'beak', 'beat', 'teat', 'that', 'than', 'khan']\n", + "['rids', 'reds', 'reps', 'peps', 'peas', 'peal', 'deal']\n", + "['calm', 'balm', 'bald', 'bold', 'bolt', 'bout', 'tout']\n", + "['toed', 'toad', 'goad', 'grad', 'gray', 'grey', 'grew']\n" ] } ], @@ -2589,10 +2550,8 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": { - "collapsed": false - }, + "execution_count": 39, + "metadata": {}, "outputs": [ { "data": { @@ -2600,7 +2559,7 @@ "['cops', 'coos', 'coon', 'coin', 'chin', 'thin', 'this', 'thus', 'thug']" ] }, - "execution_count": 41, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -2611,10 +2570,8 @@ }, { "cell_type": "code", - "execution_count": 42, - "metadata": { - "collapsed": false - }, + "execution_count": 40, + "metadata": {}, "outputs": [ { "data": { @@ -2622,7 +2579,7 @@ "[2204]" ] }, - "execution_count": 42, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -2633,10 +2590,8 @@ }, { "cell_type": "code", - "execution_count": 73, - "metadata": { - "collapsed": false - }, + "execution_count": 41, + "metadata": {}, "outputs": [ { "data": { @@ -2644,7 +2599,7 @@ "[2204]" ] }, - "execution_count": 73, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -2655,10 +2610,8 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": { - "collapsed": false - }, + "execution_count": 42, + "metadata": {}, "outputs": [ { "data": { @@ -2666,7 +2619,7 @@ "['hate', 'have', 'hove', 'love']" ] }, - "execution_count": 43, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -2677,10 +2630,8 @@ }, { "cell_type": "code", - "execution_count": 44, - "metadata": { - "collapsed": false - }, + "execution_count": 43, + "metadata": {}, "outputs": [ { "data": { @@ -2688,7 +2639,7 @@ "['wars', 'ware', 'wave', 'wove', 'love']" ] }, - "execution_count": 44, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -2699,17 +2650,15 @@ }, { "cell_type": "code", - "execution_count": 45, - "metadata": { - "collapsed": false - }, + "execution_count": 44, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n", - "Wall time: 850 µs\n" + "Wall time: 212 µs\n" ] }, { @@ -2718,7 +2667,7 @@ "5" ] }, - "execution_count": 45, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -2729,17 +2678,15 @@ }, { "cell_type": "code", - "execution_count": 46, - "metadata": { - "collapsed": false - }, + "execution_count": 45, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n", - "Wall time: 353 µs\n" + "Wall time: 203 µs\n" ] }, { @@ -2748,7 +2695,7 @@ "5" ] }, - "execution_count": 46, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -2759,17 +2706,15 @@ }, { "cell_type": "code", - "execution_count": 47, - "metadata": { - "collapsed": false - }, + "execution_count": 46, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 76 ms, sys: 0 ns, total: 76 ms\n", - "Wall time: 75.1 ms\n" + "CPU times: user 24 ms, sys: 0 ns, total: 24 ms\n", + "Wall time: 23.2 ms\n" ] }, { @@ -2778,7 +2723,7 @@ "404" ] }, - "execution_count": 47, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -2789,9 +2734,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "metadata": { - "collapsed": false + "collapsed": true }, "outputs": [], "source": [ @@ -2800,21 +2745,36 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 332 ms, sys: 0 ns, total: 332 ms\n", + "Wall time: 331 ms\n" + ] + }, + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "%time len(bfs_search_closed('wars', 'love'))" ] }, { "cell_type": "code", - "execution_count": 50, - "metadata": { - "collapsed": false - }, + "execution_count": 49, + "metadata": {}, "outputs": [ { "data": { @@ -2822,7 +2782,7 @@ "['fear', 'feat', 'fest', 'lest', 'lost', 'lose', 'love']" ] }, - "execution_count": 50, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -2833,10 +2793,8 @@ }, { "cell_type": "code", - "execution_count": 51, - "metadata": { - "collapsed": false - }, + "execution_count": 50, + "metadata": {}, "outputs": [ { "data": { @@ -2844,7 +2802,7 @@ "['fail', 'fall', 'pall', 'pals', 'pass']" ] }, - "execution_count": 51, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -2855,10 +2813,8 @@ }, { "cell_type": "code", - "execution_count": 52, - "metadata": { - "collapsed": false - }, + "execution_count": 51, + "metadata": {}, "outputs": [ { "data": { @@ -2866,7 +2822,7 @@ "['star', 'soar', 'boar', 'boor', 'boon', 'born']" ] }, - "execution_count": 52, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -2877,10 +2833,8 @@ }, { "cell_type": "code", - "execution_count": 53, - "metadata": { - "collapsed": false - }, + "execution_count": 52, + "metadata": {}, "outputs": [ { "data": { @@ -2898,7 +2852,7 @@ " 'pass']" ] }, - "execution_count": 53, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -2909,10 +2863,8 @@ }, { "cell_type": "code", - "execution_count": 54, - "metadata": { - "collapsed": false - }, + "execution_count": 53, + "metadata": {}, "outputs": [ { "data": { @@ -2933,7 +2885,7 @@ " 'past']" ] }, - "execution_count": 54, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -2944,10 +2896,8 @@ }, { "cell_type": "code", - "execution_count": 55, - "metadata": { - "collapsed": false - }, + "execution_count": 54, + "metadata": {}, "outputs": [ { "data": { @@ -2955,7 +2905,7 @@ "[1]" ] }, - "execution_count": 55, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -2966,10 +2916,8 @@ }, { "cell_type": "code", - "execution_count": 56, - "metadata": { - "collapsed": false - }, + "execution_count": 55, + "metadata": {}, "outputs": [ { "data": { @@ -2977,7 +2925,7 @@ "[2204]" ] }, - "execution_count": 56, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -2988,16 +2936,14 @@ }, { "cell_type": "code", - "execution_count": 57, - "metadata": { - "collapsed": false - }, + "execution_count": 56, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 loop, best of 3: 12.3 s per loop\n" + "1 loop, best of 3: 8.08 s per loop\n" ] } ], @@ -3008,16 +2954,14 @@ }, { "cell_type": "code", - "execution_count": 58, - "metadata": { - "collapsed": false - }, + "execution_count": 57, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 loop, best of 3: 200 ms per loop\n" + "10 loops, best of 3: 131 ms per loop\n" ] } ], @@ -3028,10 +2972,8 @@ }, { "cell_type": "code", - "execution_count": 59, - "metadata": { - "collapsed": false - }, + "execution_count": 58, + "metadata": {}, "outputs": [ { "data": { @@ -3048,7 +2990,7 @@ " 'exit']" ] }, - "execution_count": 59, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -3059,55 +3001,29 @@ }, { "cell_type": "code", - "execution_count": 60, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{2: [['exes', 'exec'], ['rush', 'tush'], ['wile', 'wily'], ['shoo', 'shot']],\n", - " 3: [['bins', 'fink'], ['waft', 'wand'], ['heel', 'jell'], ['tent', 'west']],\n", - " 4: [['yore', 'polo'], ['hale', 'case'], ['horn', 'look'], ['tang', 'nuns']],\n", - " 5: [['crab', 'baas'], ['yens', 'dead'], ['work', 'paps'], ['tune', 'zaps']],\n", - " 6: [['mist', 'sold'], ['bats', 'sort'], ['leek', 'mads'], ['loop', 'dome']],\n", - " 7: [['rime', 'hoof'], ['grim', 'reed'], ['lies', 'eave'], ['ties', 'whiz']],\n", - " 8: [['drag', 'lied'], ['ages', 'yawl'], ['earl', 'deal'], ['gins', 'scab']],\n", - " 9: [['tyre', 'swum'], ['dike', 'flux'], ['hour', 'laze'], ['trek', 'bait']],\n", - " 10: [['ides', 'rasp'], ['egos', 'racy'], ['shim', 'ills'], ['bark', 'arty']],\n", - " 11: [['ergo', 'apex'], ['whey', 'owns'], ['anew', 'rapt'], ['thug', 'bate']],\n", - " 12: [['ream', 'imps'], ['meat', 'umps'], ['daze', 'knee'], ['clay', 'over']],\n", - " 13: [['oxen', 'blab'], ['blip', 'omen'], ['twig', 'ibis'], ['chew', 'umps']],\n", - " 14: [['amen', 'blip'], ['umps', 'futz'], ['amps', 'glib'], ['chum', 'whys']],\n", - " 15: [['thug', 'ibis']]}" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 68, + "metadata": {}, + "outputs": [], "source": [ - "solutions = {}\n", - "for _ in range(10000):\n", - " start, goal = random.sample(bigset, 2)\n", - " solution = astar_search_closed(start, goal)\n", - " sl = len(solution)\n", - " if sl not in solutions:\n", - " solutions[sl] = []\n", - " if len(solutions[sl]) < 4:\n", - " solutions[sl].append([start, goal])\n", + "# solutions = {}\n", + "# for _ in range(10000):\n", + "# start, goal = random.sample(bigset, 2)\n", + "# solution = astar_search_closed(start, goal)\n", + "# sl = len(solution)\n", + "# if sl not in solutions:\n", + "# solutions[sl] = []\n", + "# if len(solutions[sl]) < 4:\n", + "# solutions[sl].append([start, goal])\n", " \n", - "# if len(solution) >= 10:\n", - "# solutions += [solution]\n", + "# # if len(solution) >= 10:\n", + "# # solutions += [solution]\n", " \n", - "solutions" + "# solutions" ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 60, "metadata": { "collapsed": true }, @@ -3132,16 +3048,14 @@ }, { "cell_type": "code", - "execution_count": 66, - "metadata": { - "collapsed": false - }, + "execution_count": 61, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 loop, best of 3: 487 ms per loop\n" + "1 loop, best of 3: 352 ms per loop\n" ] } ], @@ -3152,17 +3066,15 @@ }, { "cell_type": "code", - "execution_count": 67, - "metadata": { - "collapsed": false - }, + "execution_count": 62, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 768 ms, sys: 0 ns, total: 768 ms\n", - "Wall time: 768 ms\n" + "CPU times: user 452 ms, sys: 0 ns, total: 452 ms\n", + "Wall time: 449 ms\n" ] }, { @@ -3171,7 +3083,7 @@ "14" ] }, - "execution_count": 67, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -3182,17 +3094,15 @@ }, { "cell_type": "code", - "execution_count": 68, - "metadata": { - "collapsed": false - }, + "execution_count": 63, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 176 ms, sys: 0 ns, total: 176 ms\n", - "Wall time: 176 ms\n" + "CPU times: user 92 ms, sys: 0 ns, total: 92 ms\n", + "Wall time: 91.5 ms\n" ] }, { @@ -3201,7 +3111,7 @@ "15" ] }, - "execution_count": 68, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } @@ -3212,17 +3122,15 @@ }, { "cell_type": "code", - "execution_count": 69, - "metadata": { - "collapsed": false - }, + "execution_count": 64, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 72 ms, sys: 0 ns, total: 72 ms\n", - "Wall time: 70.6 ms\n" + "CPU times: user 32 ms, sys: 0 ns, total: 32 ms\n", + "Wall time: 31.4 ms\n" ] }, { @@ -3231,7 +3139,7 @@ "14" ] }, - "execution_count": 69, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -3242,17 +3150,15 @@ }, { "cell_type": "code", - "execution_count": 70, - "metadata": { - "collapsed": false - }, + "execution_count": 65, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 32 ms, sys: 0 ns, total: 32 ms\n", - "Wall time: 35.7 ms\n" + "CPU times: user 16 ms, sys: 0 ns, total: 16 ms\n", + "Wall time: 17.2 ms\n" ] }, { @@ -3261,7 +3167,7 @@ "14" ] }, - "execution_count": 70, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -3272,17 +3178,15 @@ }, { "cell_type": "code", - "execution_count": 71, - "metadata": { - "collapsed": false - }, + "execution_count": 66, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 376 ms, sys: 4 ms, total: 380 ms\n", - "Wall time: 382 ms\n" + "CPU times: user 296 ms, sys: 4 ms, total: 300 ms\n", + "Wall time: 299 ms\n" ] }, { @@ -3291,7 +3195,7 @@ "14" ] }, - "execution_count": 71, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -3302,17 +3206,15 @@ }, { "cell_type": "code", - "execution_count": 72, - "metadata": { - "collapsed": false - }, + "execution_count": 67, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 72 ms, sys: 4 ms, total: 76 ms\n", - "Wall time: 76.9 ms\n" + "CPU times: user 36 ms, sys: 0 ns, total: 36 ms\n", + "Wall time: 34.5 ms\n" ] }, { @@ -3321,7 +3223,7 @@ "14" ] }, - "execution_count": 72, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -3330,6 +3232,133 @@ "%time len(astar_search_closed('imps', 'pros'))" ] }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "bash bush True\n", + "rush bush True\n" + ] + }, + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nb_count = collections.Counter()\n", + "for w in neighbours['rash']:\n", + " for w2 in neighbours[w]:\n", + " if w2 == 'bush': print(w, w2, w2 not in neighbours['rash'])\n", + " if w2 != 'rash' and w2 not in neighbours['rash']:\n", + " nb_count.update([w2])\n", + "nb_count.most_common(1)[0][1]" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['gush', 'hush', 'lush', 'mush', 'push', 'tush', 'bosh']" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[w for w in neighbours['bush'] if w in nb_count]" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('gibe', 2)" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "best_start = ''\n", + "best_overlap_count = 0\n", + "for w0 in neighbours: \n", + " nb_count = collections.Counter()\n", + " for w in neighbours[w0]:\n", + " for w2 in neighbours[w]:\n", + " if w2 != w0 and w2 not in neighbours[w0]:\n", + " nb_count.update([w2])\n", + " if len(nb_count) > 0:\n", + " if nb_count.most_common(1)[0][1] > best_overlap_count:\n", + " best_start = w0\n", + " best_overlap_count = nb_count.most_common(1)[0][1]\n", + " \n", + "best_start, best_overlap_count" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'memo'" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w0" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bash', 'rush'}" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(neighbours['rash']) & set(neighbours['bush'])" + ] + }, { "cell_type": "code", "execution_count": null, @@ -3356,7 +3385,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.2" + "version": "3.5.2+" } }, "nbformat": 4,