Monthly Archives: March 2014

Proyek Sistem Multimedia

Creating Photoshop Effects

A.    Latar Belakang

Photoshop merupakan perangkat lunak editor buatan Adobe Systems yang bertujuan untuk memodifikasi foto atau gambar dan pembuatan efek. Photoshop sudah digunakan oleh semua kalangan, dari anak anak atau remaja yang ingin mencoba memodifikasi gambar hingga desainer professional yang melakukan pekerjaan sehari harinya menggunakan Photoshop. Dari sini kami melihat bahwa memainkan Photoshop merupakan hal yang menarik, oleh karena itu kami mencoba membuat video tentang pembuatan efek efek dalam Photoshop.

B.    Manfaat dan Tujuan

Manfaat dari pembuatan video ini adalah menarik perhatian orang orang yang ingin belajar Photoshop dan memberikan gambaran atau contoh modifikasi modifikasi yang dapat dilakukan pada aplikasi Photoshop.

Dan tujuan dari pembuatan video kami ini adalah kami ingin memberikan informasi tentang penggunaan aplikasi Photoshop dan juga untuk pengerjaan tugas mata kuliah Sistem Multimedia.

C.    Deskripsi Video

Di video ini kami mencoba membuat video yang contoh pembuatan efek efek dalam Photoshop, kami menggunakan beberapa efek, seperti efek meng-highlight suatu gambar dengan quick selection tool dan juga mixer secara monochrome, efek lainnya berupa efek smoke dan juga penggunaan liquify dan penggunaan refine edge untuk menghaluskan ujung ujung gambar yang di crop, ada juga efek yang diperlihatkan pada gambar gambar dalam video ini berupa splatter effect menggunakan custom brush.

Pada pembutan video ini kami menggunakan aplikasi untuk merekam proses pembuatan karya kami dengan menggunakan CamStudio. Kami juga menggunakan 2 aplikasi Photoshop yaitu Photoshop CS5 dan Photoshop CS6. Dalam pembuatan videonya kami menggunakan aplikasi Windows Live Movie Maker.

Proses pembuatan video kami pertama tama mencari gambar yang ingin kami berikan efek, lalu kami menggunakan Adobe Photoshop CS5 dan CS6 untuk memodifikasi gambar, selama proses meng-edit gambar, kami merekamnya menggunakan aplikasi CamStudio, kami meng-edit beberapa gambar dalam Photoshop, setelah pengeditan dan perekamannya kami menggabungkannya dengan menggunakan aplikasi Windows Live Movie Maker.

Aplikasi yang digunakan:

  1. Adobe Photoshop CS5
  2. Adobe Photoshop CS6
  3. CamStudio
  4. Windows Live Movie Maker

Link to video : http://www.youtube.com/watch?v=2Z_V3EXmCEg&feature=youtu.be

D.      Penutup

Demikian laporan dari video kami, semoga dapat memberikan manfaat bagi kita semua. Dan terima kasih untuk semua anggota kelompok kami yang berpartisipasi dalam pengerjaan video ini, dan juga terima kasih pada teman teman yang sudah menonton video kami.

Intelegensia Semu | Tugas OFF CLASS (GSLC) 13 Maret 2014

1. Apa yang dimaksud Adversarial Search & Constraint Satisfaction Problems? berikan contoh?

Secara teoritis , algoritma pencarian ini didasarkan teorema minimax von Neumann yang menyatakan bahwa dalam jenis permainan selalu ada serangkaian strategi yang mengarah ke kedua pemain mendapatkan nilai yang sama dan bahwa mengingat ini adalah nilai terbaik seseorang dapat mengharapkan untuk mendapatkan , orang harus menggunakan set ini strategi . Pencarian minimax terutama dikenal karena kegunaannya dalam menghitung langkah terbaik dalam dua pertandingan pemain di mana semua informasi yang tersedia , seperti catur atau tic tac toe . Ini terdiri dari menavigasi melalui pohon yang menangkap semua kemungkinan bergerak dalam permainan , di mana setiap langkah diwakili dalam hal kerugian dan keuntungan untuk salah satu pemain . Ini mengikuti bahwa ini hanya dapat digunakan untuk membuat keputusan dalam zero-sum game , di mana kehilangan satu pemain adalah keuntungan pemain lain . Secara teoritis , algoritma pencarian ini didasarkan teorema minimax von Neumann yang menyatakan bahwa dalam jenis permainan selalu ada serangkaian strategi yang mengarah ke kedua pemain mendapatkan nilai yang sama dan bahwa mengingat ini adalah nilai terbaik seseorang dapat mengharapkan untuk mendapatkan , orang harus menggunakan set strategi ini.

Contoh : Permainan Catur dan Tic Tac Toe

Dalam intelijensia semu dan riset operasi buatan , kepuasan kendala adalah proses menemukan solusi untuk satu set kendala yang memaksakan kondisi bahwa variabel harus memuaskan . Oleh karena itu solusinya adalah seperangkat nilai-nilai untuk variabel-variabel yang memenuhi semua kendala yaitu titik di wilayah layak.
Teknik yang digunakan dalam kepuasan kendala tergantung pada jenis kendala yang dipertimbangkan, yang sering digunakan adalah kendala pada domain yang terbatas , ke titik yang kendala masalah kepuasan biasanya diidentifikasi dengan masalah berdasarkan kendala pada domain yang terbatas . Masalah tersebut biasanya diselesaikan melalui pencarian , khususnya bentuk kemunduran atau pencarian lokal . Propagasi Kendala metode lain yang digunakan pada masalah tersebut , kebanyakan dari mereka tidak lengkap pada umumnya , yaitu mereka dapat memecahkan masalah atau membuktikannya unsatisfiable , tetapi tidak selalu . Kendala metode propagasi juga digunakan dalam hubungannya dengan pencarian untuk membuat soal yang diberikan sederhana untuk memecahkan . Jenis lain dianggap kendala berada pada bilangan real atau rasional ; pemecahan masalah pada kendala-kendala tersebut dilakukan melalui eliminasi variabel atau algoritma simpleks .

Contoh : Backtracking dan Map Coloring

2. Apa itu Propositional Logic?berikan contoh?

Dalam logika matematika, kalkulus proposisional atau logika (juga disebut kalkulus sentential atau logika sentensial) adalah sistem formal di mana formula dari bahasa formal dapat ditafsirkan untuk mewakili proposisi. Sebuah sistem aturan inferensi dan aksioma memungkinkan formula tertentu untuk diturunkan. Ini rumus yang diturunkan disebut teorema dan dapat ditafsirkan sebagai proposisi benar. Seperti urutan terbuat dari formula dikenal sebagai derivasi atau bukti dan rumus terakhir dari urutan adalah teorema tersebut. Derivasi dapat ditafsirkan sebagai bukti proposisi diwakili oleh teorema.
Biasanya dalam logika proposisional Kebenaran-fungsional, formula ditafsirkan sebagai memiliki salah satu nilai kebenaran benar atau nilai kebenaran palsu. [Klarifikasi diperlukan] logika proposisional Kebenaran-fungsional dan sistem isomorfik untuk itu, dianggap logika zeroth-order.

Contoh :

Simple axiom system

Let \mathcal{L}_1 = \mathcal{L}(\Alpha,\Omega,\Zeta,\Iota), where \Alpha\Omega\Zeta\Iota are defined as follows:

  • The alpha set \Alpha, is a finite set of symbols that is large enough to supply the needs of a given discussion, for example:
\Alpha = \{p, q, r, s, t, u \}.\,\!
  • Of the three connectives for conjunction, disjunction, and implication (\wedge\lor, and \rightarrow), one can be taken as primitive and the other two can be defined in terms of it and negation (\neg).[8] Indeed, all of the logical connectives can be defined in terms of a sole sufficient operator. The biconditional (\leftrightarrow) can of course be defined in terms of conjunction and implication, with a \leftrightarrow b defined as (a \to b) \land (b \to a).
Adopting negation and implication as the two primitive operations of a propositional calculus is tantamount to having the omega set \Omega = \Omega_1 \cup \Omega_2 partition as follows:
\Omega_1 = \{ \lnot \},
\Omega_2 = \{ \rightarrow \}.
  • (p \to (q \to p))
  • ((p \to (q \to r)) \to ((p \to q) \to (p \to r)))
  • ((\neg p \to \neg q) \to (q \to p))
  • The rule of inference is modus ponens (i.e., from p and (p \to q), infer q). Then a \lor b is defined as \neg a \to b, and a \land b is defined as \neg(a \to \neg b).


3. Buat coding (Boleh C, C++ atau Java) untuk Algoritma A & Algoritma A* (A Star)?

Algoritma A* [C++]

public Solution search( INode initial, INode goal ) {
  // Start from the initial state
  INodeSet open = StateStorageFactory.create( StateStorageFactory.TREE );
  INode copy = initial.copy();
  scoringFunction.score( copy );
  open.insert( copy );

  // Use Hashtable to store states we have already visited.
  INodeSet closed = StateStorageFactory.create( StateStorageFactory. HASH );
  while( !open.isEmpty() ) {
    // Remove node with smallest evaluation function and mark closed.
    INode n = open.remove();

    closed.insert( n );

    // Return if goal state reached.
    if( n.equals( goal ) ) { return new Solution( initial, n ); }

    // Compute successor moves and update OPEN/CLOSED lists.
    DepthTransition trans = (DepthTransition)n.storedData();
    int depth = 1;

    if( trans ! = null ) { depth = trans.depth + 1; }

    DoubleLinkedList<IMove> moves = n.validMoves();

    for( Iterator<IMove> it = moves.iterator(); it.hasNext(); ) {
      IMove move = it.next();

      // Make move and score the new board state.
      INode successor = n.copy();
      move.execute( successor );

      // Record previous move for solution trace and compute
      // evaluation function to see if we have improved upon
      // a state already closed
      successor.storedData( new DepthTransition( move, n, depth ) );
      scoringFunction.score( successor );

      // If already visited, see if we are revisiting with lower
      // cost. If not, just continue; otherwise, pull out of closed
      // and process
      INode past = closed.contains( successor );

      if( past ! = null ) {
        if( successor.score() >= past.score() ) {
          continue;
        }

        // we revisit with our lower cost.
        closed.remove( past );
      }

      // place into open.
      open.insert( successor );
    }
  }

  // No solution.
  return new Solution( initial, goal, false );
}

Algoritma A [Java]

import java.util.Comparator;
import java.util.InputMismatchException;
import java.util.PriorityQueue;
import java.util.Scanner;

public class BestFirstSearch
{
private PriorityQueue<Vertex> priorityQueue;
private int heuristicvalues[];
private int numberOfNodes;

public static final int MAX_VALUE = 999;

public BestFirstSearch(int numberOfNodes)
{
this.numberOfNodes = numberOfNodes;
this.priorityQueue = new PriorityQueue<Vertex>(this.numberOfNodes,
new Vertex());
}

public void bestFirstSearch(int adjacencyMatrix[][], int[] heuristicvalues,int source)
{
int evaluationNode;
int destinationNode;
int visited[] = new int [numberOfNodes + 1];
this.heuristicvalues = heuristicvalues;

priorityQueue.add(new Vertex(source, this.heuristicvalues[source][/source]));
visited[source][/source] = 1;

while (!priorityQueue.isEmpty())
{
evaluationNode = getNodeWithMinimumHeuristicValue();
destinationNode = 1;

System.out.print(evaluationNode + “\t”);
while (destinationNode <= numberOfNodes)
{
Vertex vertex = new Vertex(destinationNode,this.heuristicvalues[destinationNode]);
if ((adjacencyMatrix[evaluationNode][destinationNode] != MAX_VALUE
&& evaluationNode != destinationNode)&& visited[destinationNode] == 0)
{
priorityQueue.add(vertex);
visited[destinationNode] = 1;
}
destinationNode++;
}
}
}

private int getNodeWithMinimumHeuristicValue()
{
Vertex vertex = priorityQueue.remove();
return vertex.node;
}

public static void main(String… arg)
{
int adjacency_matrix[][];
int number_of_vertices;
int source = 0;
int heuristicvalues[];

Scanner scan = new Scanner(System.in);
try
{
System.out.println(“Enter the number of vertices”);
number_of_vertices = scan.nextInt();
adjacency_matrix = new int[number_of_vertices + 1][number_of_vertices + 1];
heuristicvalues = new int[number_of_vertices + 1];

System.out.println(“Enter the Weighted Matrix for the graph”);
for (int i = 1; i <= number_of_vertices; i++)
{
for (int j = 1; j <= number_of_vertices; j++)
{
adjacency_matrix[i][j] = scan.nextInt();
if (i == j)
{
adjacency_matrix[i][j] = 0;
continue;
}
if (adjacency_matrix[i][j] == 0)
{
adjacency_matrix[i][j] = MAX_VALUE;
}
}
}
for (int i = 1; i <= number_of_vertices; i++)
{
for (int j = 1; j <= number_of_vertices; j++)
{
if (adjacency_matrix[i][j] == 1 && adjacency_matrix[j][i] == 0)
{
adjacency_matrix[j][i] = 1;
}
}
}

System.out.println(“Enter the heuristic values of the nodes”);
for (int vertex = 1; vertex <= number_of_vertices; vertex++)
{
System.out.print(vertex + “.”);
heuristicvalues[vertex] = scan.nextInt();
System.out.println();
}

System.out.println(“Enter the source “);
source = scan.nextInt();

System.out.println(“The graph is explored as follows”);
BestFirstSearch bestFirstSearch = new BestFirstSearch(number_of_vertices);
bestFirstSearch.bestFirstSearch(adjacency_matrix, heuristicvalues,source);

} catch (InputMismatchException inputMismatch)
{
System.out.println(“Wrong Input Format”);
}
scan.close();
}
}

class Vertex implements Comparator<Vertex>
{
public int heuristicvalue;
public int node;

public Vertex(int node, int heuristicvalue)
{
this.heuristicvalue = heuristicvalue;
this.node = node;
}

public Vertex()
{

}

@Override
public int compare(Vertex vertex1, Vertex vertex2)
{
if (vertex1.heuristicvalue < vertex2.heuristicvalue)
return -1;
if (vertex1.heuristicvalue > vertex2.heuristicvalue)
return 1;
return 0;
}

@Override
public boolean equals(Object obj)
{
if (obj instanceof Vertex)
{
Vertex node = (Vertex) obj;
if (this.node == node.node)
{
return true;
}
}
return false;
}
}