Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Akademia Humanistyczno-Ekonomiczna PRZEDMIOT: ADMINISTRACJA SYSTEMÓW WINDOWS Labolarorium nr: 1 Temat: Sztuczna inteligencja na bramkach logicznych student: Jarosław_id 140654 studia: niestacjonarne, INFORMATYKA / semestr V STUDENT: Jarosław Prowadzący laboratorium: dr inż. Edward Data WYKŁADÓW nr 4: 16.01.2022 CO TO JEST SZTUCZNA INTELIGENCJA ? Ludzka inteligencja zachwyca naukowców od wielu lat. Szukają odpowiedzi na pytania: Jak zbieramy informacje z otoczenia?; Jak to się dzieje, że je zapamiętujemy?; Jak budujemy z nich naszą wiedzę?; Jak je wykorzystujemy do działania i rozwiązywania problemów?; Jak podejmujemy decyzje? Poznanie odpowiedzi na te pytania pozwala zbudować maszynę, która działa podobnie do człowieka. „Mądre” maszyny mogą pomagać ludziom w codziennych pracach, czynić nasze życie łatwiejszym. Pozwalają oszczędzać czas i pieniądze. Te „mądre” maszyny to właśnie SZTUCZNA INTELIGENCJA (w skrócie SI). Podstawowe pojęcia: Układ kombinacyjny – zbiór wzajemnie połaczonych bramek, którego stan wyjść w dowolnej chwili jest wyłącznie funkcją stanu wejść w tej samej chwili. Po ustaleniu stanu na wejściu prawie natychmiast pojawia się sygnał na wyjściu, przy czym występują tylko opóźnienia bramkowe. Układ kombinacyjny może być zdefiniowany przez podanie: 1. tablicy prawdy 2. symbolu graficznego – schematu połączeń 3. r-a Boolea Poniższe bramki pozwalają zaprojektować każdy układ kombinacyjny: 0 2. Dowolna funkcja Boole'a może być zrealizowana za pomocą wyłącznie bramek pochodzących z takiego zbioru. Następujące zbiory są funkcjonalnie pełne: o o o o o AND, OR, NOT AND, NOT OR, NOT NAND NOR Na ogół jest możliwe wyprowadzenie prostszego wyrażenia Boole'a na podstawie tablicy prawdy. Przy prostszym wyrażeniu Boole’a do realizacji funkcji będzie potrzebnych mniej bramek.W celu uproszczenia mogą być stosowane następujące metody: o upraszczanie algebraiczne o mapy Karnaugh o tablice Quine'a-McKluskeya. Upraszczanie algebraiczne polega na stosowaniu tożsamości – praw algebry Boole’a poznanych juz na zajęciach. Wracając do r-a A-1, upraszczając je możemy otrzymać następujące postacie: lub Realizacja układowa to: Mapa Karnaugha jest wygodną metodą upraszczania funkcji Boole'a o niewielkiej liczbie zmiennych (4+6). Mapa jest tablicą złożoną z 2n kwadratów reprezentujących możliwe kombinacje wartości n zmiennych binarnych. Projektowanie układu cyfrowego realizującego zadaną funkcję: Zamiennik: NAND Zamiennik: NOR Spróbujmy zatem zamienić wszystkie bramki naszej funkcji... ...na odpowiadające im konfiguracje bramek NAND. Przyjrzyjmy się teraz zaznaczonym bramkom. Czy ma to jakiś sens, kiedy jeden NAND jest po drugim? To tak, jakby ustawić dwa NOT obok siebie. Co to oznacza? Można je pominąć! W ostateczności, nasz układ wygląda tak. Tym sposobem, zamiast trzech chipów jest jeden, używamy o jedną bramkę mniej, niż w normalnej budowie funkcji i nieużyta pozostaje tylko jedna bramka, zamiast dziesięciu! W masowej produkcji urządzeń cyfrowych taka oszczędność jest bardzo znacząca, zwłaszcza, że bramki NAND są najtańsze. Być może gorzej się czyta takową funkcję i jest to nieporęczne, ale dla maszyny nie ma to żadnego znaczenia. Tablica prawdy Tablica prawdy dla funkcji opisanej wyrażeniem lub słownie jest tablicą pokazującą, jakie wartości funkcji odpowiadają wejściowym sygnałom. Przykład: Przedstawić tablicę prawdy dla funkcji: Wypisujemy po lewej stronie sygnały wejściowe i wartości, które mogą przyjmować: Wartosc dwójkowo 0 1 2 3 4 5 6 7 abc 000 001 010 011 100 101 110 111 f 0 1 0 1 1 1 0 1 Wtedy funkcję f można także zapisać w postaci sumacyjnej lub iloczynowej: PRAKTYCZNY I PROSTY PRZYKŁAD ZASTOSOWANIA BRAMKI OR Przykłady pisania prostej logiki za pomocą bramek w programie drabinkowym (maszynowym) NOT - negacja Na wyjściu Q 0.0 stan "1" pojawi się w momencie gdy na wejściu I 0.0 będzie sygnał "0" AND - koniunkcja Na wyjściu Q 0.0 pojawi się sygnał "1" gdy na obu wejściach jednocześnie pojawi się sygnał "1" NAND - zanegowana koniunkcja Na wyjściu Q 0.0 pojawi się sygnał "1" gdy na którymkolwiek wejściu pojawi się sygnał "0" również gdy na obu naraz będzie sygnał "0". OR- alternatywa Na wyjściu Q 0.0 pojawi się sygnał "1" gdy na którymkolwiek wejściu pojawi się sygnał "1" - również gdy na obu naraz będzie sygnał "1" NOR Na wyjściu Q 0.0 pojawi się sygnał "1" gdy na obu wejściach jednocześnie pojawi się sygnał "0" XOR - alternatywa rozłączna Na wyjściu Q 0.0 pojawi się sygnał "1" gdy na wejściach jednocześnie pojawią się różne sygnały ( obojętnie 1 czy 0 ) Teraz postaram się pokazać prosty i praktyczny przykład w jezyku programowania drabinkowego czyli LADER. Można to przyjąc jako programowanie prostej sztuczne inteligencji – JEST TO MASZYNA KTÓRĄ BYDOWAŁEM I PROGRAMOWAŁEM W MOJEJ PRACY AUTOMATYCZNA DOKRETARKA ŚRUB A) Jak było przed wprowadzeniem prostej sztucznej inteligencji 1) człowiek sam decydował, typował rodzaj skrzyni czyli wybierał program na kontrolerze (w kontrolerze były zaszyte dane ile ma dokręcić śrub np. 5 lub 6) 2) człowiek wkręcał śrubki w otwory z gwintami a nastepnie dokręcał je kluczem elektrycznym z momentem 12-24Nm B) W czym pomogła sztuczna inteligencja stworzona na bramkach logicznych 1) powstał robot kartezjański czyli maszyna sterowana w 3 osiach XYZ za pomocą silników krokowych 2) został napisany program w LADERZE czyli logika w drabinkach do automatycznego dokręcania śrub 3) operator wrzuca skrzynie z lekko wkręconymi śrubami na 1,5 gwinta i załącza start cyklu 4) maszyna sama rozpoznaje za pomocą jednego czujnika jaki to typ skrzyni i na tej podstawie automatycznie wywołuje program w kontrolerze ( 5 lub 6 śrub do dokręcenia) KONTROLER Z PARAMETRAMI KRECENIA ROBOT KARTEZJANSKI DO AUTOMATYCZNEGO DOKRECANIA SRUB TYP SKRZYNI EC60 Z ILOSCIĄ SRUB DO DOKRECENIA 6 TYP SKRZYNI 715K Z ILOSCIĄ SRUB DO DOKRECENIA 5 PARAMETR KTÓRY OKRESLA ILE SRUB TRZEBA DOKRECIC DO CYKLU OK POCZATEK PROGRAMU DO ROBOTA I DOKRETARKI OPERATOR WKŁADA SKRZYNIE DO MASZYNY I TYLE KAMERA WYKRYWA ILE WIDZI SRUB I OKRESLA JAKI TO TYP SKRZYNI EC60 czy 715k JEŚLI KAMERA WIDZI 6 SRUB WYSTAWIA X14.1 I W PROG. ZA POMOCA MARKERA WYSTAWIA M140 SA TU WYKORZYSTANE bramki NOT oraz AND JEŚLI KAMERA WIDZI 5 SRUB WYSTAWIA X14.0 I W PROG. ZA POMOCA MARKERA WYSTAWIA M141 JEŚLI KAMERA WIDZI NIEPRAWIDŁOWO 2 TYPY NA RAZ LUB NIE WIDZI ŻADNEGO WTEDY W PROGRAMIE POMAGAJĄ bramki NAND oraz NOR i prog. wystawia błąd M23A PRAWIDŁOWO WIDZIANE ŚRUBY WYWOŁUJA ODPOWIEDNI PROGRAM W KONTROLERZE np. WYJSCIEM Y032 I JEŚLI KLUCZ ODPOWIADA X07A WTEDY POWSTAJE MARKER M12B KTÓRY MA ZA ZADANIE PODEJMOWAC W PROGRAMIE DECYZJE JEŚLI NIE JEST WYWOŁANY PROGRAM DLA 5 SRUB ROBOT DOKRECI WSZYSTKIE 6 SRUB (widać że robot kończy śrube nr 3 i jedzie do nr 4) ALE JEŚLI JEST WYWOŁANY PROGRAM 715F ROBOT OMINIE ŚRUBĘ NR 3 I DOKRECI TYLKO 5 SRUB (zakończy srubę nr 2 i wywoła nr 4) TAK WŁAŚNIE MOŻNA WYKOŻYSTAĆ RÓŻNEGO RODZAJU BRAMKI LOGICZNE DO BUDOWANIA PROSTEJ SZTUCZNEJ INTELIGENCJI KTÓRA POMAGA W PODEJMOWANIU DECYZJI (PRZEDSTAWIŁEM TU TYLKO NIEWIELKI WYCINKI PROGRAMU KTÓRY SAM PISAŁEM W MOJEJ PRACY